MATLAB多项式求根与多项式操作
时间:2026-04-05 12:00 来源:Internet 作者:admin 点击:次
在科学研究和工程应用中,求解多项式的根(即使多项式为零的变量值)是一个常见问题。MATLAB提供了强大的多项式处理工具,能够高效地完成多项式求根、根据根构造多项式以及其他相关操作。 一、MATLAB中的多项式表示在MATLAB中,多项式用一个行向量表示,其系数按降幂顺序排列。 示例:多项式输入
对于多项式: 在MATLAB中输入如下: >> p = [1 -12 0 25 116] 输出:
p =
1 -12 0 25 116
二、多项式求根:roots函数
使用 >> r = roots(p) 输出:
r =
11.7473
2.7028
-1.2251 + 1.4672i
-1.2251 - 1.4672i
结果说明:
三、由根构造多项式:poly函数
在MATLAB中,多项式用行向量表示,根用列向量表示。给定多项式的根,可以使用 >> pp = poly(r) 输出:
pp =
1.0e+002 *
Columns 1 through 4
0.0100 -0.1200 0.0000 0.2500
Column 5
1.1600 + 0.0000i
处理复数误差当用根重组多项式时,由于截断误差,结果可能产生微小的虚部。这是正常现象,因为MATLAB在复数运算中会产生极小的数值误差。
解决方法:使用 >> pp = real(pp) 输出:
pp =
1.0000 -12.0000 0.0000 25.0000 116.0000
四、多项式操作函数汇总MATLAB提供了丰富的多项式操作函数:
五、完整示例代码% 定义多项式系数(降幂排列) p = [1 -12 0 25 116]; % 显示多项式表达式 disp('多项式:'); poly2str(p, 'x') % 求多项式的根 r = roots(p); disp('多项式的根:'); disp(r); % 由根重新构造多项式 pp = poly(r); pp = real(pp); % 消除虚部误差 disp('重构的多项式系数:'); disp(pp); % 验证:计算多项式在x=0处的值 val = polyval(p, 0); disp(['p(0) = ', num2str(val)]); % 绘制多项式曲线 x = -15:0.1:15; y = polyval(p, x); plot(x, y, 'b-', 'LineWidth', 2); hold on; plot(real(r), zeros(size(r)), 'ro', 'MarkerSize', 8, 'LineWidth', 2); grid on; xlabel('x'); ylabel('p(x)'); title('多项式曲线与根的位置'); legend('p(x)', '根'); hold off; 六、注意事项
|
- 上一篇:MATLAB 控制投影机
- 下一篇:[图文] 8节点等参单元matlab编程