Wolfram mathematica 解算精度

Wolfram mathematica 解算精度,wolfram-mathematica,numerical-methods,Wolfram Mathematica,Numerical Methods,我们要求NDSolve解出x'+x==0到20个数字,但是当我们与真正的解进行比较时,我们只看到9个正确的数字。我们没有正确使用NDSolve吗 Clear["Global`*"] sol = NDSolve[{x'[t] == v[t], v'[t] == -x[t], x[0] == 1, v[0] == 0}, {x, v}, {t, 0, 100}, PrecisionGoal -> 20, AccuracyGoal -> 20, WorkingPrecis

我们要求NDSolve解出x'+x==0到20个数字,但是当我们与真正的解进行比较时,我们只看到9个正确的数字。我们没有正确使用NDSolve吗

Clear["Global`*"]
sol = NDSolve[{x'[t] == v[t], v'[t] == -x[t], x[0] == 1, v[0] == 0}, {x, v},
    {t, 0, 100}, 
    PrecisionGoal -> 20, AccuracyGoal -> 20, WorkingPrecision -> 40, MaxSteps -> 10^6];
Plot[(x[t] - Cos[t]) /. sol[[1]], {t, 0, 100}]

你计算出正确的解了吗?哈哈,你计算得准确吗。将目标设置为20位,但只从NDSolve中获得9位。哦,我明白了,我们需要在plot命令中设置工作精度。是的,你需要确保它也计算到20位。你计算出正确的解了吗?哈哈,你计算准确吗?将目标设置为20位,但只从NDSolve中获取9位。哦,我明白了,我们需要在plot命令中设置工作精度。是的,你需要确保它也计算为20位。