我在编matlab程序的过程中,需要用ode45解一个一阶微分方程组,怎么做呢???
发布网友
发布时间:2022-04-29 03:44
我来回答
共2个回答
热心网友
时间:2023-10-09 16:16
只告诉你调用ode45的方法
[x,y]=ode45('odex',[t0,tf],y0,tol,trace)
odex代表定义函数f(x,y)的m文件名;
t0,tf分别为积分的初值和终值;
y0是初始状态的列向量;
tol是控制解的精度,可省略,缺省值为1E-6;
trace决定求解过程中中间结果是否省略,缺省值为0,表示不显示。
举个应用的例子:
解y'=y-2*x/y,y(0)=1
先编个M函数文件,比如命名为pp.m
function dy=pp(x,y)
dy=[y-2*x/y];
然后只需使用命令:
[x,y]=ode45('pp',[0 20],1) 即可求解
热心网友
时间:2023-10-09 16:16
我来解答你的关键问题:将之前主程序计算出来的系数用global cof定义,再在ode45的子函数里同样定义global cof,这样就能把值计算出来并且传递进去了.
热心网友
时间:2023-10-09 16:16
只告诉你调用ode45的方法
[x,y]=ode45('odex',[t0,tf],y0,tol,trace)
odex代表定义函数f(x,y)的m文件名;
t0,tf分别为积分的初值和终值;
y0是初始状态的列向量;
tol是控制解的精度,可省略,缺省值为1E-6;
trace决定求解过程中中间结果是否省略,缺省值为0,表示不显示。
举个应用的例子:
解y'=y-2*x/y,y(0)=1
先编个M函数文件,比如命名为pp.m
function dy=pp(x,y)
dy=[y-2*x/y];
然后只需使用命令:
[x,y]=ode45('pp',[0 20],1) 即可求解
热心网友
时间:2023-10-09 16:16
我来解答你的关键问题:将之前主程序计算出来的系数用global cof定义,再在ode45的子函数里同样定义global cof,这样就能把值计算出来并且传递进去了.
热心网友
时间:2023-10-09 16:16
只告诉你调用ode45的方法
[x,y]=ode45('odex',[t0,tf],y0,tol,trace)
odex代表定义函数f(x,y)的m文件名;
t0,tf分别为积分的初值和终值;
y0是初始状态的列向量;
tol是控制解的精度,可省略,缺省值为1E-6;
trace决定求解过程中中间结果是否省略,缺省值为0,表示不显示。
举个应用的例子:
解y'=y-2*x/y,y(0)=1
先编个M函数文件,比如命名为pp.m
function dy=pp(x,y)
dy=[y-2*x/y];
然后只需使用命令:
[x,y]=ode45('pp',[0 20],1) 即可求解
热心网友
时间:2023-10-09 16:16
我来解答你的关键问题:将之前主程序计算出来的系数用global cof定义,再在ode45的子函数里同样定义global cof,这样就能把值计算出来并且传递进去了.