24小时热门版块排行榜    

查看: 638  |  回复: 1

wk1991

铜虫 (小有名气)

[求助] matlab中如何令ode调用外部函数 已有1人参与

我想用MATLAB中的ode23tb函数求解一个线性微分方程组,方程组中有一个变量z,这个变量需由ode每一步计算所得的变量值求取。举个例子如下:

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)+y(3))/z;



z=(z-a)*(y(1)+y(2)+y(3)/z);

我想实现的是,每个步长计算得到的y(1),y(2),y(3)带入z中求取z的值后,再带入ode函数中进入下一步长的计算。
我不知道该怎么实现?求问
(希望不要告诉我什么把z的显函数写出来,因为原本的函数特别复杂,就是求不出来,另外尝试过对z求导,但也无法实现)

matlab中如何令ode调用外部函数
FullSizeRender(1).jpg
回复此楼

» 猜你喜欢

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

月只蓝

主管区长 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
z 的表达式本身是隐函数,所以整个微分方程也是隐函数。
ode23tb 函数不行的话,试试用 ode15i 。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2016-07-01 16:55:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wk1991 的主题更新
信息提示
请填处理意见