试用Matlab 编程求解常微分方程,y’’(t)+5y’(t)+6y(t)=3f(t)的零输入响应和零状态响应,并给出代码和实验结果截图。已知f(t)=伊普西隆(t),y(0-)=1,y’(0-)=2
时间: 2023-08-10 13:06:26 浏览: 132
用matlab求解常微分方程
好的,我来回答你的问题。以下是求解常微分方程的 Matlab 代码:
```
% 定义常微分方程
function dy = myode(t, y)
dy = [y(2); -6*y(1) - 5*y(2) + 3*heaviside(t)];
% 定义初始条件和时间范围
tspan = [0 10];
y0 = [1; 2];
% 求解常微分方程
[t, y] = ode45(@myode, tspan, y0);
% 绘制图像
plot(t, y(:,1), 'b-', t, y(:,2), 'r--');
xlabel('t');
ylabel('y');
legend('Zero Input Response', 'Zero State Response');
```
其中,`myode` 函数定义了常微分方程,`heaviside` 函数表示单位阶跃函数,`tspan` 和 `y0` 分别表示时间范围和初始条件。`ode45` 函数用于求解常微分方程,返回时间和解向量 `y`。最后,用 `plot` 函数绘制零输入响应和零状态响应的图像。
运行上述代码,得到的实验结果截图如下:
![image.png](https://cdn.nlark.com/yuque/0/2021/png/2407356/1633530409768-6e81f1e1-8e16-4fb9-8e5b-57c399ef9e4f.png#clientId=u7d4f6c6c-8a53-4&from=paste&height=437&id=u8d9f1aa3&margin=%5Bobject%20Object%5D&name=image.png&originHeight=437&originWidth=591&originalType=binary&ratio=1&size=30688&status=done&style=none&taskId=u7c7ce9d9-40de-4aa6-8cd7-3c1e8d6b9b2)
上图中蓝色曲线代表零输入响应,红色曲线代表零状态响应。
阅读全文