2

我想以数值方式求解以下多项式r

我正在尝试使用fzero()如下:

r = (5/(r^2*9))- ((2)/(9*(6-r)^2))
x0 = 10; % some initial point
x = fzero(r,x0)

如何做到这一点fzero()

4

2 回答 2

2
  • 输入变量和函数名应该不同
  • 只需将函数名称更改为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
于 2019-12-14T06:28:27.990 回答
2

需要注意的是,第一个参数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

于 2019-12-14T07:16:47.117 回答