不能用微分方程绘制导数

时间:2014-09-23 16:01:38

标签: plot wolfram-mathematica differential-equations

在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]

的工作原理。有人知道问题在哪里吗?

1 个答案:

答案 0 :(得分:1)

我发现了问题,它只是在NDSolve中需要编写

w[w1_] := NDSolve[{y''[x] + y[x] == 2, y'[0] == 0, y[0] == w1},y, {x, 0, 30}]

y而不是y [x],一切正常。