在Mathematica中假设这段代码:
w[w1_] := NDSolve[{y''[x] + y[x] == 2, y'[0] == 0, y[0] == w1},y[x], {x, 0, 30}];
Manipulate[Plot[Evaluate[{y[x], y'[x]} /. w[w1]], {x, 0, 30}], {w1, -2, 3}]
代码以这种方式工作:滑动条(在Manipulate中)控制保存在变量w中的微分方程的一个初始条件(y [0]的值),当它被改变时,绘制解。这工作正常,但我在绘制解决方案的一阶导数(y' [x])时遇到问题。而不是函数图只是简单的空格而且没有绘制任何内容,即使我在Mathematica帮助中检查它,其中示例代码
s = NDSolve[{y''[x] + Sin[y[x]] y[x] == 0, y[0] == 1, y'[0] == 0}, y, {x, 0, 30}]
Plot[Evaluate[{y[x], y'[x], y''[x]} /. s], {x, 0, 30},PlotStyle -> Automatic]
的工作原理。有人知道问题在哪里吗?
答案 0 :(得分:1)
我发现了问题,它只是在NDSolve中需要编写
w[w1_] := NDSolve[{y''[x] + y[x] == 2, y'[0] == 0, y[0] == w1},y, {x, 0, 30}]
y而不是y [x],一切正常。