求助,用 MATLAB 的 ode45 求解微分方程组

 我来答
lhmhz
高粉答主

2023-01-14 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7263 获赞数:16973

向TA提问 私信TA
展开全部

Matlab软件中如何使用ode 45 解微分方程组?求解过程应按下列步骤来计算:

第一步:根据已经微分方程组和相关系数,自定义求解微分方程组的函数,其函数名 odefun,其参数为【t,z】

第二步:由于未知初始条件,用随机数初定,即z0=rand(1,6)/1000;

第三步:确定时间t的范围,如tspan=[0 50];

第四步:使用ode45函数,求其数值解,即

[t,z]=ode45(@(t,z)odefun(t,z),tspan,z0);

第五步:使用plot函数,绘制其相关图形。

第六步:编程后执行,得到结果。

图1,耦合14-16方程组的结果。

管曼安所昌
2019-11-30 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:28%
帮助的人:783万
展开全部
ode45是最常用的求解非刚性微分方程(组)的指令,它采用变步长四、五阶runge-kutta法,求解精度比ode23、ode15要高。但ode45的计算量比较大,而ode23计算量小,且误差大
调用格式:[t,y]=ode45(odefun,tspan,y0)
odefun
用以表示f(t,y)的函数句柄或inline函数,t是标量,y是标量或向量;
tspan
如果是二维向量[t0,tf],表示自变量初值t0和终值tf;如果是高维向量[t0,t1,t2,。。。,tn],则表示输出结点列向量;
y0
表示初值向量;
t
表示结点列向量(t0,t1,t2,。。。,tn)^t;
y
表示数值解矩阵,每一列对应y的一个分量。
实例说明:
例1
y'=y-2t/y,y(0)=1,0
评论
0
0
0
加载更多
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
景志国敖央
2020-01-09 · TA获得超过2.9万个赞
知道大有可为答主
回答量:1.1万
采纳率:28%
帮助的人:874万
展开全部
例如:求解下列微分方程组
求解步骤:
①自定义函数
rigid。m
function
dy
=
rigid(t,y)
dy
=
zeros(3,1);
%
a
column
vector
dy(1)
=
y(2)
*
y(3);
dy(2)
=
-y(1)
*
y(3);
dy(3)
=
-0.51
*
y(1)
*
y(2);
②在执行窗口下,执行下列命令
options
=
odeset('RelTol',1e-4,'AbsTol',[1e-4
1e-4
1e-5]);
[t,Y]
=
ode45(@rigid,[0
12],[0
1
1],options);
plot(T,Y(:,1),'-',T,Y(:,2),'-.',T,Y(:,3),'.')
③求解结果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式