赞
踩
雅可比矩阵和行列式(Jacobian)_雅可比行列式_JasonKQLin的博客-CSDN博客
在牛顿迭代法、L-M中求解非线性方程组,都会用到雅可比(一阶偏导数) 和黑塞矩阵(2阶偏导数)矩阵。
雅可比矩阵 是一阶偏导数以一定方式排列成的矩阵, 其行列式称为雅可比行列式。
是一个从欧式 n 维空间转换到欧式 m 维空间的函数. 这个函数由 m 个实函数组成:,记作
这些函数的偏导数(如果存在)可以组成一个 m 行 n 列的矩阵, 这就是所谓的雅可比矩阵:
若m=n,那么其就是一个方阵,其行列式也叫雅可比行列式
雅可比矩阵的作用:
雅可比矩阵J f ( p ) 就是函数f在n维空间某点p处的导数,它是一个线性映射(因为它是一个矩阵,矩阵本身代表着线性变换),它代表着函数f在点p处的最优线性逼近,也就是当x足够靠近点p时,我们有:
eg:
matlab 求解雅可比矩阵:
- syms x1 x2 x3 x4
- f1=x1;
- f2=5*x3;
- f3=4*x2^2-2*x3;
- f4=x3*sin(x1);
-
- J =jacobian([f1;f2;f3;f4],[x1 x2 x3])
-
黑塞矩阵(Hessian Matrix),又译作海森矩阵、海瑟矩阵、海塞矩阵等,是一个多元函数的二阶偏导数构成的方阵,描述了函数的局部曲率。黑塞矩阵最早于19世纪由德国数学家Ludwig Otto Hesse提出,并以其名字命名。黑塞矩阵常用于牛顿法解决优化问题,利用黑塞矩阵可判定多元函数的极值问题。在工程实际问题的优化设计中,所列的目标函数往往很复杂,为了使问题简化,常常将目标函数在某点邻域展开成泰勒多项式来逼近原函数,此时函数在某点泰勒展开式的矩阵形式中会涉及到黑塞矩阵。
一句话来讲,Hessian matrix是多元函数(单因变量)的二阶偏导数组成的方阵,它也可以被理解为该函数的一阶导数向量的Jacobi matrix!当函数满足(前提是再一定的范围内是2阶连续可导):
谷歌搜索:
二元函数的黑塞矩阵
对称性
https://www.cnblogs.com/ybqjymy/p/13646488.html
matlab 代码实现:
- clear all;
- clc;
- syms x y z
- f1=x^2+y^2+3*x*y*z;
- %f2=x^3+y^2+4*x*y*z^3;
- %f3=x^3+y^2+5*x*y^3*z^3;
- % 1 直接计算hessian矩阵
- H0=hessian(f1,[x;y;z])
- % 2 先求雅可比矩阵,然后再计算 hessian 矩阵
- J0=jacobian(f1,[x,y,z]) % 雅可比矩阵
- H2=jacobian(J0,[x,y,z])
- % 3、先计算梯度,然后再计算hessian 矩阵
- G=gradient(f1,[x,y,z])
- H3=jacobian(G,[x,y,z])
-
- % 结果:
-
- H0 =
-
- [ 2, 3*z, 3*y]
- [3*z, 2, 3*x]
- [3*y, 3*x, 0]
-
-
- J0 =
-
- [2*x + 3*y*z, 2*y + 3*x*z, 3*x*y]
-
-
- H2 =
-
- [ 2, 3*z, 3*y]
- [3*z, 2, 3*x]
- [3*y, 3*x, 0]
-
-
- G =
-
- 2*x + 3*y*z
- 2*y + 3*x*z
- 3*x*y
-
-
- H3 =
-
- [ 2, 3*z, 3*y]
- [3*z, 2, 3*x]
- [3*y, 3*x, 0]
-
- >>
(1)广义定义:设M是n阶方阵,如果对任何非零向量z,都有zTMz> 0,其中zT 表示z的转置,就称M为正定矩阵。
例如:B为n阶矩阵,E为单位矩阵,a为正实数。在a充分大时,aE+B为正定矩阵。(B必须为对称阵)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。