matlab求解雅可比矩阵_工程级理解:雅可比Jacobian矩阵,海森Hessian矩阵与进阶牛顿迭代法(向量函数零点问题)...

严格来说这是一个线性代数方程或方程组的求解问题,并不是直接的微分方程求解问题。但是微分方程的求解,基本上最后是回归到代数方程组的求解问题(以我了解的有限差分为例子),所以代数方程(组)的计算是可以归类为微分方程求解的范畴的(这只是笔者强行进行解释这篇文章放到微分方程求解专栏下的理由:D)

========================

这篇文章算是我到目前为止(200809),我个人“对于这一系列问题的最好的工程级综合认识”。

我强调三点:

1)一系列问题:我目前能够串起来单元函数零点问题、多元函数极值问题(本质上会回归到向量函数零点问题)、向量函数零点问题,以及相应的牛顿迭代法了。

2)综合:这三种以数学特点分类的问题,在工程上其实代表了不同的问题,但是他们实际上在数学上,是有共通之处的。找到他们的联系进行综合认识,有助于找到解决这一系列问题的核心共同点,找到解决问题的根本思路。

3)工程级:这不会是一个带着大量数学推导的严格文章。搞工程强调的“应用”,即拿来用,而非证明为什么要这么用。我逐渐也已经习惯了这种工作风格。我大概知道这样是对的,我就拿来用了,并通过总结(比如写这样的文章),加深这种应用能力,至于它多么严格正确,不是我当前最关心的。但是这种工程级的理解,也并不是所有做工程的都能理解到的,对于目前的我来说,这个理解程度已经是我的最佳水平了。并且这种理解已经很好地帮助我理清思路和解决一些对于未知的担忧。

=============正文============

描述基础

首先要明确函数零点问题,只是方程求解问题的另一种说法。

f(x)=0

f1(x,y)=0; f2(x,y)=0

以上就是上述的三类数学问题中的两个零点问题。

多元函数的极值问题f(x,y)min or max

本质上则是

即又回到了向量函数的零点问题。

%%关于向量函数的说法%%

这其实是一个相对高级的说法。说它高级,是因为这是一种“一维角度描述三维”的描述方式,所以它需要更多的思维处理。

向量函数的零点问题,我完全可以表述为多元函数方程组的求解问题。是一样的。但是用向量函数的角度描述问题,将有助于找到"那条统一的解决问题的思路"。

为何可以看成向量函数呢?这个其实相对熟悉一下向量函数的定义就可以做到。但是由于很多人由于可以通过方程组的角度去描述,所以就会在思维惰性的情况下排斥这种向量角度的认识方式(这个很多人当然就是我本人啦:D)。这种排斥短期内可能不会有什么恶劣后果,但是如果当到了需要统一去理解问题的时候,就会出现一些瘸腿了。(但是终归你会补回来)。

向量函数的角度去理解,就是说,每个分量函数,其实都可以理解成某一个向量的一维,而向量函数的零点问题,其实就是找到一组解,可以让这个向量函数的每个向量都成为0向量。而这个时候,多元函数方程组则可以写成

这看起来一维,但实际上是多维。

==================

方程与问题

f(x)=0

小学三年级开始遇到。但是当无法得到解析解时,需要数值求解。迭代法的开端,引出了牛顿迭代法。在工程上有大量的存在。热力学:两相平衡RR方程

多元函数的极值问题

终归转化成了该多元函数导函数的偏导数的向量函数零点问题。估计出现在各种优化问题中。热力学:多相闪蒸的Q函数最小值问题

向量函数的零点问题

可能是所有四大工程问题的最终形式(最终BOSS既视感)。凡是建立在网格系统上的数值模拟问题,最终都是这样一个问题。油藏数值模拟就是这样一个时间步驱动下的,多个网格的压力饱和度浓度为未知数的向量函数的零点问题。即使是不涉及空间网格的问题,仍旧大量涉及到这个领域。如热力学:包络线计算

============

雅可比矩阵,海森矩阵,牛顿迭代法在这其中的功能、作用、形式

向量函数零点问题的牛顿迭代法,在一维描述形式下,看起来和单元函数的牛顿迭代法是一样的。

而向量函数的形式的一阶导数,就是雅可比矩阵。

海森矩阵是涉及到多元函数极值问题而产生的,也是我本次文章的一个中心内容。

一个多元函数,假设有n个未知数。那么它将有n个一阶偏导函数。换句话说,这n个偏导函数将构成一个n维的向量函数,每一个偏导函数是该向量函数的一维。如果从方程的形式来看,我们会得到一个“n个未知数,n个方程"的方程组。

函数是维,是方程组的行数,是雅可比矩阵的行数。

未知数个数,是雅可比矩阵的列数,是方程组排除掉常数项后的列数(如果想象成一个多项式函数的话)。

回到我们的偏导函数群的零点问题。这本质上就是一个,由偏导函数群组成的,向量函数的零点问题。所以考虑用牛顿迭代法,我们只需要此时的对应的雅可比矩阵即可。

而这个偏导函数群的雅可比矩阵,我们称为原多元函数的,海森矩阵。

木哈哈。

可以发现,海森矩阵可以说,是一个特定问题场景下的,雅可比矩阵。

这个道理,其实很好理解,在一元函数上类比,就是一个函数的二阶导是它的一阶导的一阶导。一阶导的向量版本就是雅可比矩阵,二阶导的向量版就是海森矩阵,海森矩阵就是一阶导的雅可比矩阵。:D

===============

雅可比矩阵的一般性和海森矩阵的特殊性

海森矩阵由于限制在了那个具体情境下,所以它肯定是个方阵。

由于我们讨论的往往都是n个方程n个未知数的问题,所以我们的雅可比矩阵一般也是个方阵。当然我们直到,比如一个方程两个未知数的方程组是没有唯一解的,但是我们其实是可以写出来一个相应的雅可比矩阵的。。。。这个矩阵能有什么用?是一个有趣的问题。

===============

偏牛顿迭代

牛顿迭代法还有一种特别的应用。前面我们提到了向量函数的零点问题。我们使用的牛顿迭代法又称为完整的牛顿迭代法,雅可比矩阵考虑了对所有未知数的一阶偏导。求解也是联合求解的。但是这里其实还有一个简化的当然准确性也下降的方法。称为偏牛顿迭代法。

具体做法是,我们可以挑选诸维度中的一个,然后我们假设这维度的只对于某一个未知数敏感,是zz合格未知数的函数,而其他未知数我们忽略。即把一个多元函数,认为当成一个单元函数。从而对于这个人为退化出来的单元函数,使用单元函数零点问题的牛顿迭代法,导函数就是对于这个未知数的偏导数。

通过这种方式,我们可以得到,那个我们选择的未知数的新的迭代值。这之后我们用这个未知数的新值,结合其他未知数的老值,去更新其他值。然后循环。这种方式,也能够在某些简单的情况下得到解。

热力学案例:包络线计算的前期点的获取。

===============

确实很工程

有一些细节我是有耳闻但是没有证明的。比如当海森矩阵如何如何的时候,方程会有唯一解等等。这些东西,就是我所忽略的。

我能够更清楚地知道这些,当然是最好的。但是当时间精力有限的时候,我为什么选择忽略这些呢?

因为假设我有一个工程问题,我默认就是希望去找到一个解的。如果这个方法奏效,那么用这个方法,就该得到那个解。而且这个解,我默认是一个唯一解。如果有多个解,我等于就没有一个确定的方案了。在这样的情况下,我也就不那么急迫需要知道问题有唯一解了。

当然了,理论上知道得更多,那么就是对于问题有更深度的理解,肯定是更好的。

本篇完:D

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值