在wolfram alpha和octave下不同的常微分方程图

时间:2015-10-19 09:57:53

标签: graph octave

我使用这个八度代码来求解微分方程。

 # Define the right-hand side of the equation:
xvall= -11 ;#xvall
xvalu= 10 ;#xvalu
range=5000;
function ret=f(x,t);ret= t ;end;

# ywill be the values of the function at these moments of time.
t=linspace(xvall,xvalu,range);
y=lsode ('f', 2, linspace(xvall,xvalu,range));
y
plot(t,y);

我得到了这样的图表。

enter image description here

但是当相同的条件传递给wolfram alpha时 我得到的图表从60到0为y值

图表为enter image description here 为什么图表在两种情况下表现不同。 https://www.wolframalpha.com/input/?i=Runge-Kutta+method%2C+dy%2Fdx+%3D+x%2C+y%280%29+%3D+2%2C+from+-11+to+10%2C+h+%3D+0.25

1 个答案:

答案 0 :(得分:3)

要为常微分方程指定初始值问题,需要定义初始条件。对于Octave,您已指定x(-11) = 2 xvall = -11以及Wolfram Alpha指定y(0) = 2。这就是为什么你有两种不同的解决方案。

<强>八度

Octave的lsode (f,x_0,ts)解决了以下初始值问题

 dx/dt = t
 x(t_0) = x_0
 t in ts

此处ts被指定为区间[t_0,t_1]中的一组点。您已指定t_0 = -11t_1 = 10

以封闭形式解决此问题的方法是x = (t^2 - 117) / 2

<强>钨

对于Wolfram,您使用了半正式语法:

Runge-Kutta method, dy/dx = x, y(0) = 2, from -11 to 10, h = 0.25

以封闭形式解决此问题的方法是y = (x^2 + 4) /2

相应的初始值问题明显不同。因此结果不同。