方程求解算法
方程解的定义
给定一组的n非线性函数F<年代ub>我(x),n向量是组件的数量吗x,方程求解的目标是找到一个向量x让所有F<年代ub>我(x)= 0。
fsolve
试图解决一个方程组,组件的平方和最小化。如果平方和为零,系统方程的解决。fsolve有三种算法:
信赖域
Trust-region-dogleg
Levenberg-Marquardt
所有的算法都是大规模的;看到大型和中型的算法。
的fzero函数解决了一个一维方程。
的mldivide函数解决线性方程组。
信赖域算法
许多的方法用于解决优化工具箱™是基于<年代pan class="emphasis">信任区域,在优化一个简单而强大的概念。
理解信赖域方法优化,考虑无约束极小化问题,最小化f(x),并返回标量函数向量参数。假设当前的点x在n在讨论,你想提高移动到一个点函数值较低。为此,算法近似f用一个简单的函数问,合理地反映了函数的行为f在一个社区N周围的点x。这个社区是信赖域。解算器计算试验步骤年代通过最小化(或大约最小化)N。信赖域子问题是
解算器更新当前的指向x+年代如果<年代pan class="inlineequation">f(x+年代)<f(x);否则,解决当前点保持不变和收缩N(信赖域)和重复试验步骤计算。
定义一个特定的信赖域方法的关键问题最小化f(x)是如何选择和计算近似问(定义在当前点x),如何选择和修改信赖域N,以及如何准确地求解信赖域子问题。
在标准的信赖域方法([48]),二阶近似问由前两个定义的泰勒近似F在x。附近N通常是球形或椭圆形的形状。数学上,信赖域子问题通常表示
(1)
在哪里g的梯度f在当前点x,H海赛矩阵(二阶导数的对称矩阵),D是一个对角扩展矩阵,Δ是一个积极的标量,而为。为是2-norm。来解决方程1一个算法(见[48])可以计算所有特征值的H然后应用牛顿过程特征方程
这种算法提供了一个准确的解决方案方程1。然而,这可以分解成几个需要时间成正比H。因此,信赖域问题需要不同的方法。几个近似和启发式策略,基于方程1,提出了在文献([42]和[50])。优化工具箱解决者遵循一个近似的方法,限制了信赖域子问题的二维子空间年代([39]和[42])。在解算器计算子空间年代,工作来解决方程1很简单,因为在子空间,问题仅仅是二维的。现在的主要工作转移到子空间的决心。
解算器确定二维子空间年代的援助条件共轭梯度法(在下一节中描述)。解算器定义年代所张成的线性空间年代1和年代2,在那里年代1在梯度的方向g,年代2要么是一个近似牛顿方向,也就是说,一个解决方案
或一个方向负曲率,
这种选择背后的哲学年代是强迫全局收敛性(通过最速下降方向或负曲率方向),实现快速的局部收敛性(通过牛顿一步,当它的存在)。
无约束极小化的过程中使用了信赖域方法是现在容易指定:
制定二维信赖域子问题。
解决方程1确定试验步骤年代。
如果<年代pan class="inlineequation">f(x+年代)<f(x),然后<年代pan class="inlineequation">x=x+年代。
Δ调整。
解决重复这四个步骤,直到收敛,调整他信赖域尺寸Δ根据标准规则。特别是,解算器降低了信赖域大小如果不接受试验步骤,当<年代pan class="inlineequation">f(x+年代)≥f(x)。看到[46]和[49]这方面的讨论。
优化工具箱解决治疗重要的情况下f特殊功能:非线性最小二乘、二次函数和线性最小二乘。然而,底层算法思想为一般情况是一样的。
预处理共轭梯度法
一个受欢迎的方式来解决大型对称正定线性方程组<年代pan class="inlineequation">惠普= -g预处理共轭梯度法(PCG)。这种迭代方法要求计算能力矩阵向量形式的产品s manbetx 845H·v在哪里v是一个任意的向量。对称正定矩阵米是一个<年代pan class="emphasis">预调节器为H。也就是说,<年代pan class="inlineequation">米=C2,在那里<年代pan class="inlineequation">C1HC1是一个状态良好的矩阵或与集群特征值矩阵。
在最小化上下文,您可以假定海赛矩阵H是对称的。然而,H保证是正定只有在附近的一个强有力的最小值。PCG算法出口时遇到一个负面(或零)曲率方向,也就是说,<年代pan class="inlineequation">d<年代up>T高清≤0。PCG输出方向p要么是负曲率方向或近似解牛顿系统<年代pan class="inlineequation">惠普= -g。在这两种情况下,p有助于定义二维子空间用于讨论的信赖域方法信赖域方法非线性最小化。
Trust-Region-Dogleg算法
另一种方法是解一个线性方程组发现搜索方向。牛顿法求解指定搜索方向d<年代ub>k这样
J(x<年代ub>k )d<年代ub>k= -F(x<年代ub>k)xk+ 1=x<年代ub>k +d<年代ub>k ,
在哪里J(x<年代ub>k)是n——- - - - - -n雅可比矩阵
牛顿法可以有问题。J(x<年代ub>k)可能是单一的,在这种情况下,牛顿一步d<年代ub>k甚至不是定义。同时,确切的牛顿一步d<年代ub>k可以计算成本。此外,牛顿法可能不收敛,如果起点还远未解决。
利用信赖域技术(介绍信赖域方法非线性最小化)处理时的情况J(x<年代ub>k)是奇异的起点时,提高了鲁棒性的解决方案。使用一个信赖域策略,你需要一个价值函数来决定xk+ 1是更好还是更坏x<年代ub>k 。一个可能的选择是
但至少f(d)并不一定是根F(x)。
牛顿的步骤d<年代ub>k是一根
米(x<年代ub>k +d)=F(x<年代ub>k)+J(x<年代ub>k)d,
因此它也是最低的米(d),
(2)
米(d价值函数的)是一个更好的选择f(d),所以信赖域子问题
(3)
这样<年代pan class="inlineequation">为D·d为≤Δ。可以有效地解决这个子问题使用一个狗腿的策略。
信赖域方法的概述,请参阅[4]和Nocedal[31]。
Trust-Region-Dogleg实现
trust-region-dogleg算法的关键特性是鲍威尔狗腿的使用程序计算步骤d,最大限度地减少方程3。详细描述,请参阅鲍威尔[34]。
该算法构造步骤d从柯西的凸组合步骤(步骤沿着最速下降方向)和高斯牛顿一步f(x)。柯西一步是计算
d<年代ub>C = -αJ(x<年代ub>k)<年代up>TF(x<年代ub>k ),
在哪里α最小化方程2。
计算出的高斯牛顿一步是解决
J(x<年代ub>k )·d<年代ub>GN= -F(x<年代ub>k),
使用MATLAB<年代up>®mldivide
(矩阵左部)算子。
该算法选择了一步d这
d=d<年代ub>C +λ(d<年代ub>GN- - - - - -d<年代ub>C),
在哪里λ是最大的价值区间[0,1],这样<年代pan class="inlineequation">为d为≤Δ。如果J<年代ub>k
(几乎)单数,d仅仅是柯西方向。
trust-region-dogleg算法是有效的,因为它只需要一个线性解决每个迭代(高斯牛顿的计算步骤)。此外,该算法可以比采用高斯牛顿法更健壮的线搜索。
方程解的定义
给定一组的n非线性函数F<年代ub>我(x),n向量是组件的数量吗x,方程求解的目标是找到一个向量x让所有F<年代ub>我(x)= 0。
fsolve
试图解决一个方程组,组件的平方和最小化。如果平方和为零,系统方程的解决。fsolve有三种算法:
信赖域
Trust-region-dogleg
Levenberg-Marquardt
所有的算法都是大规模的;看到大型和中型的算法。
的fzero函数解决了一个一维方程。
的mldivide函数解决线性方程组。
给定一组的 信赖域 Trust-region-dogleg Levenberg-Marquardt 所有的算法都是大规模的;看到 的 的fsolve
试图解决一个方程组,组件的平方和最小化。如果平方和为零,系统方程的解决。
fzero
mldivide
信赖域算法
许多的方法用于解决优化工具箱™是基于<年代pan class="emphasis">信任区域,在优化一个简单而强大的概念。
理解信赖域方法优化,考虑无约束极小化问题,最小化f(x),并返回标量函数向量参数。假设当前的点x在n在讨论,你想提高移动到一个点函数值较低。为此,算法近似f用一个简单的函数问,合理地反映了函数的行为f在一个社区N周围的点x。这个社区是信赖域。解算器计算试验步骤年代通过最小化(或大约最小化)N。信赖域子问题是
解算器更新当前的指向x+年代如果<年代pan class="inlineequation">f(x+年代)<f(x);否则,解决当前点保持不变和收缩N(信赖域)和重复试验步骤计算。
定义一个特定的信赖域方法的关键问题最小化f(x)是如何选择和计算近似问(定义在当前点x),如何选择和修改信赖域N,以及如何准确地求解信赖域子问题。
在标准的信赖域方法([48]),二阶近似问由前两个定义的泰勒近似F在x。附近N通常是球形或椭圆形的形状。数学上,信赖域子问题通常表示
(1)
在哪里g的梯度f在当前点x,H海赛矩阵(二阶导数的对称矩阵),D是一个对角扩展矩阵,Δ是一个积极的标量,而为。为是2-norm。来解决方程1一个算法(见[48])可以计算所有特征值的H然后应用牛顿过程特征方程
这种算法提供了一个准确的解决方案方程1。然而,这可以分解成几个需要时间成正比H。因此,信赖域问题需要不同的方法。几个近似和启发式策略,基于方程1,提出了在文献([42]和[50])。优化工具箱解决者遵循一个近似的方法,限制了信赖域子问题的二维子空间年代([39]和[42])。在解算器计算子空间年代,工作来解决方程1很简单,因为在子空间,问题仅仅是二维的。现在的主要工作转移到子空间的决心。
解算器确定二维子空间年代的援助条件共轭梯度法(在下一节中描述)。解算器定义年代所张成的线性空间年代1和年代2,在那里年代1在梯度的方向g,年代2要么是一个近似牛顿方向,也就是说,一个解决方案
或一个方向负曲率,
这种选择背后的哲学年代是强迫全局收敛性(通过最速下降方向或负曲率方向),实现快速的局部收敛性(通过牛顿一步,当它的存在)。
无约束极小化的过程中使用了信赖域方法是现在容易指定:
制定二维信赖域子问题。
解决方程1确定试验步骤年代。
如果<年代pan class="inlineequation">f(x+年代)<f(x),然后<年代pan class="inlineequation">x=x+年代。
Δ调整。
解决重复这四个步骤,直到收敛,调整他信赖域尺寸Δ根据标准规则。特别是,解算器降低了信赖域大小如果不接受试验步骤,当<年代pan class="inlineequation">f(x+年代)≥f(x)。看到[46]和[49]这方面的讨论。
优化工具箱解决治疗重要的情况下f特殊功能:非线性最小二乘、二次函数和线性最小二乘。然而,底层算法思想为一般情况是一样的。
预处理共轭梯度法
一个受欢迎的方式来解决大型对称正定线性方程组<年代pan class="inlineequation">惠普= -g预处理共轭梯度法(PCG)。这种迭代方法要求计算能力矩阵向量形式的产品s manbetx 845H·v在哪里v是一个任意的向量。对称正定矩阵米是一个<年代pan class="emphasis">预调节器为H。也就是说,<年代pan class="inlineequation">米=C2,在那里<年代pan class="inlineequation">C1HC1是一个状态良好的矩阵或与集群特征值矩阵。
在最小化上下文,您可以假定海赛矩阵H是对称的。然而,H保证是正定只有在附近的一个强有力的最小值。PCG算法出口时遇到一个负面(或零)曲率方向,也就是说,<年代pan class="inlineequation">d<年代up>T高清≤0。PCG输出方向p要么是负曲率方向或近似解牛顿系统<年代pan class="inlineequation">惠普= -g。在这两种情况下,p有助于定义二维子空间用于讨论的信赖域方法信赖域方法非线性最小化。
许多的方法用于解决优化工具箱™是基于<年代pan class="emphasis">信任区域, 理解信赖域方法优化,考虑无约束极小化问题,最小化
解算器更新当前的指向 定义一个特定的信赖域方法的关键问题最小化 在标准的信赖域方法( 在哪里
这种算法提供了一个准确的解决方案 解算器确定二维子空间
或一个方向
这种选择背后的哲学 无约束极小化的过程中使用了信赖域方法是现在容易指定: 制定二维信赖域子问题。 解决 如果<年代pan class="inlineequation">f Δ调整。 解决重复这四个步骤,直到收敛,调整他信赖域尺寸Δ根据标准规则。特别是,解算器降低了信赖域大小如果不接受试验步骤,当<年代pan class="inlineequation">f 优化工具箱解决治疗重要的情况下 一个受欢迎的方式来解决大型对称正定线性方程组<年代pan class="inlineequation">惠普 在最小化上下文,您可以假定海赛矩阵
(1)
预处理共轭梯度法
Trust-Region-Dogleg算法
另一种方法是解一个线性方程组发现搜索方向。牛顿法求解指定搜索方向d<年代ub>k这样
J(x<年代ub>k )d<年代ub>k= -F(x<年代ub>k)xk+ 1=x<年代ub>k +d<年代ub>k ,
在哪里J(x<年代ub>k)是n——- - - - - -n雅可比矩阵
牛顿法可以有问题。J(x<年代ub>k)可能是单一的,在这种情况下,牛顿一步d<年代ub>k甚至不是定义。同时,确切的牛顿一步d<年代ub>k可以计算成本。此外,牛顿法可能不收敛,如果起点还远未解决。
利用信赖域技术(介绍信赖域方法非线性最小化)处理时的情况J(x<年代ub>k)是奇异的起点时,提高了鲁棒性的解决方案。使用一个信赖域策略,你需要一个价值函数来决定xk+ 1是更好还是更坏x<年代ub>k 。一个可能的选择是
但至少f(d)并不一定是根F(x)。
牛顿的步骤d<年代ub>k是一根
米(x<年代ub>k +d)=F(x<年代ub>k)+J(x<年代ub>k)d,
因此它也是最低的米(d),
(2)
米(d价值函数的)是一个更好的选择f(d),所以信赖域子问题
(3)
这样<年代pan class="inlineequation">为D·d为≤Δ。可以有效地解决这个子问题使用一个狗腿的策略。
信赖域方法的概述,请参阅[4]和Nocedal[31]。
Trust-Region-Dogleg实现
trust-region-dogleg算法的关键特性是鲍威尔狗腿的使用程序计算步骤d,最大限度地减少方程3。详细描述,请参阅鲍威尔[34]。
该算法构造步骤d从柯西的凸组合步骤(步骤沿着最速下降方向)和高斯牛顿一步f(x)。柯西一步是计算
d<年代ub>C = -αJ(x<年代ub>k)<年代up>TF(x<年代ub>k ),
在哪里α最小化方程2。
计算出的高斯牛顿一步是解决
J(x<年代ub>k )·d<年代ub>GN= -F(x<年代ub>k),
使用MATLAB<年代up>®mldivide
(矩阵左部)算子。
该算法选择了一步d这
d=d<年代ub>C +λ(d<年代ub>GN- - - - - -d<年代ub>C),
在哪里λ是最大的价值区间[0,1],这样<年代pan class="inlineequation">为d为≤Δ。如果J<年代ub>k
(几乎)单数,d仅仅是柯西方向。
trust-region-dogleg算法是有效的,因为它只需要一个线性解决每个迭代(高斯牛顿的计算步骤)。此外,该算法可以比采用高斯牛顿法更健壮的线搜索。
另一种方法是解一个线性方程组发现搜索方向。牛顿法求解指定搜索方向 J 在哪里
牛顿法可以有问题。 利用信赖域技术(介绍
但至少 牛顿的步骤 米 因此它也是最低的 米 这样<年代pan class="inlineequation">为 信赖域方法的概述,请参阅 trust-region-dogleg算法的关键特性是鲍威尔狗腿的使用程序计算步骤 该算法构造步骤 d<年代ub>C 在哪里 计算出的高斯牛顿一步是解决 J 使用MATLAB<年代up>® 该算法选择了一步 d 在哪里 trust-region-dogleg算法是有效的,因为它只需要一个线性解决每个迭代(高斯牛顿的计算步骤)。此外,该算法可以比采用高斯牛顿法更健壮的线搜索。
(2)
(3)
Trust-Region-Dogleg实现
mldivide
(矩阵左部)算子。
Levenberg-Marquardt方法
Levenberg-Marquardt算法([25],[27])使用一个搜索方向是一个解的线性方程组
(4)
或者可选的方程
(5)
在标量λ<年代ub>k控件的大小和方向d<年代ub>k。设置fsolve选项ScaleProblem来“没有”使用方程4或设置这个选项的雅可比矩阵使用方程5。
当λ<年代ub>k是0,这个方向呢d<年代ub>k是高斯牛顿法。作为λ<年代ub>k趋于无穷,d<年代ub>k往往在最速下降方向,大小趋于零。言下之意是,对一些人来说足够大λ<年代ub>k,这个术语<年代pan class="inlineequation">F(x<年代ub>k +d<年代ub>k)<F(x<年代ub>k)适用。因此,该算法可以控制这个词λ<年代ub>k确保血统尽管二阶条件,限制高斯牛顿法的效率。Levenberg-Marquardt算法,因此,使用一个搜索方向是高斯牛顿方向和最速下降方向。更多细节,请参阅Levenberg-Marquardt方法最小二乘的文档。
Levenberg-Marquardt算法( 或者可选的方程 在标量 当
(4)
(5)
fzero算法
fzero试图找到一个标量函数的根f一个标量变量x。
fzero寻找一个间隔约一个初始点,这样f(x)变化的迹象。如果你指定一个初始区间,而不是一个初始点,fzero检查以确保f(x)有不同的区间端点的迹象。最初的间隔必须是有限的;它不能包含±正。
fzero使用区间对分,线性插值,逆二次插值法来定位一个根f(x)。看到fzero为更多的信息。
fzero
fzero
fzero
fzero
\算法
的\算法在MATLAB算术运算符部分描述mldivide。
的mldivide
另请参阅
fsolve
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">fzero
相关的话题
fsolve
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">fzero