我想为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()
中的第一个参数应为“ 一个函数句柄,内联函数或包含要评估的函数名称的字符串”,但您的只是一个表达式,即无效。
除了@Adam的方法(使用函数句柄)之外,另一种方法是使用匿名函数,即
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
相同的结果。