用MATLAB求一阶微分方程(组)数值解

用MATLAB求一阶微分方程(组)数值解

标准形式

标准形式要先写成左边是y的导数右边是本身函数或者自变量,然后写成.m文件类似:

function dy = df1(x,y)
    dy=y-2*x;%标准形式
end
function dy=df2(x,y)
    dy=zeros(3,1);%一定要写成列向量
    dy(1)=y(2)*y(3);
    dy(2)=-y(1)*y(3);
    dy(3)=-0.51*y(1)*y(2);
end

如果有多个微分方程,dy=zeros(3,1);%一定要写成列向量

进行求解

[x,y]=ode45('df1',[0,3],3)
[x,y]=ode45('df2',[0,4*pi],[0,1,1])

3、[0,1,1]都是方程(组)的初始值,并且初始值的x=0;

就会得到一系列x,y值;

常用的求解函数

ode45(最常用)

  • **问题类型:**非刚性
  • **精准度:**中等

ode15s

  • **问题类型:**刚性
  • **精准度:**低到中
    在这里插入图片描述

设定相对误差

和绝对误差

设定相对误差和绝对误差,这样可以提高微分方程数值解的精准度

options = odeset('reltol',1e-4,'abstol',1e-8);
[x,y] = ode45('df1',[0,2],3,options);

设置x的间隔

可以指定要求解的位置

[x,y] = ode45('df1',[0:0.001:2],3,options);
  • 8
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

立乱来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值