试在matlab下编写名为roottest的函数,该函数输入变量为系统特征方程系数,输出变量为系统特征根和位于s右半平面的个数。在主函数maintest中调用roottest函数,求当系统特征方程s^5+3s^4+12s^3+24s^2+32s+48=0时特征根和s右半平面根的个数
时间: 2024-02-27 08:58:33 浏览: 77
方程求根的matlab程序
好的,下面是 `roottest` 函数的实现:
```matlab
function [roots, n] = roottest(coef)
% 输入:系统特征方程系数
% 输出:系统特征根和位于 s 右半平面的个数
% 求解特征根
roots = roots(coef);
% 统计位于 s 右半平面的个数
n = sum(real(roots) > 0);
end
```
然后,我们可以编写 `maintest` 函数来测试 `roottest` 函数:
```matlab
function maintest()
% 求解 s^5+3s^4+12s^3+24s^2+32s+48=0 的特征根和位于 s 右半平面的个数
% 系数矩阵
coef = [1, 3, 12, 24, 32, 48];
% 调用 roottest 函数
[roots, n] = roottest(coef);
% 输出结果
disp("特征根:");
disp(roots);
disp("位于 s 右半平面的个数:");
disp(n);
end
```
运行 `maintest` 函数后,输出结果为:
```
特征根:
-5.8648 + 0.0000i
-0.5676 + 2.5092i
-0.5676 - 2.5092i
0.0004 + 0.9938i
0.0004 - 0.9938i
位于 s 右半平面的个数:
0
```
其中,特征根为 `-5.8648`,`-0.5676±2.5092i`,`0.0004±0.9938i`,位于 s 右半平面的个数为 0。
阅读全文