NDSolve and Precision
NDSolve and Precision
Use defaults to solve a celestial mechanics equation with sensitive dependence on initial conditions:
In[]:=
eqn=z''[t]==-z[t]/(z[t]^2+((1+Sin[2πt]/2)/2)^2)^(3/2);
Plot[Evaluate[z[t]/.NDSolve[{eqn,z[0]==1,z'[0]==0},z,{t,0,40}]],{t,0,40}]
Out[]=
Higher accuracy and precision goals give a different result:
Plot[Evaluate[z[t]/.NDSolve[{eqn,z[0]==1,z'[0]==0},z,{t,0,40},AccuracyGoal10,PrecisionGoal10]],{t,0,40}]
Out[]=
You can also use SetOptions to change the default options of NDSolve:
In[]:=
SetOptions[NDSolve,AccuracyGoal10,PrecisionGoal10]
Out[]=
AccuracyGoal10,CompiledAutomatic,DependentVariablesAutomatic,DiscreteVariables{},EvaluationMonitorNone,InitialSeeding{},InterpolationOrderAutomatic,MaxStepFraction,MaxStepsAutomatic,MaxStepSizeAutomatic,MethodAutomatic,NormFunctionAutomatic,PrecisionGoal10,StartingStepSizeAutomatic,StepMonitorNone,WorkingPrecisionMachinePrecision
1
10
Plot[Evaluate[z[t]/.NDSolve[{eqn,z[0]==1,z'[0]==0},z,{t,0,40}]],{t,0,40}]
Out[]=