Matlab-变系数多项式的根



假设p=[3,2,1]。然后,roots(p)给出了3x^2+2x+1的根。

如果多项式的系数取决于系数a,该怎么办?类似于多项式CCD_ 5。如果我定义p = @(a) [3,2,a],那么roots(p)就不起作用。错误为

Undefined function 'isfinite' for input arguments of type 'function_handle'.

有没有办法调整roots函数,或者我必须退回到fsolve才能找到变系数多项式的根?

您需要将a定义为符号变量,如下所示:

syms a

然后

p = [3,2,a]
roots(p)

应该起作用。我使用的是R2019b。

对于更复杂的例子,如果您知道变量a的任何信息(例如a是实数(,您应该通过将变量定义为实数来让roots()函数知道:

syms a real

最新更新