用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
- **问题类型:**刚性
- **精准度:**低到中
设定相对误差
和绝对误差
设定相对误差和绝对误差,这样可以提高微分方程数值解的精准度文章来源:https://www.toymoban.com/news/detail-504408.html
options = odeset('reltol',1e-4,'abstol',1e-8);
[x,y] = ode45('df1',[0,2],3,options);
设置x的间隔
可以指定要求解的位置文章来源地址https://www.toymoban.com/news/detail-504408.html
[x,y] = ode45('df1',[0:0.001:2],3,options);
到了这里,关于用MATLAB求一阶微分方程(组)数值解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!