Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 基础科学 > 数学
数学 A discussion board for Mathematics.
回复
 
主题工具 显示模式
旧 2009-06-09, 14:38   #1
lj2985
初级会员
 
注册日期: 2009-06-09
年龄: 43
帖子: 1
声望力: 0
lj2985 正向着好的方向发展
默认 紧急求助Matlab解微分方程组

解方程组
dy/dt=a*y-b*y*z+t
dz/dt=-b*z+2*t
y0=10
z0=10
当0<t<5,b=2,a=2;
5<t<10,b=-1 a=1
请问程序怎么编写,不胜感激。
lj2985 当前离线   回复时引用此帖
旧 2009-06-21, 13:37   #2
cfchenchen
初级会员
 
注册日期: 2009-06-20
住址: 学校
年龄: 38
帖子: 24
声望力: 16
cfchenchen 正向着好的方向发展
默认 回复: 紧急求助Matlab解微分方程组

disp('请你确定t范围:');
t=input('t=');
if t>=0&t<=5
[y,z]=dsolve('Dy=2*y-2*y*z+t','Dz=-2*z+2*t','y(0)=10','z(0)=10');
y=simple(y) % 将y化简
z=simple(z) % 将y化简
end
if t>=5&t<=10
[y,z]=dsolve('Dy=y+y*z+t','Dz=z+2*t','y(0)=10','z(0)=10');
y=simple(y) % 将y化简
z=simple(z) % 将y化简
end
cfchenchen 当前离线   回复时引用此帖
旧 2009-06-21, 13:39   #3
cfchenchen
初级会员
 
注册日期: 2009-06-20
住址: 学校
年龄: 38
帖子: 24
声望力: 16
cfchenchen 正向着好的方向发展
默认 回复: 紧急求助Matlab解微分方程组

结果如下:>> chen001
请你确定t范围:
t=0:2;

y =

exp(3*t-t^2+21/2*exp(-2*t))*(Int(u*exp(-3*u+u^2-21/2*exp(-2*u)),u = 0 .. t)*exp(21/2)+10)/exp(21/2)


z =

t-1/2+21/2/exp(t)^2

>> chen001
请你确定t范围:
t=5:6;

y =

exp(-t-t^2+12*exp(t))*(Int(u*exp(u+u^2-12*exp(u)),u = 0 .. t)*exp(12)+10)/exp(12)


z =

-2*t-2+12*exp(t)
是新手,不知符合你的要求吗?
cfchenchen 当前离线   回复时引用此帖
旧 2009-07-18, 09:03   #4
spicytailor
初级会员
 
注册日期: 2009-07-17
年龄: 38
帖子: 1
声望力: 0
spicytailor 正向着好的方向发展
默认 回复: 紧急求助Matlab解微分方程组

哈哈,我问下,如果那对时间的一次导变成二次导该怎么解呢?
spicytailor 当前离线   回复时引用此帖
旧 2009-07-21, 11:11   #5
cfchenchen
初级会员
 
注册日期: 2009-06-20
住址: 学校
年龄: 38
帖子: 24
声望力: 16
cfchenchen 正向着好的方向发展
默认 回复: 紧急求助Matlab解微分方程组

[y,z]=dsolve('D2y=2*y-2*y*z+t','Dz=-2*z+2*t','y(0)=10','z(0)=10');
变成D2y就行了,后面的依次类推了,不过初始条件要增加了.
cfchenchen 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 02:55


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.