已知系统响应函数为f(t)=(t^2)*e*sin(t),用matlab编写程序画出该响应函数的各模态函数曲线和整个响应曲线
时间: 2023-08-08 07:04:30 浏览: 82
好的,以下是Matlab程序实现:
```matlab
% 定义系统响应函数
f = @(t) t.^2 .* exp(-t) .* sin(t);
% 设定时间范围
t = linspace(0, 10, 1000);
% 计算各模态函数曲线
mode1 = 1/sqrt(2*pi)*exp(-0.5*(t-1).^2);
mode2 = 1/sqrt(2*pi)*exp(-0.5*(t-2).^2);
mode3 = 1/sqrt(2*pi)*exp(-0.5*(t-3).^2);
% 计算整个响应曲线
response = f(t);
% 绘制模态函数曲线和整个响应曲线
plot(t, mode1, t, mode2, t, mode3, t, response)
legend('mode 1', 'mode 2', 'mode 3', 'response')
xlabel('Time')
ylabel('Amplitude')
```
程序解释:
首先,定义了系统响应函数f(t)=(t^2)*e*sin(t)。
然后,使用linspace函数生成一个时间范围0到10,包含1000个时间点。
接着,计算出各模态函数曲线。这里假设系统有三个模态函数,每个模态函数的形式都是高斯分布。具体来说,模态函数1位于t=1处,模态函数2位于t=2处,模态函数3位于t=3处,标准差为1。
最后,计算整个响应曲线。将时间范围和系统响应函数输入到f函数中,就能得到对应的响应值。
最后,使用plot函数绘制出各模态函数曲线和整个响应曲线。legend函数用于添加图例,xlabel和ylabel函数用于添加坐标轴标签。
阅读全文