matlab求解一阶常微分方程组
时间: 2023-07-13 09:10:56 浏览: 114
MATLAB中求解一阶常微分方程组可以使用 `ode45`、`ode23`、`ode113` 等函数。这里以 `ode45` 为例进行说明。
假设我们要求解以下一阶常微分方程组:
```
y1' = y1 + y2
y2' = -y1 + y2
```
其中,y1(0)=1,y2(0)=0。
首先,我们需要将该方程组转换为MATLAB可识别的形式,即:
```
dydt(1) = y(1) + y(2)
dydt(2) = -y(1) + y(2)
```
然后,我们可以定义一个函数来表示该方程组:
```matlab
function dydt = myode(t,y)
dydt = zeros(2,1);
dydt(1) = y(1) + y(2);
dydt(2) = -y(1) + y(2);
end
```
接下来,我们可以使用 `ode45` 函数求解该方程组:
```matlab
tspan = [0 10];
y0 = [1; 0];
[t,y] = ode45(@myode, tspan, y0);
```
上述代码中,我们设置了求解区间 `tspan` 和初值 `y0`,然后调用 `ode45` 函数求解该方程组,并将求解结果保存在变量 `t` 和 `y` 中。
最后,我们可以绘制 y1 和 y2 随时间变化的图像:
```matlab
plot(t,y(:,1),'-o',t,y(:,2),'-x')
legend('y1','y2')
```
这样,我们就可以得到 y1 和 y2 随时间变化的图像了。
需要注意的是,对于一阶常微分方程组,我们需要将其转换为向量形式,然后才能使用 `ode45` 等函数进行求解。
阅读全文