声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3020|回复: 2

[编程技巧] 求助!关于dsolve函数求解多元一阶微分方程组的问题~~~

[复制链接]
发表于 2010-6-2 15:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
小弟刚刚着手matlab 以前只用过他做过线性规划,如今要利用它去仿真一个模型。
我写的代码如下:
syms t asd11;
asd11=dsolve('Dasd11+25*asd11-25*0.43392=0','asd11(0)=0');
ysd11=asd11-0.153
syms t asd12;
asd12=dsolve('Dasd12+25*asd12-25*0.31616=0','asd12(0)=0');
asd12
ysd12=asd12-0.159
[ustn1,ustn2,ustn3,ustn4,...
astn1,astn2,astn3,astn4,...
ugpe1,ugpe2,ugpe3,ugpe4,...
agpe1,agpe2,agpe3,agpe4,...
ygpe1,ygpe2,ygpe3,ygpe4,...
ugpi1,ugpi2,ugpi3,ugpi4,...
agpi1,agpi2,agpi3,agpi4,...
ygpi1,ygpi2,ygpi3,ygpi4]=dsolve('ustn1=1.003*0.4--0.922*ygpe1','Dastn1+25*astn1-25*ustn1=0',...
                                 'ustn2=-0.922*ygpe2',          'Dastn2+25*astn2-25*ustn2=0',...
                                 'ustn3=-0.922*ygpe3',          'Dastn3+25*astn3-25*ustn3=0',...
                                 'ustn4=-0.922*ygpe4',          'Dastn4+25*astn4-25*ustn4=0',...
                                 ...
                                 'ugpe1=0.774*astn1+0.774*0.347-0.981*ysd12','Dagpe1+25*agpe1-25*ugpe1=0',          'ygpe1=agpe1+0.268',...
                                 'ugpe2=0.774*astn1+0.774*0.347',            'Dagpe2+25*agpe2-25*ugpe2=0',          'ygpe2=agpe2+0.268',...
                                 'ugpe3=0.774*astn1+0.774*0.347',            'Dagpe3+25*agpe3-25*ugpe3=0',          'ygpe3=agpe3+0.268',...
                                 'ugpe4=0.774*astn1+0.774*0.347',            'Dagpe4+25*agpe4-25*ugpe4=0',          'ygpe4=agpe4+0.268',...
                                 ...
                                 'ugpi1=0.83*astn1+0.83*0.347-1.065*ysd11-0.382ygpe1','Dagpi1+25*agpi1-25*ugpi1=0', 'ygpi1=agpi1+0.121',...
                                 'ugpi2=0.83*astn1+0.83*0.347-0.382ygpe2',            'Dagpi2+25*agpi2-25*ugpi2=0', 'ygpi2=agpi2+0.121',...
                                 'ugpi3=0.83*astn1+0.83*0.347-0.382ygpe3',            'Dagpi3+25*agpi3-25*ugpi3=0', 'ygpi3=agpi3+0.121',...
                                 'ugpi4=0.83*astn1+0.83*0.347-0.382ygpe4',            'Dagpi4+25*agpi4-25*ugpi4=0', 'ygpi4=agpi4+0.121',...
                                  ...
                                 'astn1(0)=0','astn2(0)=0','astn3(0)=0','astn4(0)=0',...
                                 'agpe1(0)=0','agpe2(0)=0','agpe3(0)=0','agpe4(0)=0',...
                                 'agpi1(0)=0','agpi2(0)=0','agpi3(0)=0','agpi4(0)=0','t')

运行的时候asd11 asd12 ysd11 ysd12 四个关于的t的方程都解出来了,但是接下来就报错了“??? Error using ==> dsolve at 249
There are more ODEs than variables.”  这个是什么意思呢? 我又32个未知数 32个方程 和12个边界条件 按理应该是够得啊  
请知道的大侠们说说问题在哪里~~~~TT
回复
分享到:

使用道具 举报

发表于 2010-6-13 21:07 | 显示全部楼层
以前没使用过这函数, 刚学习并试跑下LZ的程式, 但报错与LZ不同(如下), 我的版本是R2009a
??? Error using ==> dsolve>mupadDsolve at 198
Can not use D as a variable in DSOLVE.
Error in ==> dsolve at 114
[R,var_list,order] =
mupadDsolve(ignoreConstraints,varargin{1:narg});
Error in ==> zzzz at 8
[ustn1,ustn2,ustn3,ustn4,...

而且help中, 有这么一句"The dsolve command accepts up to 12 input arguments."
同待高人路过
发表于 2012-7-24 10:27 | 显示全部楼层
楼主写好求解的程序了吗??我也好想看下·望回复··
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-21 05:31 , Processed in 0.055963 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表