怎样用matlab计算hassen矩阵,程序怎么写

怎样用matlab计算hassen矩阵,程序怎么写,第1张

在数学中,海森矩阵(Hessian

matrix

Hessian)是一个自变吵银量为向量的实值函数的二阶偏导数组成的方块矩阵

举个简单顷判的例子

clear

clc

syms

x

y

f

=

[2*x^2+4*x*y

8*x*y8*x*y

3*y*y]

f1

=

diff(f(1,1),x)

f1

=

diff(f1,x)

f2

=

diff(f(1,2),x)

f2

=

diff(f2,y)

f3

=

diff(f(2,1),y)

f3

=

diff(f3,x)

f4

=

diff(f(2,2),y)

f4

=

diff(f4,y)

Hf

=

[f1

f2f3

f4]

结果:

f

=

%%%%%

原来的矩阵升乎宴

[

2*x^2+4*x*y,

8*x*y]

[

8*x*y,

3*y^2]

Hf

=

%%%%%

矩阵的Hessian

[

4,

8]

[

8,

6]

梯度和念尺hessian matrix,并且把Z 中的值带回去,因为这个式子最高就是WT*W是二次,所以hessian matrix肯定可以化为具体数字。这个hessian matrix应该是445*445大小。

海森矩阵的精确计算方法.在有限单元法和纽马克-β法的基础上推导了平面框架结构地链大震力的设计敏度和海森矩阵的计算公式,用matlab语言编制了平面框架结构地震力的设计敏度和海森矩阵的计算程序,实现了平面框架结构地震力的设计敏度和海森矩阵的精确计算.最后给出一个二层平面框架结构算例,数值结果表明本文所提的地震力的设计敏仔唤高度和海森矩阵的计算方法是有效的和高效的

matlab求hessian 矩阵方法如下:

function H=hessian(f,x,x0)

% H=hessian(f,x) 计算表达式

% H=hessian(f,x,x0) 计算hessian矩阵的值 x0为x的初值

%$copyright by$ LUO sir

switch nargin

case 1

error('please input variables in f(x)')

case 2

H=subhessian(f,x)

case 3

H=subhessian(f,x,x0)

x=x0

H=subs(H)

otherwise

error('too many arguments or nothing')

end

function HH=subhessian(f,x,x0)

n=length(x)

J=jacobian(f,x)

HH=[]

HH=sym(HH)

for i=1:n

HH(i,:)=jacobian(J(1,i),x)

end

Hessian矩阵其实就是一个多元函数的所纯如有二次偏导数构成的雅克比矩阵,敬裤森matlab中求解的方法是对雅克比矩亮亩阵再求雅克比矩阵。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12320226.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存