2
$\begingroup$

How to solve this system of equations?

enter image description here

$\endgroup$
3
  • 5
    $\begingroup$ Perhaps carefully read the documentation here: reference.wolfram.com/language/ref/DSolve.html and see if you can recognize the similarities between your notation and the notation used in the examples. Click on some of the orange items to see additional detail. $\endgroup$
    – Bill
    Jul 17 '20 at 3:53
  • $\begingroup$ Direct input will cause a Dsolve error due to the relationship between x and x(t). $\endgroup$
    – Mertin
    Jul 17 '20 at 7:59
  • 2
    $\begingroup$ I can't quite see your screen from here, so I am guessing your "direct input" had some syntax errors, which hopefully could have been cleared up by carefully reading the documentation. This DSolve[{x''[t]-1000(1-x[t]^2)x'[t]+x[t]==0,x[0]==0,x'[0]==1},x[t],t] is the "direct input" I would use and it produces no such error. Unfortunately after crunching for a little while it returns the input which indicates DSolve can't crack this one. So I then try NDSolve[{x''[t]-1000(1-x[t]^2)x'[t]+x[t]==0,x[0]==0,x'[0]==1},x[t],{t,0,1}] and it happily produces a numeric result. $\endgroup$
    – Bill
    Jul 17 '20 at 8:28
4
$\begingroup$

There does not seem to be analytical (closed form) solution to this. ODE's with time varying coefficients or non-linear in the dependent variable (as in your example), are very hard to solve analytically, unless they have special forms which leads to solutions using special functions.

The main analytical tool for these is solving them using power series methods.

In Mathematica this is implemented using AsymptoticDSolveValue but it is important to note that the solution obtained using this, although analytical, is only accurate very close to the expansion point. As more terms are added it gets more accurate, but the radius of convergence needs to be kept in mind.

For your ODE, this compares the numerical solution with the solution obtained using AsymptoticDSolveValue close to $t=0$, using 20 terms in the power series. You can see there good agreement with the numerical solution very close to $t=0$, but once one get too far away from zero, the approximation is no longer good.

ClearAll[x, t];
ode = x''[t] - 1000 (1 - x[t]^2) x'[t] + x[t] == 0;
ic = {x[0] == 0, x'[0] == 1};
asymSol = AsymptoticDSolveValue[{ode, ic}, x[t], {t, 0, 20}]

You'll get power series in $t$. Here is example for 5 terms

Mathematica graphics

Verify the solution satisfies the IC

asymSol /. t -> 0
(* 0 *)
(D[asymSol, t]) /. t -> 0
(* 1 *)

Compare to NDSolve

solNumerical = NDSolveValue[{ode, ic}, x, {t, 0, .01}];
Plot[{asymSol, solNumerical[t]}, {t, 0, .01}, AxesOrigin -> {0, 0}, 
 PlotStyle -> {Blue, Red}, PlotLegends -> {"Asympt", "Numerical"}]

Mathematica graphics

To answer comment:

The derivative of those do not seem to have a slope of 1 at t==0

One needs to really zoom in to see it

Plot[{asymSol, solNumerical[t]}, {t, 0, .001}, AxesOrigin -> {0, 0}, 
 PlotStyle -> {Blue, Red}, PlotLegends -> {"Asympt", "Numerical"}]

Mathematica graphics

$\endgroup$
2
  • $\begingroup$ The derivative of those do not seem to have a slope of 1 at t==0 $\endgroup$
    – Bill
    Jul 17 '20 at 18:59
  • 1
    $\begingroup$ @Bill fyi, I added note on this above $\endgroup$
    – Nasser
    Jul 17 '20 at 20:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.