用R-K方法求解微分方程的初值问题:(取h=0.2)dy/dx=-y+x+1,y(0)=1在x=0.6处的函数值为??
4个回答
展开全部
一楼强,直接解出来了.二楼高明,要我也是这么做的.
我就不念宏写代码了,但强烈建议你用手工算!考试可能会要你求x=0.2的值,只要一步迭代就可以陪扰了,你必须要记住公式,那里有四个K,一定要搞清楚怎么来的.只有这样你才真正把龙格库塔法学到手,等到哪天没有MATLAB了,要你用C或什么语言来写你才能写得出来,即使不编程,你可以自己手算!
R-K是解常微的最经典数值方法,一定芦高旦要掌握!
我就不念宏写代码了,但强烈建议你用手工算!考试可能会要你求x=0.2的值,只要一步迭代就可以陪扰了,你必须要记住公式,那里有四个K,一定要搞清楚怎么来的.只有这样你才真正把龙格库塔法学到手,等到哪天没有MATLAB了,要你用C或什么语言来写你才能写得出来,即使不编程,你可以自己手算!
R-K是解常微的最经典数值方法,一定芦高旦要掌握!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是一个非齐次线性方程.先求对应的齐次线性茄陆方程的通解
(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
(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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一、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
在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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询