用R-K方法求解微分方程的初值问题:(取h=0.2)dy/dx=-y+x+1,y(0)=1在x=0.6处的函数值为??

如题所述

第1个回答  2008-11-20
一楼强,直接解出来了.二楼高明,要我也是这么做的.
我就不写代码了,但强烈建议你用手工算!考试可能会要你求x=0.2的值,只要一步迭代就可以了,你必须要记住公式,那里有四个K,一定要搞清楚怎么来的.只有这样你才真正把龙格库塔法学到手,等到哪天没有MATLAB了,要你用C或什么语言来写你才能写得出来,即使不编程,你可以自己手算!
R-K是解常微的最经典数值方法,一定要掌握!
第2个回答  2008-11-20
这是一个非齐次线性方程.先求对应的齐次线性方程的通解
(dy/dx)*x=y
>>>>>>>>>>>dy/y=dx/x
>>>>>>>>>>y=Cx
用常数变易法,把C换成u,令
y=ux
>>>>>>>>>>y'=u+u'x带入原方程
>>>>>>>u=ln|x|+C
>>>>>>y=x*ln|x|+Cx
>>>>>>>>>又y(0)=0
>>>>c=任意值
>>>>>>>>>>>y=x*ln|x|+Cx本回答被提问者采纳
第3个回答  2008-11-20
一、Matlab解答
在Matlab下输入:edit,然后将下面两行百分号之间的内容,复制进去,保存
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function dy=zhidao_yang11512(x,y)
dy=[-y+x+1];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

在Matlab下面输入:
x_end=0.6;
y0=1;
[x,y]=ode45('zhidao_yang11512',[0,x_end],y0);
plot(x,y);
xlabel('x');
ylabel('y');
y(end)

得到的结果是:
1.1488
第4个回答  2008-11-20
被抢先了