Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-04-10, 17:42   #1
flying_23
初级会员
 
注册日期: 2009-01-30
年龄: 42
帖子: 9
声望力: 0
flying_23 正向着好的方向发展
默认 matlab-方程求解

有方程X1'=AX0+(B+1)X1+X1^2*X2
X2'=X0+BX1-X1^2*X2
t=1:5;
当t=1时,X0=2; t=2时,X0=2.5; t=3时,X0=2.8; t=4时,X0=1.8; t=5时,X0=1.7;
a=85;
b=1;
首先,求解每个时刻的X1和X2的稳态解;
然后;将每个时刻的稳态解与测试值相比,若差值大于1,则修改系数a和b,使得稳态解与测试值的差值小于1
如何编写matlab程序呢
flying_23 当前离线   回复时引用此帖
旧 2009-04-12, 22:13   #2
laosam280
高级会员
 
注册日期: 2008-11-07
住址: 湖南长沙
帖子: 233
声望力: 21
laosam280 正向着好的方向发展
默认 回复: matlab-方程求解

代码我写好了:
%这就是一个例子,初值我都自己定义了,你要计算可以修改。把上面的X1'=AX0+(B+1)X1+X1^2*X2;X2'=X0+BX1-X1^2*X2这个方程组写成一个函数文件,存为myfunfun.m

t_final=100; x0=[1;1];
[t,x]=ode45('myfunfun',[0,t_final],x0);
plot(t,x)

可惜了,因为有非线性项,我电脑没有在短时间内算出来。明天我去实验室用大型机给你算一下,再找个时间把结果发给你。
laosam280 当前离线   回复时引用此帖
旧 2009-04-13, 09:00   #3
laosam280
高级会员
 
注册日期: 2008-11-07
住址: 湖南长沙
帖子: 233
声望力: 21
laosam280 正向着好的方向发展
默认 回复: matlab-方程求解

好了,今天可以解答这个问题了,不过为了简便,我没有对每个初值修改方程,回头你自己去修改吧。
结果和代码都在附件里面。顺便说一声,因为你的是非线性方程,步长最好自己控制,否则计算时间很长,我用了50个点,就算了61.64seconds
上传的附件
文件类型: rar run_myfun.rar (3.3 KB, 13 次查看)
laosam280 当前离线   回复时引用此帖
旧 2009-04-13, 14:29   #4
flying_23
初级会员
 
注册日期: 2009-01-30
年龄: 42
帖子: 9
声望力: 0
flying_23 正向着好的方向发展
默认 回复: matlab-方程求解

谢谢,非常感谢,可以有联系方式吗,有问题可以直接请教您,
[email protected]

此帖于 2010-08-26 23:48 被 flying_23 编辑。
flying_23 当前离线   回复时引用此帖
回复


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

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



所有时间均为北京时间。现在的时间是 10:46


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