maple:绘制数值dsolve的结果

时间:2015-08-12 13:40:04

标签: plot procedure maple

我必须用数字方法求解微分方程;所以说:

diff(y(x), x)+x^2-15*x = 5 

初始条件:

inc := y(0) = 0

解决方案当然是:

sol := dsolve({f, inc}, numeric);

导致:

  

proc(x_rkf45)...结束

现在我想为y(x)绘制x=0..2。 我在做什么? 代码:

plot(sol(x), x = 0 .. 2);

不起作用!

  

警告,无法将函数计算为数值   区域;请参阅plotting命令的帮助页面以确保调用   顺序是正确的

1 个答案:

答案 0 :(得分:0)

以下是三种不同的方法。

第一种是使用DEtools[DEplot]命令,它既可以解决也可以绘制。它的输入是微分方程和一组或多组初始条件(与dsolve(...,numeric)返回的东西相反)。

DEplot命令有很多选项。例如,您可以关闭字段图的包含。

restart:

deq := diff(y(x), x)+x^2-15*x = 5:

ic := y(0) = 0:

DEtools[DEplot](deq, y(x), x=0..2, [ic]);

enter image description here

下一步是像你一样调用dsolve(...,numeric),并将它返回的内容传递给plots:-odeplot命令。

sol := dsolve({deq, ic}, numeric):

plots:-odeplot(sol, x=0..2);

enter image description here

另一种方法是传递dsolve附加output=listprocedure选项,以便它返回一个程序列表。然后可以提取其中的任何一个并用于计算某个点或通过传递给通常的plot命令来使用。

sollist := dsolve({deq, ic}, numeric, output=listprocedure):

Y := eval(y(x),sollist):

Y(1.0);
                          12.1666666666667

plot( Y, 0..2 );

enter image description here

有关自定义结果图的详细信息,请参阅DEtools[DEplot]plots:-odeplotplot,options的帮助页面。

如果您选择odeplot方式并希望包含字段图,则可以使用plots:-displayplots:-fieldplot来扩充图表。