作业帮 > 综合 > 作业

matlab ode45解线性微分方程时的参数

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/07/06 20:13:56
matlab ode45解线性微分方程时的参数
函数文件:
function xdot=FreeOcillation(t,x,dummy,zeta)
xdot=[x(2);-2.0*zeta*x(2)-x(1)];
命令窗口:
zeta=[0.1 1.0 5.0];
tspan=linspace(0,40,400);%生成0-40的四百个线性点
for i=1:3
[t,x]=ode45('FreeOcillation',tspan,[1 1],[],zeta(i));
plot(t,x(:,1));
hold on
end
函数文件里的变量dummy和命令窗口的空矩阵是什么意思?
matlab ode45解线性微分方程时的参数
函数FreeOcillation(t,x,dummy,zeta)写错了,应该把那个dummy删掉.该参数在函数中并未使用,而且调用的时候也没有提供相应的数据.

命令窗口的空矩阵代表ode求解器的选项.各种求解器的调用格式都是
[T,Y] = solver(odefun,tspan,y0,options,p1,p2...)
因为你的函数需要传递附加的参数zeta,前面四个参数都必须提供.前三个参数分别是函数名、时间范围和初值,第四个是options,用以控制求解过程的一些选项(如误差控制等).把options设为空矩阵表示使用默认选项.