在matlab中绘制参数化解

在matlab中绘制参数化解,matlab,differential-equations,Matlab,Differential Equations,我需要使用从0到0.3的t值(每次递增0.001)绘制以下方程组的参数化解: x′ =  12.3 x −  2.7 y y′ =  5.7 x −  3.7 y 这是我到目前为止得到的,但我很确定我的参数曲线是错误的。我期待的是指数型的东西,不是很多直线。我做错了什么 A = [ 12.3, -2.7; 5.7, -3.7 ]; %initial matrix [P D] = eig(A); %finding eigenvalues and eigenvectors i = [1;4.3];

我需要使用从0到0.3的t值(每次递增0.001)绘制以下方程组的参数化解:

x′ =  12.3 x −  2.7 y

y′ =  5.7 x −  3.7 y

这是我到目前为止得到的,但我很确定我的参数曲线是错误的。我期待的是指数型的东西,不是很多直线。我做错了什么

A = [ 12.3, -2.7; 5.7, -3.7 ]; %initial matrix
[P D] = eig(A); %finding eigenvalues and eigenvectors
i = [1;4.3]; %initial conditions
H = inv(P)*i; %solving for c1 and c2

t = 0:0.001:0.3; 
c1 = 0.2580; %constant
c2 = 4.2761; %constant
B1 = [0.9346;0.3558]; %eigenvector
B2 = [0.1775;0.9841]; %eigenvector
a = 11.2721; %eigenvalue
b = -2.6721; %eigenvalue

x1 = c1*B1*exp(a*t) + c2*B1*exp(b.*t);
x2 = c1*B2*exp(a*t) + c2*B2*exp(b.*t);

plot(x1,x2);

你的问题是计算x1和x2。由于B1和B2是向量,因此执行此操作:

x1 = c1*B1*exp(a*t) + c2*B1*exp(b.*t);
x2 = c1*B2*exp(a*t) + c2*B2*exp(b.*t);
由301矩阵构成x1和x2 2

正确的结果更简单: x=c1*B1*expa*t+c2*B2*expb*t

并绘制出:

plot(x(1,:),x(2,:));