Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2009-01-30
年龄: 42
帖子: 9
声望力: 0 ![]() |
![]()
有方程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程序呢 |
![]() |
![]() |
![]() |
#2 |
高级会员
注册日期: 2008-11-07
住址: 湖南长沙
帖子: 233
声望力: 21 ![]() |
![]()
代码我写好了:
%这就是一个例子,初值我都自己定义了,你要计算可以修改。把上面的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) 可惜了,因为有非线性项,我电脑没有在短时间内算出来。明天我去实验室用大型机给你算一下,再找个时间把结果发给你。 |
![]() |
![]() |
![]() |
#3 |
高级会员
注册日期: 2008-11-07
住址: 湖南长沙
帖子: 233
声望力: 21 ![]() |
![]()
好了,今天可以解答这个问题了,不过为了简便,我没有对每个初值修改方程,回头你自己去修改吧。
结果和代码都在附件里面。顺便说一声,因为你的是非线性方程,步长最好自己控制,否则计算时间很长,我用了50个点,就算了61.64seconds |
![]() |
![]() |
![]() |
#4 |
初级会员
注册日期: 2009-01-30
年龄: 42
帖子: 9
声望力: 0 ![]() |
![]()
谢谢,非常感谢,可以有联系方式吗,有问题可以直接请教您,
[email protected] 此帖于 2010-08-26 23:48 被 flying_23 编辑。 |
![]() |
![]() |