主要内容

fzero

根的非线性函数

描述

例子

x= fzero (有趣的,x0)试图找到一个点x在哪里有趣的(x) = 0。这个解决方案是有趣的(x)变化迹象,fzero找不到根等功能x ^ 2

例子

x= fzero (有趣的,x0,选项)使用选项修改解决方案的过程。

例子

x= fzero (问题)解决了root-finding问题规定问题

例子

(x,fval,exitflag,输出)= fzero (___)返回有趣的(x)fval输出,exitflag编码的原因fzero停了下来,和一个输出结构包含的信息解决方案的过程。

例子

全部折叠

计算 π 通过寻找附近的正弦函数的零3

有趣= @sin;%的功能x0 = 3;%初始点x0, x = fzero(有趣)
x = 3.1416

找到之间的余弦值为零12

有趣= @cos;%的功能x0 = (1 - 2);%初始区间x0, x = fzero(有趣)
x = 1.5708

请注意, 因为 ( 1 ) 因为 ( 2 ) 不同的信号。

找到一个函数的零f(x)=x3- 2x- 5所示。

首先,写一个文件f.m

函数y = f (x) y = x ^ 3 - 2 * * 5;

保存f.m在你的MATLAB®路径。

的零f(x附近)2

有趣= @f;%的功能x0 = 2;%初始点x0, z = fzero(有趣)
z = 2.0946

f (x)是一个多项式,你可以找到相同的真正的零,和一对共轭复数的0,使用命令。

根([1 0 2 5])
答我-1.0473 - 1.1359 = 2.0946 - -1.0473 + 1.1359

发现一个函数的根有一个额外的参数。

myfun = @ (x, c) cos (x c *);%参数化函数c = 2;%的参数有趣= @ (x) myfun (x, c);% x的函数x = fzero(有趣,0.1)
x = 0.7854

情节的解决方案过程中通过设置一些情节功能。

定义函数和初始点。

有趣= @ (x)罪(cosh (x));x0 = 1;

检查解决方案过程设置选项,包括情节功能。

选择= optimset (“PlotFcns”,{@optimplotx, @optimplotfval});

运行fzero包括选项

x = fzero(有趣,x0,选项)

图优化绘制函数包含2轴对象。坐标轴对象1标题当前点包含一个对象类型的酒吧。坐标轴对象2标题当前函数值:-3.21625 e-16包含一个类型的对象。

x = 1.8115

解决问题所定义的结构问题。

定义一个结构,编码一个root-finding问题。

问题。目标= @ (x)罪(cosh (x));问题。x0 = 1;问题。解算器=“fzero”;%所需结构的一部分问题。选项= optimset(@fzero);%的缺省选项

解决这个问题。

x = fzero(问题)
x = 1.8115

找到的地方exp (exp (- x)) = x和显示的信息解决方案的过程。

有趣= @ (x) exp (exp (- x)) - x;%的功能0 x0 = [1];%初始区间选择= optimset (“显示”,“通路”);%显示迭代[x fval exitflag输出]= fzero(有趣,x0,选项)
Func-count x f (x)过程2 1 -0.307799初始3 0.544459 - 0.0153522插值4 0.566101 - 0.00070708插值5 0.567143 -1.40255 0.567143 e-08插值6 0.567143 - 1.50013 e-12插值7 0插值零区间[0,1]中的
x = 0.5671
fval = 0
exitflag = 1
输出=结构体字段:intervaliterations: 0迭代:5 funcCount: 7算法:“二分,插值”的信息:“零区间[0,1]中发现的

fval= 0意味着有趣的(x) = 0,如预期。

输入参数

全部折叠

指定函数来解决,作为一个纯量值函数处理或这样的函数的名称。有趣的接受一个标量x并返回一个标量有趣的(x)

fzero解决了有趣的(x) = 0。解一个方程有趣的(x) = c (x),而不是解决fun2 (x) =乐趣(x) - c (x) = 0

在函数中包含额外的参数,看例子根功能的额外参数和部分传递额外的参数

例子:“罪”

例子:@myFunction

例子:@ (x) (x) ^ 5 - 3 * x + 1

数据类型:字符|function_handle|字符串

初始值,指定为一个真正的标量或2-element向量。

  • 标量。fzero始于x0并试图找到一个点x1在哪里乐趣(x1)相反的迹象吗乐趣(x0)。然后fzero迭代收缩的间隔有趣的变化迹象达成解决方案。

  • 2-element向量,fzero检查乐趣(x0 (1))乐趣(x0 (2))有相反的迹象,和错误,如果他们不这样做。然后迭代收缩的间隔有趣的变化迹象达成解决方案。一个区间x0必须是有限的;它不能包含±

提示

调用fzero(一个区间x0有两个元素)通常是速度比调用一个标量x0

例子:3

例子:(2,17)

数据类型:

解决方案的选择过程,指定为一个结构。创建或修改选项结构使用optimsetfzero使用这些选项结构字段。

显示

显示(见水平迭代显示):

  • “关闭”显示没有输出。

  • “通路”在每一次迭代时显示输出。

  • “最后一次”显示最终的输出。

  • “通知”(默认)显示输出只有在函数不收敛。

FunValCheck

检查目标函数值是否有效。

  • “上”会显示一个错误,当目标函数返回一个值复杂的,,或

  • 默认的,“关闭”,显示没有错误。

OutputFcn

指定一个或多个用户定义的函数,一个优化函数调用在每个迭代中,作为处理函数或处理单元阵列的功能。默认是没有([])。看到输出函数和情节函数的语法

PlotFcns

情节在算法执行时各种措施的进展。从预定义的情节或编写自己的选择。通过一个函数处理或处理单元阵列的功能。默认是没有([])。

  • @optimplotx当前点的阴谋。

  • @optimplotfval情节的函数值。

自定义函数使用相同的语法作为输出函数。看到输出函数优化工具箱输出函数和情节函数的语法

TolX

终止上公差x,一个积极的标量。默认值是每股收益2.2204 e-16。看到公差和停止条件

例子:选择= optimset (“FunValCheck”,“上”)

数据类型:结构体

Root-finding问题,指定为以下字段的结构。

客观的

目标函数

x0

初始点x、标量或二维向量

解算器

“fzero”

选项

选择结构,通常使用optimset

数据类型:结构体

输出参数

全部折叠

根或标志的位置变化,作为一个标量返回。

函数值在x,作为一个标量返回。

整数编码的退出条件,意义的原因fzero停止迭代。

1

功能融合解决方案x

1

算法的终止输出函数或情节。

3

函数值是遇到而寻找一个区间,其中包含一个信号改变。

4

复杂的函数值时遇到了寻找一个区间,其中包含一个信号改变。

5

算法可能会聚集到一个奇点。

6

fzero没有检测到信号变化。

root-finding信息过程中,作为一个结构返回。结构的字段有:

intervaliterations

的迭代次数,找到一个包含一个根间隔

迭代

zero-finding的迭代次数

funcCount

数量的功能评估

算法

“二分,插值”

消息

退出消息

算法

fzero命令是一个函数文件。t·德克创造的算法,使用二分,sec和逆二次插值方法。阿果60版,一些改进,给出[1]。Fortran语言的版本,在此fzero为基础,在吗[2]

选择功能

应用程序

优化住编辑任务提供了一个可视化界面fzero

引用

[1]布伦特,R。没有衍生品的最小化算法,普伦蒂斯·霍尔出版社,1973年。

[2]活力四射,g . E。,M. A. Malcolm, and C. B. Moler,计算机数学计算的方法,普伦蒂斯·霍尔出版社,1976年。

扩展功能

版本历史

之前介绍过的R2006a