泰勒公式,雅可比矩阵,海塞矩阵,牛顿法

泰勒公式

泰勒公式是一个在函数上取某点的近似值,如果函数足够平滑的话,在已知函数在某一点的各阶导数值的情况之下,泰勒公式可以用这些导数值做系数构建一个多项式来近似函数在这一点的近似值。泰勒公式还给出了这个多项式和实际的函数值之间的偏差

泰勒公式是将一个在x=x0处具有n阶导数的函数f(x)利用关于(x-x0)的n次多项式来逼近函数的方法。

若函数f(x)在包含x0的某个闭区间[a,b]上具有n阶导数,且在开区间(a,b)上具有(n+1)阶导数,则对闭区间[a,b]上任意一点x,成立下式:

其中,

表示f(x)的n阶导数,等号后的多项式称为函数f(x)在x0处的泰勒展开式,剩余的Rn(x)是泰勒公式的余项,是(x-x0)n的高阶无穷小

参考资料:

https://baike.baidu.com/item/%E6%B3%B0%E5%8B%92%E5%85%AC%E5%BC%8F/7681487?fr=aladdin

 

雅可比矩阵

雅可比矩阵是一阶偏导数以一定方式排列成的矩阵,其行列式称为雅可比行列式。雅可比矩阵的重要性在于它体现了一个可微方程与给出点的最优线性逼近,例子:

球坐标系到直角坐标系的转化由F函数给出︰

此坐标变换的雅可比矩阵是

 的F函数:

其雅可比矩阵为:

此例子说明雅可比矩阵不一定为方阵。

 

雅可比行列式

如果m = n, 那么FF是从n维空间到n维空间的函数, 且它的雅可比矩阵是一个方块矩阵. 于是我们可以取它的行列式, 称为雅可比行列式.

如果连续可微函数FF在pp点的雅可比行列式不是零, 那么它在该点附近具有反函数. 这称为反函数定理;如果pp点的雅可比行列式是正数, 则FF在pp点的取向不变;如果是负数, 则FF的取向相反;雅可比行列式的绝对值, 就可以知道函数FF在pp点的缩放因子。

对于取向问题可以这么理解, 例如一个物体在平面上匀速运动, 如果施加一个正方向的力FF, 即取向相同, 则加速运动, 类比于速度的导数加速度为正;如果施加一个反方向的力FF, 即取向相反, 则减速运动, 类比于速度的导数加速度为负.

海森Hessian矩阵

在数学中, 海森矩阵(Hessian matrix或Hessian)是一个自变量为向量的实值函数的二阶偏导数组成的方块矩阵

 

 

牛顿法

一般来说, 牛顿法主要应用在两个方面, 1, 求方程的根; 2, 最优化。

1,求方程的根

其原理便是使用泰勒展开,然后去线性部分,即:

      (1)

然后令上式等于0,则有:

                 (2)

经过不断迭代:

               (3)

当精度达到要求的时候停止迭代。

迭代示意图如上所示。

2,最优化

最优化一般是求极大或极小问题,这可以转变为求导数零点,然后转变为1的情形。

即f' = 0;

把f(x)用泰勒公式展开到二阶,即:

                                        (4)

等号左边和f(x)近似相等,抵消。然后对求导,得到:

                                                                            (5)

更进一步:

                                                                                (6)

然后得到迭代式子:

                                                              (7)

以上只针对单变量进行讨论,如果对多变量就要引入雅克比矩阵和海森矩阵

 

用牛顿法解无约束一维极值问题

原理:

1.给定初始点x0,及精度\varepsilon>0,令k=0;

2.若| f'(Xk) |<\varepsilon,停止,极小点为Xk;

3.Xk+1=Xk-f'(Xk)/f''(Xk)

4.令k=k+1,转2

算法的matlab 实现:

function [x,minf]=minNewton(f,x0,eps)
%format long;
if nargin==2
    eps=1.0e-6;
end

df=diff(f);
d2f=diff(df);

k=0;
tol=1;

while tol>eps
    dfx=subs(df,findsym(df),x0);
    d2fx=subs(d2f,findsym(d2f),x0);
    x1=x0-dfx/d2fx;
    k=k+1;
    tol=abs(dfx);
    x0=x1;
end

x=x1;
minf=subs(f,findsym(f),x);
%format short;

用牛顿法解无约束多维极值问题

简单介绍一下二者,雅克比矩阵为函数对各自变量的一阶导数,海森矩阵为函数对自变量的二次微分。形式分别如下:

 

把两个矩阵代入(7)中

 

function [x,minf]=minNT(f,x0,var,eps)

format long;
if nargin==3
    eps=1.0e-6;
end

to1=1;
x0=transpose(x0);
while to1 > eps
    gradf = jacobian(f,var);
    jacf = jacobian(gradf, var);
    v = Funval(gradf, var,x0);
    to1=norm(v);
    pv=Funval(jacf,var,x0);
    p = -inv(pv)* transpose(v);
    x1=x0+p;
    x0=x1;
end
x=x1;
minf =Funval(f,var,x);
format short;

参考:

https://blog.csdn.net/ubunfans/article/details/41520047

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值