在 Matlab 中获取多项式的根

Ammar Ali 2023年1月30日 2021年7月4日
  1. 使用 MATLAB 中的 roots() 函数获取多项式的根
  2. 使用 MATLAB 中的 solve() 函数获取多项式的根
在 Matlab 中获取多项式的根

本教程将介绍如何使用 MATLAB 中的 roots()solve() 函数求多项式的根。

使用 MATLAB 中的 roots() 函数获取多项式的根

如果要查找多项式的根,可以使用 MATLAB 中的 roots() 函数。此函数的此输入是包含多项式系数的向量。如果多项式中不存在幂,则将使用 0 作为其系数。此函数的输出是一个列向量,其中包含给定多项式的实根和虚根。例如,让我们找到二次多项式的根:2x^2 - 3x + 6 = 0。我们必须从最高的幂开始定义多项式系数,如果没有幂,我们将使用 0 作为其系数。请参考下面的代码。

poly = [2 -3 6];
p_roots = roots(poly)

输出:

p_roots =

   0.7500 + 1.5612i
   0.7500 - 1.5612i

在上面的代码中,我们只使用了多项式的系数,从最高的幂开始。你可以根据给定的多项式更改多项式的系数。知道了,让我们找出一个四次多项式的根:2x^4 + 1 = 0。看下面的代码。

poly = [2 0 0 0 1];
p_roots = roots(poly)

输出:

p_roots =

  -0.5946 + 0.5946i
  -0.5946 - 0.5946i
   0.5946 + 0.5946i
   0.5946 - 0.5946i

我们在上面代码中的两个多项式之间使用了三个 0,因为缺少三个幂。查看此链接以获取有关 roots() 函数的更多信息。

使用 MATLAB 中的 solve() 函数获取多项式的根

如果要查找多项式的根,可以使用 MATLAB 中的 solve() 函数。此函数的此输入是多项式。此函数的输出是一个列向量,其中包含给定多项式的实根和虚根。例如,让我们找出二次多项式的根:2x^2 - 3x + 6 = 0。我们必须定义多项式。请参考下面的代码。

syms x
poly = 2*x^2 -3*x +6 == 0;
p_roots = solve(poly,x)
p_roots = vpa(p_roots,2)

输出:

p_roots =
 
 0.75 - 1.6i
 0.75 + 1.6i

在上面的代码中,我们定义了整个多项式,并使用了 vpa() 函数来改变结果的精度。你可以根据给定的多项式和精度根据你的要求更改多项式。知道了,让我们找出一个四次多项式的根:2x^4 + 1 = 0。看下面的代码。

syms x
poly = 2*x^4 +1 == 0;
p_roots = solve(poly,x);
p_roots = vpa(p_roots,2)

输出:

p_roots =
 
 - 0.59 - 0.59i
 - 0.59 + 0.59i
   0.59 - 0.59i
   0.59 + 0.59i

在上面的代码中,我们定义了整个多项式并使用 vpa() 函数来改变结果的精度。你可以根据给定的多项式和精度根据你的要求更改多项式。

Author: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook