PDA

查看完整版本 : [MATLAB毕业设计] matlab-方程求解


flying_23
2009-04-10, 17:42
有方程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程序呢

laosam280
2009-04-12, 22:13
代码我写好了:
%这就是一个例子,初值我都自己定义了,你要计算可以修改。把上面的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
好了,今天可以解答这个问题了,不过为了简便,我没有对每个初值修改方程,回头你自己去修改吧。
结果和代码都在附件里面。顺便说一声,因为你的是非线性方程,步长最好自己控制,否则计算时间很长,我用了50个点,就算了61.64seconds

flying_23
2009-04-13, 14:29
谢谢,非常感谢,可以有联系方式吗,有问题可以直接请教您,
[email protected]