24小时热门版块排行榜    

查看: 2492  |  回复: 3

kittyzoe

木虫 (正式写手)

[求助] matlab 求解隐式常微分方程时用ode15i 函数出现的问题求助

在matlab中利用ode15i函数求解隐式常微分方程时,需要用decic函数先确定初值。求初值的语句如下:
%求初值
t0=0;
Y00=[a;0;b;0];
fix_Y00=ones(4,1);%题目中Y0全给出时,全为1
dY0=[0;0;0;0];
fix_dY0=zeros(4,1);%题目中dY0没给出,全为0
[Y02,dY02]=decic(@function,t0,Y00,fix_Y00,dY0,fix_dY0);

但是运行以后出现以下错误:
??? Error using ==> decic>sls at 131
Try freeing 4 fixed components.

Error in ==> decic at 80
    [dy,dyp] = sls(res,dfdy,dfdyp,neq,free_y,free_yp);

查了好久也不知道是出现什么原因了,不知高手们有没有遇到过这种问题呢?请指点一二啊。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kittyzoe

木虫 (正式写手)

我刚尝试把第三句:fix_Y00=ones(4,1);%题目中Y0全给出时,全为1
改为:fix_Y00=zeros(4,1);
就不再出现错误,但是此时给定的Y0初值也没法固定了啊,不知道有什么办法解决么
2楼2011-11-09 09:15:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kittyzoe

木虫 (正式写手)

当出现如下警告的时候是不是说明方程没办法求解呢?
>> [t,Y]=ode15i(@function,Tspan,Y0,Yp0,options);
Warning: Failure at t=8.015625e-003.  Unable to meet integration tolerances without reducing
the step size below the smallest value allowed (2.847722e-017) at time t.
> In ode15i at 416
>>
3楼2011-11-09 09:24:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

WF1987

铜虫 (小有名气)

怎么不把所有程序都贴出来呢?
4楼2012-02-27 17:02:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 kittyzoe 的主题更新
信息提示
请填处理意见