fzero
非线性函数的根
描述
例子
根从一点开始
根从间隔开始
文件定义的函数的根
求函数的零点f(x) =x3.- 2x- 5所示。
首先,写一个名为f.m
.
函数Y = f(x) Y = x.^3 - 2*x - 5;
保存f.m
在MATLAB中®路径。
求的零点f(x附近)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
,如你所愿。
输入参数
x0
- - - - - -初始值
标量|2-element向量
初始值,指定为实标量或2元素实向量。
标量。
fzero
始于x0
试着找到一个点x1
在哪里乐趣(x1)
有相反的标志吗乐趣(x0)
.然后fzero
迭代地缩小其中的间隔有趣的
改变标志,达成解决方案。2元向量-
fzero
检查乐趣(x0 (1))
而且乐趣(x0 (2))
有相反的符号,如果没有,就有错误。然后迭代地缩小区间有趣的
改变标志,达成解决方案。一个区间x0
必须是有限的;不能包含±正
.
提示
调用fzero
间隔时间为(x0
使用两个元素)通常比使用标量调用它更快x0
.
例子:3.
例子:(2, 17)
数据类型:双
选项
- - - - - -解决方案过程的选项
结构,通常使用optimset
解决方案过程的选项,指定为结构。创建或修改选项
结构使用optimset
.fzero
使用这些选项
结构字段。
|
显示水平:
|
|
检查目标函数值是否有效。
|
|
指定优化函数在每次迭代时调用的一个或多个用户定义函数,可以作为函数句柄,也可以作为函数句柄的单元格数组。默认值为none ( |
|
在算法执行时绘制各种进度度量。从预定义的情节中选择或编写自己的。传递一个函数句柄或函数句柄的单元格数组。默认值为none (
有关编写自定义绘图函数的信息,请参见优化求解器绘图函数. |
|
终止公差 |
例子:options = optimset('FunValCheck','on')
数据类型:结构体
输出参数
x
-根或符号改变的位置
真正的标量
根或符号更改的位置,作为标量返回。
fval
-函数值x
真正的标量
函数值x
,作为标量返回。
exitflag
—对退出条件进行整数编码
整数
编码退出条件的整数,表示退出原因fzero
停止迭代。
|
函数收敛到一个解 |
|
算法被输出函数或图函数终止。 |
|
|
4 |
在搜索包含符号变化的区间时遇到了复杂函数值。 |
5 |
算法可能收敛到一个奇异点。 |
6 |
|
输出
—寻根进程信息
结构
有关查找根进程的信息,作为结构返回。该结构的字段为:
intervaliterations |
为找到包含根的间隔而进行的迭代次数 |
迭代 |
寻零迭代的次数 |
funcCount |
函数求值的数量 |
算法 |
|
消息 |
退出消息 |
算法
的fzero
Command是一个函数文件。该算法由T. Dekker创建,使用了对分、割线和逆二次插值方法的组合。给出了Algol 60版本,并进行了一些改进[1].一个Fortran版本fzero
是基于,是在[2].
选择功能
应用程序
的优化活动编辑器任务提供了一个可视化界面fzero
.
参考文献
布伦特,R。无导数极小化算法普伦蒂斯-霍尔,1973年。
福赛斯、g.e.、m.a.马尔科姆和c.b.莫勒,计算机数学计算方法“,, Prentice-Hall, 1976。
扩展功能
C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。
C/ c++代码生成:
的
有趣的
输入参数必须是函数句柄,而不是结构或字符向量。fzero
忽略除。之外的所有选项TolX
而且FunValCheck
.fzero
不支持第四个输出参万博1manbetx数,即输出结构。
线程环境
使用MATLAB®在后台运行代码backgroundPool
或使用并行计算工具箱™加速代码ThreadPool
.
这个函数完全支持基于线程的环境。万博1manbetx有关更多信息,请参见在线程环境中运行MATLAB函数.
版本历史
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。