matlab习题 -x’=2x+3y,y’=2x+y,x(0)=-2,y(0)=2.8,0<t<10,做相平面图
时间: 2024-12-18 22:22:54 浏览: 11
在MATLAB中,要绘制给定初始条件下的线性常微分方程组 \( \begin{cases} x' = 2x + 3y \\ y' = 2x + y \end{cases} \),并且从 \( t=0 \) 到 \( t=10 \) 的相空间图(Phase Plane Plot),你可以按照以下步骤操作:
1. 定义状态变量和时间范围:
```matlab
x0 = -2; % 初始值 x
y0 = 2.8; % 初始值 y
tspan = [0 10]; % 时间范围
```
2. 创建常微分方程函数(odefun):
```matlab
dydx = @(t,y) [2*y(1); 2*y(1) + y(2)]; % 系统的导数表达式
```
这里我们匿名函数 `dydx` 表示了方程组。
3. 使用 `ode45` 或其他数值积分函数求解方程组:
```matlab
[t,y] = ode45(dydx, tspan, [x0 y0]); % 使用四阶龙格库塔法求解
```
`ode45` 返回时间向量 `t` 和相应的状态变量矩阵 `y`。
4. 绘制相空间图:
```matlab
figure;
plot(y(:,1), y(:,2)); % x-y平面上的轨迹
hold on; % 保持在同一图形上绘图
grid on; % 显示网格
xlabel('x');
ylabel('y');
title('System Phase Plane from t=0 to t=10');
legend('Solution Curve'); % 标记曲线
```
上述代码会生成一个显示初始点和轨迹的相空间图。
阅读全文