如何在MATLAB中使用fzero()求解多项式方程?

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

我正尝试如下使用fzero()

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

如何使用fzero()完成此操作?

haoTMwuliao 回答:如何在MATLAB中使用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相同的结果。

本文链接:https://www.f2er.com/2923291.html

大家都在问