关于用matlab解微分方程组的问题

 我来答
最酸停贴奔12
2020-03-31 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.3万
采纳率:32%
帮助的人:893万
展开全部
引入变量T
令T=3-t
于是t属于[0,3]对应于T属于[0,3]
原微分方程组变成:
dx/dT=-(2y^2-2)
dy/dT=-(2yz-x-1)
dz/dT=-(2z^2-2y-4)
边值:
x(3)=1,y(3)=0,z(3)=2
对应于:
x(T=0)=1
y(T=0)=0
z(T=0)=2
在Matlab下输入:edit,然后将下面两行百分号之间的内容,复制进去,保存
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function
y=zhidao_rk4_hennry202(t,xx)
x=xx(1);
y=xx(2);
z=xx(3);
y=[-(2*y.^2-2)
-(2*y.*z-x-1)
-(2*z.^2-2*y-4)];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
在Matlab下输入:edit,然后将下面两行百分号之间的内容,复制进去,保存
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function
dxdt=zhidao_rk4_hennry202_2(t,xx)
x=xx(1);
y=xx(2);
z=xx(3);
dxdt=[(2*y.^2-2)
(2*y.*z-x-1)
(2*z.^2-2*y-4)];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%用T计算出T=3,即t=0的时候
[T,xyzT]=ode45('zhidao_rk4_hennry202',[0
3],[1,0,2]);
xyzT(end,:)
%用上面的计算结果来计算
[t,xyzt]=ode45('zhidao_rk4_hennry202_2',[0
3],xyzT(end,:));
xyzt(end,:)
ans
=

2.4536
0.9961
1.7306
ans
=

1.0506
0.1829
2.6608
误差也挺大(最大有33%相对误差)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式