PDA

查看完整版本 : [求助]关于ode45函数的运用和理解


happylll
2009-03-10, 23:47
问题:1、状态方程有参数时,比如Jy''+By'=u,这个方程化为状态空间描述时,有参数u,这时的格式为[t,x]=ode45('function_name',tspan,x0,[],para);,【】的值需要通过odeset函数来设置,不知道这样理解对么?怎么设置请热心人回答。
2、ode45求解微分方程的解的时候,到底是怎么个算法?请大家解释一下如下这段程序

---------

for k=1:1:2000
time(k)=0.5*sin()2*pi*k*ts);
para=u_1;
tspan=[0 ts]; %ts=0.001

[tt,xx]=ode45('function_name',tspan,xk,[],para);
xk=xx(length(xx),:);
yout(k)=xk(1);
经过matlab验证,xx(length(xx),:)是xx中的最后一行的元素,因为只有2列,故只有2个元素,现在的问题是:
3、为何只取这最后1行的元素呢?取其中任一个不行么?xx中为何有那么多的元素呢?难道在tspan中进行计算所以有很多的解么?那么有多少个解能控制么?tspan为何一直是【0 0.001】,不是0.001k+0.001这段时间?即采样时刻加采样时间?

请热心人回答,先谢过了。