Octave 错误:根:输入不能包含Inf或NaN(八度)

Octave 错误:根:输入不能包含Inf或NaN(八度),octave,sympy,symbolic-math,Octave,Sympy,Symbolic Math,我用八度音阶做符号计算,得到如下错误 >> p p(x) = (symfun) 3 2 x - 3⋅x - 4⋅x + 16 >> roots(p) error: roots: inputs must not contain Inf or NaN error: called from roots at line 87 column 5 因为我不熟悉八度音阶的符号计算,我肯定我只是用错了。p的根的计算应该如何在八度音程中进行 谢谢 根是

我用八度音阶做符号计算,得到如下错误

>> p
p(x) = (symfun)

   3      2
  x  - 3⋅x  - 4⋅x + 16

>> roots(p)
error: roots: inputs must not contain Inf or NaN
error: called from
    roots at line 87 column 5
因为我不熟悉八度音阶的符号计算,我肯定我只是用错了。p的根的计算应该如何在八度音程中进行


谢谢

是一个数值过程,您需要将符号多项式转换为根函数可以理解的数值形式

octave:1> p = symfun( sym('x ^ 3 - 3 * x ^ 2 - 4 * x + 16'), sym('x') )
p(x) = (symfun)
   3      2           
  x  - 3⋅x  - 4⋅x + 16
octave:2> roots( sym2poly( p ) )
ans =
  -2.1844 + 0.0000i
   2.5922 + 0.7780i
   2.5922 - 0.7780i
我不知道matlab符号工具箱是否提供了根的符号版本

更新要查找符号多项式的根,请使用
求解
函数;该函数在matlab和octave(用于符号变量)中执行相同的操作


是一个数值过程,您需要将符号多项式转换为根函数所理解的数值形式

octave:1> p = symfun( sym('x ^ 3 - 3 * x ^ 2 - 4 * x + 16'), sym('x') )
p(x) = (symfun)
   3      2           
  x  - 3⋅x  - 4⋅x + 16
octave:2> roots( sym2poly( p ) )
ans =
  -2.1844 + 0.0000i
   2.5922 + 0.7780i
   2.5922 - 0.7780i
我不知道matlab符号工具箱是否提供了根的符号版本

更新要查找符号多项式的根,请使用
求解
函数;该函数在matlab和octave(用于符号变量)中执行相同的操作


在symphy中还有一个符号根函数。“我不知道你从八度音阶怎么称呼它。”奥斯卡本贾明,谢谢。你的评论让我更为迅速。我已经更新了答案。Symphy中还有一个符号根函数。“我不知道你从八度音阶怎么称呼它。”奥斯卡本贾明,谢谢。你的评论让我更为迅速。我已经更新了答案。