# How can we ensure the result of Mathematica is exactly correct?

This is an example, I plot a function and find it has a defect when x approximates 400.

Plot[Cos[.3 x] Exp[-0.01 x], {x, 0, 1000}, PlotRange -> All]


Another example, we calculate the orbit of planet motion. As we know, the orbit of planet is ellipse when the total energy is negative. However, if we calculate it in a long time, the result will deviate from ellipse markedly - while Mathematica has no any warning or message here!

The code and result showed below:

M = 4; a = 700; (*a is the total time of this simulation*)
s =
NDSolve[{x''[t] == -((GM (x[t] + 1))/((x[t] + 1)^2 + y[t]^2)^1.5),
y''[t] == -((GM y[t])/((x[t] + 1)^2 + y[t]^2)^1.5), y[0] == 2,
x[0] == .3, x'[0] == .2, y'[0] == -.1}, {x, y}, {t, 0, a},
MaxSteps -> 10^8];
ParametricPlot[Evaluate[{x[t], y[t]} /. s], {t, 0, a}]


What I wonder is how to make sure Mathematica's result is exactly correct? When we find something special with Mathematica, how can we know it is a new thing, or just a wrong result of Mathematica?

• Commented Jun 24, 2014 at 5:45
• A good start is understanding proper use of Mathematica, how built-ins (and their options) work, etc. (e.g. PlotPoints, MaxRecursion and Method in your plot visualization example). The documentation is pretty good pointing out gotchas and their effects and ways to avoid them.
– ciao
Commented Jun 24, 2014 at 6:02
• For me, a good approach would be also to use another, redundant, tool- for those extremely important results. Commented Jun 24, 2014 at 10:37

Simply increase PlotPoints:

Plot[Cos[.3 x] Exp[-0.01 x], {x, 0, 1000},
PlotRange -> {{300, 500}, {-0.05, 0.05}}, ImageSize -> 600, PlotPoints -> 2000]


Increasing PlotPoints would also draw a smooth ellipse in your orbit example

• I am sorry, but this does not attempt to answer the question. Commented Jun 24, 2014 at 12:49
• @Sektor - I am sorry too, but my tip attempts to answer the question. Using Plot and ParametricPlot YOU have to decide how many PlotPoints you want or need. When you use Table and then ListLinePlot with the above example you get the same smooth image, i.e. the numerics are correct.
– eldo
Commented Jun 24, 2014 at 13:02
• @Sektor - I now answer the question: "How to make sure Mathematica's result is exactly correct?" Answer: With pencil and paper like in the good all days :)
– eldo
Commented Jun 24, 2014 at 13:15
• I think this answers the issue that caused the question (+1). The title of the question is too broad to allow a better answer.
– Jens
Commented Jun 24, 2014 at 17:40
• @VividD I think your opinion is appropriate. Commented Jun 25, 2014 at 9:52