假设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