作业帮 > 综合 > 作业

大家帮我看看这段MATLAB解微分方程的程序

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/06/12 23:11:45
大家帮我看看这段MATLAB解微分方程的程序
m-文件rigid.m的第二行“dy=zeros(3,
是说“y1(0)=0,y2(0)=1,y3(0)=1”里头的自变量为0么?
解微分方程
y1'=y2y3
y2'=-y1y3
y3'=-0.5y1y2
y1(0)=0,y2(0)=1,y3(0)=1
1、建立m-文件rigid.m如下:
function dy=rigid(t,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);
2、取t0=0,tf=12,输入命令做图:
[T,Y]=ode45('rigid',[0 12],[0 1 1]);
plot(T,Y(:,1),'-',T,Y(:,2),'*',T,Y(:,3),'+')
m-文件rigid.m的第二行“dy=zeros(3,
是说“y1(0)=0,y2(0)=1,y3(0)=1”里头的自变量为0么?
大家帮我看看这段MATLAB解微分方程的程序
dy=zeros(3,1); 是先要生成方程组的因变量的位置,zeros(m,n)是生成一个m行n列的零矩阵.
y1(0)=0,y2(0)=1,y3(0)=1这是给的初值 ,ode45(‘函数名’,‘取值范围’,‘初值’)为4、5阶的龙格库塔法求微分方程组的解.本题的为[T,Y]=ode45('rigid',[0 12],[0 1 1]);
再问: 何谓生成方程组的因变量的位置?能详细讲讲这一点吗? 其他部分不用暂时没有疑问
再答: C语言的有些类似,在使用指针时,要先定义,为之开辟一定空间。