文档

fzero

非线性函数的根

语法

X = f0 (fun,x0)
X = f0 (fun,x0,options)
X = f0(问题)
[x,fval,exitflag,output] = f0 (___

描述

例子

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

例子

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

例子

x= fzero (问题指定的寻根问题问题

例子

xfvalexitflag输出= f0 (___返回有趣的(x)fval输出,exitflag编码原因fzero停止,以及包含解决方案进程信息的输出结构。

例子

全部折叠

计算通过找到sin函数的零点3.

乐趣= @罪恶;%的功能X0 = 3;%起始点X = f0 (fun,x0)
X = 3.1416

求cos的零点1而且2

乐趣= @cos;%的功能X0 = [1 2];初始间隔%X = f0 (fun,x0)
X = 1.5708

请注意,而且符号不同。

求函数的零点fx) =x3.- 2x- 5所示。

首先,写一个名为f.m

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

保存f.m在MATLAB中®路径。

求的零点fx附近)2

乐趣= @f;%的功能X0 = 2;%起始点Z = f0 (fun,x0)
Z = 2.0946

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

根([1 0 -2 -5])
Ans = 2.0946 -1.0473 + 1.1359i -1.0473 - 1.1359i

求一个有额外参数的函数的根。

Myfun = @(x,c) cos(c*x);%参数化函数C = 2;%的参数myfun(x,c);% x单独的函数X = f0(有趣,0.1)
X = 0.7854

通过设置一些图形函数来绘制求解过程。

定义函数和起始点。

Fun = @(x)sin(cosh(x));X0 = 1;

通过设置包含绘图函数的选项来检查解决方案过程。

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

运行fzero包括选项

X = f0 (fun,x0,options)
X = 1.8115

解决一个由问题结构定义的问题。

定义编码寻根问题的结构。

问题。目标= @(x)sin(cosh(x));问题。X0 = 1;问题。解算器=“fzero”结构的必需部分问题。选项= optimset(@fzero);%默认选项

解决问题。

X = f0(问题)
X = 1.8115

找到这一点Exp (-exp(-x)) = x,显示解决方案进程信息。

Fun = @(x) exp(-exp(-x)) -x;%的功能X0 = [0 1];初始间隔%选项= optimset(“显示”“通路”);%显示迭代[x fval exitflag output] = f0 (fun,x0,options)
函数函数计数x f(x)步骤2 1 -0.307799初始值3 0.544459 0.0153522插补4 0.566101 0.00070708插补5 0.567143 -1.40255e-08插补6 0.567143 1.50013e-12插补7 0.567143 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) = fun(x) - c(x) = 0

若要在函数中包含额外的参数,请参阅示例附加参数函数的根这部分参数化功能

例子:“罪”

例子:@myFunction

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

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

初始值,指定为实标量或2元素实向量。

  • 标量。fzero始于x0试着找到一个点x1在哪里乐趣(x1)有相反的标志吗乐趣(x0).然后fzero迭代地缩小其中的间隔有趣的改变标志,达成解决方案。

  • 2元向量-fzero检查乐趣(x0 (1))而且乐趣(x0 (2))有相反的符号,如果没有,就有错误。然后迭代地缩小区间有趣的改变标志,达成解决方案。一个区间x0必须是有限的;不能包含±

    提示:调用fzero间隔时间为(x0使用两个元素)通常比使用标量调用它更快x0

例子:3.

例子:(2, 17)

数据类型:

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

显示

显示水平:

  • “关闭”不显示输出。

  • “通路”显示每次迭代的输出。

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

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

FunValCheck

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

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

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

OutputFcn

指定优化函数在每次迭代时调用的一个或多个用户定义函数,可以作为函数句柄,也可以作为函数句柄的单元格数组。默认值为none ([]).看到输出函数

PlotFcns

在算法执行时绘制各种进度度量。从预定义的情节中选择或编写自己的。传递一个函数句柄或函数句柄的单元格数组。默认值为none ([]).

  • @optimplotx绘制当前点。

  • @optimplotfval绘制函数值。

有关编写自定义绘图函数的信息,请参见绘制函数

TolX

终止公差x,为正标量。默认为每股收益2.2204 e-16。

例子:options = optimset('FunValCheck','on')

数据类型:结构体

查找根问题,指定为具有以下所有字段的结构。

客观的

目标函数

x0

起始点x、实标量或2元向量

解算器

“fzero”

选项

选项结构,通常创建使用optimset

有关示例,请参见解决问题结构

数据类型:结构体

输出参数

全部折叠

根或符号更改的位置,作为标量返回。

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

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

1

函数收敛到一个解x

-1

算法被输出函数或图函数终止。

3

函数值在搜索包含符号变化的区间时遇到。

4

在搜索包含符号变化的区间时遇到了复杂函数值。

5

算法可能收敛到一个奇异点。

6

fzero没有检测到符号变化。

有关查找根进程的信息,作为结构返回。该结构的字段为:

intervaliterations

为找到包含根的间隔而进行的迭代次数

迭代

寻零迭代的次数

funcCount

函数求值的数量

算法

“二分,插值”

消息

退出消息

算法

fzeroCommand是一个函数文件。该算法由T. Dekker创建,使用了对分、割线和逆二次插值方法的组合。给出了Algol 60版本,并进行了一些改进[1].一个Fortran版本fzero是基于,是在[2]

参考文献

布伦特,R。无导数极小化算法普伦蒂斯-霍尔,1973年。

福赛斯、g.e.、m.a.马尔科姆和c.b.莫勒,计算机数学计算方法“,, Prentice-Hall, 1976。

扩展功能

R2006a之前介绍

这个话题有用吗?