方程求解算法 |
您所在的位置:网站首页 › matlab中fzero函数用法 › 方程求解算法 |
方程求解算法方程求解定义 给定一组(n 个)非线性函数 Fi(x),其中 n 是向量 x 中的分量数,方程求解的目标是找到使所有 Fi(x) = 0 的向量 x。 fsolve 尝试通过最小化分量的平方和来求解方程组。如果平方和为零,则方程组得到求解。fsolve 有三种算法: 信赖域 信赖域 dogleg 莱文贝格-马夸特 所有算法均为大规模的;请参阅大规模算法与中等规模算法。 fzero 函数求解单个一维方程。 mldivide 函数对一个线性方程组求解。 信赖域算法Optimization Toolbox™ 求解器中使用的许多方法都基于信赖域,这是一个简单而功能强大的优化概念。 要理解信赖域优化方法,请考虑无约束最小化问题,最小化 f(x),该函数接受向量参量并返回标量。假设当前点是 n 维空间中的 x,您要通过移至函数值较低的点来寻求改进。为此,该算法使用较简单的函数 q 来逼近 f,该函数需能充分反映函数 f 在点 x 的邻域 N 中的行为。此邻域是信赖域。求解器通过最小化(或近似最小化)N 来计算试探步 s。信赖域子问题是 mins{q(s), s∈N}. 如果 f(x + s) < f(x),求解器将当前点更新为 x + s;否则,当前点保持不变,求解器收缩 N(信赖域)并再次计算试探步。 在定义特定信赖域方法以最小化 f(x) 的过程中,关键问题是如何选择和计算逼近 q(在当前点 x 上定义)、如何选择和修改信赖域 N,以及如何准确求解信赖域子问题。 在标准信赖域方法 ([48]) 中,二次逼近 q 由 F 在 x 处的泰勒逼近的前两项定义。邻域 N 通常是球形或椭圆形。以数学语言表述,信赖域子问题通常写作 min{12sTHs+sTg such that ‖Ds‖≤Δ},(1)其中,g 是 f 在当前点 x 处的梯度,H 是黑塞矩阵(二阶导数的对称矩阵),D 是对角缩放矩阵,Δ 是正标量,‖ . ‖ 是 2-范数。为了求解公式 1,一种算法(请参阅[48])会计算 H 的所有特征值,然后将牛顿法应用于以下久期方程 1Δ−1‖s‖=0. 这种算法提供 公式 1 的精确解。但是,这需要耗费与 H 的几个分解成比例的时间。因此,处理信赖域问题需要另一种方法。文献([42] 和 [50])提出了几种基于公式 1 的逼近和启发式策略。Optimization Toolbox 求解器采用一种逼近方法,将信赖域子问题限制在二维子空间 S 内([39] 和 [42])。在求解器计算出子空间 S 后,求解公式 1 的工作量是微不足道的,因为在子空间中,问题只是二维的。现在的主要工作转移到子空间的确定上。 求解器借助预条件共轭梯度法(将在下一节中说明)确定二维子空间 S。求解器将 S 定义为由 s1 和 s2 确定的线性空间,其中 s1 是梯度 g 的方向,s2 是近似牛顿方向,即下式的解 H⋅s2=−g, 或是负曲率的方向, s2T⋅H⋅s2 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |