24小时热门版块排行榜    

CyRhmU.jpeg
查看: 158  |  回复: 0
当前主题已经存档。

sspxiaoji

银虫 (正式写手)

[交流] 【求助】matlab解微分方程组

用[t,y]=ode45('nov',[0 1],[1 1])解常微分方程组时出现:
??? Inputs to odearguments must be floats, namely single or double
要如何修改?
M文件为:
function dydt=nov7(t,y)
global A B n
digits(7);
beta=0.5;
T=sym('[y(1) y(2) y(3) y(4) y(5) y(6) y(7) y(8) y(9) y(10) y(11) y(12) y(13) y(14) y(15) y(16) y(17) y(18) y(19) y(20) y(21)]');
T(n+1)=0.05;
for i=1:n
    dy(i)=T(i)^beta*(sum(B(i,1:n).*T(1:n))+B(i,n+1)*T(n+1))+beta*T(i)^(-beta)*(sum(A(i,1:n).*T(1:n))-A(i,n+1)*T(n+1))^2;
end
dydt=vpa(transpose(dy));
问题好像出在数字和y(1)。。。y(2)的类型不同,但我不知道如何把他们类型改成一致
请各位虫友指教

[ Last edited by cuplgz on 2008-1-18 at 14:18 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 sspxiaoji 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见