如何使用 fzero() 在 MATLAB 中求解多项式方程?
How to use fzero() to solve polynomial equation in MATLAB?
我想为 r
求解以下多项式:
我正在尝试按如下方式使用 fzero()
:
r = (5/(r^2*9))- ((2)/(9*(6-r)^2))
x0 = 10; % some initial point
x = fzero(r,x0)
fzero()
如何做到这一点?
- 输入变量和函数名应该不同
- 只需将函数名称更改为
pol
- 要使用
fzero
函数 pol
必须是 函数句柄
通过 @
定义
pol =@(r) (5/(r^2*9))- ((2)/(9*(6-r)^2))
x0 = 10; % some initial point
x = fzero(pol,x0)
解决方案
x = 3.6754
需要注意的是,fzero()
中的第一个参数应该是“一个函数句柄、内联函数或包含要计算的函数名称的字符串 ",但你的只是一个表达式,它是无效的。
除了的方法(使用函数句柄),另一种方法是使用匿名函数,即
x = fzero(@(r) (5/(r^2*9))- ((2)/(9*(6-r)^2)) ,x0)
其中
@(r) (5/(r^2*9))- ((2)/(9*(6-r)^2))
是关于参数 r
的匿名函数。
您将得到与 x = 3.6754
相同的结果。
我想为 r
求解以下多项式:
我正在尝试按如下方式使用 fzero()
:
r = (5/(r^2*9))- ((2)/(9*(6-r)^2))
x0 = 10; % some initial point
x = fzero(r,x0)
fzero()
如何做到这一点?
- 输入变量和函数名应该不同
- 只需将函数名称更改为
pol
- 要使用
fzero
函数pol
必须是 函数句柄 通过@
定义
pol =@(r) (5/(r^2*9))- ((2)/(9*(6-r)^2))
x0 = 10; % some initial point
x = fzero(pol,x0)
解决方案
x = 3.6754
需要注意的是,fzero()
中的第一个参数应该是“一个函数句柄、内联函数或包含要计算的函数名称的字符串 ",但你的只是一个表达式,它是无效的。
除了
x = fzero(@(r) (5/(r^2*9))- ((2)/(9*(6-r)^2)) ,x0)
其中
@(r) (5/(r^2*9))- ((2)/(9*(6-r)^2))
是关于参数 r
的匿名函数。
您将得到与 x = 3.6754
相同的结果。