一、雅克比矩阵
雅可比矩阵和行列式(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阶连续可导):
推导:
谷歌搜索:
二元函数的黑塞矩阵
对称性
应用
示例1:
示例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为正定矩阵。文章来源:https://www.toymoban.com/news/detail-776632.html
例如:B为n阶矩阵,E为单位矩阵,a为正实数。在a充分大时,aE+B为正定矩阵。(B必须为对称阵)文章来源地址https://www.toymoban.com/news/detail-776632.html
到了这里,关于雅可比(jacobian)、黑塞矩阵(Hessian)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!