【线性代数】正定矩阵,二次型函数

2024-09-08 06:04

本文主要是介绍【线性代数】正定矩阵,二次型函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文主要介绍正定矩阵,二次型函数,及其相关的解析证明过程和各个过程的可视化几何解释(深蓝色字体)。

非常喜欢清华大学张颢老师说过的一段话:如果你不能用可视化的方式看到事情的结果,那么你就很难对这个事情有认知,认知就是直觉,解析的东西可以让你理解,但未必能让你形成直觉,因为他太反直觉了。

正定矩阵

定义

给定一个大小为 n×n 的实对称矩阵 A ,若对于任意长度为 n 的非零向量 X,有X^{T}AX>0 恒成立,则矩阵 A是一个正定矩阵。

推荐文章:如何理解正定矩阵和半正定矩阵 - marsggbo - 博客园 (cnblogs.com)

正定矩阵有什么用

给定一个多元二次函数:f(x)=(x_{1}-x_{2})^{2}+2x_{1}+x_{2}+3

写成矩阵的形式:f(x)=\begin{bmatrix} x_{1} & x_{2} \end{bmatrix}\begin{bmatrix} 1 &-1 \\-1 &1 \end{bmatrix}\begin{bmatrix} x_{1}\\ x^{_{2}} \end{bmatrix}+\begin{bmatrix} 2 &1 \end{bmatrix}\begin{bmatrix} x_{1}\\ x_{2} \end{bmatrix}+3

一个二次函数的一般形式是:f(x)=\frac{1}{2}x^{T}Ax+b^{T}x+c

它的一阶导\forall f(x)=Ax+b  二阶导\forall ^{2}f(x)=A,它的二阶导就是这个二次型的矩阵A。

可视化:如果A是正定的,那么f(x)就是一个严格的凸函数(如图1),那么f(x)的极小值就是最小值,就是全局的最小值。此时最小化f(x)就等价于解一个线性方程组minimize.f(x)\ll =\gg Ax+b=0。在优化算法和机器学习中是一个非常重要的性质,可以避免我们得到的驻点但不是全局最小值的情况,如果A不是正定的,那么f(x)就不是严格的凸函数(如图2、图3)。最小化f(x)时就会很麻烦。

图1
图2
图3

正定矩阵的判定

一、验证定义

x^{T}Ax>0,\forall x\epsilon R^{n},x\neq 0 

此方法在运算过程中可能会涉及到配方换元等,不方便,几乎不采用此方法。

可视化:从定义可知,任意一个向量x经A的变换后,再与x做点积,结果大于0,说明x经过A的变换后它与原x的夹角是小于90°的。这也正好正定矩阵对应名字中“正”的粗略含义,并没有翻折等负的操作。

二、验证特征值都大于0

对于对称矩阵,特征值都大于0与矩阵正定是等价的。证明如下:

(1)A正定,验证特征值都大于0:

取x为特征向量,则x^{T}Ax=x^{T}(\lambda x)=\lambda x^{T}x>0,其中x^{T}x=x_{1}^{2}+...+x_{n}^{2}>0,所以\lambda>0

(2)特征值都大于0,验证A正定:

因为A是实对称阵,给A做一个正交相似对角化x^{T}Ax=x^{T}Q^{T}\Lambda Qx=(Qx)^{T}\Lambda (Qx)>0,其中Qx\neq 0\Lambda =diag(\lambda _{1},...,\lambda _{n}),\lambda都大于0.

要计算所以特征值比较麻烦,此方法用的少。

可视化:先说明对特征值的理解,正的特征值是这个变换在特征向量方向上的拉伸,并没有翻转。而对称矩阵的特征向量是正交的,在没有翻转的情况下,变换前后的向量不可能夹角大于90°,所以矩阵特征值都大于0时,矩阵就是正定的。

三、验证各阶主子式的行列式都大于0

各阶主子式的行列式都大于0与矩阵正定是等价的。证明如下:

(1)A正定,验证各阶主子式的行列式都大于0

(2)各阶主子式都大于0,验证A正定

可视化:行列式的几何意义是变换前后高维“体积”缩放的倍数,而特征值的几何意义是变换前后在某个方向缩放的倍数,故矩阵的行列式等于矩阵所以特征值的乘积,矩阵的行列式为正,说明矩阵特征值全为正或有偶数个负,但如果矩阵的各阶主子式都大于0,那么矩阵的特征值就全为正的。理由:n维矩阵的n-1阶主子式的特征值为(n-1)个,这(n-1)个特征值为原n维矩阵的n个特征值中的(n-1)个向(n-1)维做投影,其正负属性不变,所以当如果矩阵的各阶主子式都大于0,那么矩阵的特征值就全为正的,矩阵正定。

二次型函数

圆锥曲线判别式

对于二次型函数f(x,y)=ax^{2}+2bxy+cy^{2}=\begin{bmatrix} x & y \end{bmatrix}\begin{bmatrix} a &b \\ b &c \end{bmatrix}\begin{bmatrix} x\\ y \end{bmatrix}

a>0时,ac-b^{2}>0,则矩阵为正定矩阵,二次型函数为正定函数(如图4)

a>0时,ac-b^{2}<0,则矩阵为不定矩阵,二次型函数为不定函数(如图5)

a<0时,ac-b^{2}<0,则矩阵为不定矩阵,二次型函数为不定函数(如图6)

a<0时,ac-b^{2}>0,则矩阵为负定矩阵,二次型函数为负定函数(如图7)

ac-b^{2}=0,则矩阵为半正定矩阵,二次型函数为半正定定函数(如图8)

图4
图5
图6
图7
图8

图4:f(x,y)=2x^{2}+2xy+4y^{2},       \begin{bmatrix} a & b\\ b & c \end{bmatrix}=\begin{bmatrix} 2 &1 \\ 1 &4 \end{bmatrix}          ,正定,矩阵特征值都为正

图5:f(x,y)=2x^{2}+8xy+4y^{2},       \begin{bmatrix} a & b\\ b & c \end{bmatrix}=\begin{bmatrix} 2 &4 \\ 4&4 \end{bmatrix}          ,不定,矩阵特征值一正一负

图6:f(x,y)=-2x^{2}-8xy+4y^{2},   \begin{bmatrix} a & b\\ b & c \end{bmatrix}=\begin{bmatrix} -2 &-4 \\ -4 &4 \end{bmatrix}   ,不定,矩阵特征值一正一负

图7:f(x,y)=-2x^{2}+2xy-4y^{2} ,   \begin{bmatrix} a & b\\ b & c \end{bmatrix}=\begin{bmatrix} -2 &1 \\ 1 &-4 \end{bmatrix}   ,负定,矩阵特征值都为负

图8:f(x,y)=2x^{2}+4xy+2y^{2}    ,   \begin{bmatrix} a & b\\ b & c \end{bmatrix}=\begin{bmatrix} 2 &2 \\ 2 &2 \end{bmatrix}          ,半正定,矩阵特征值含0

合同变换,正交变换

对于二次型函数f(x,y)=2x^{2}+2bxy+4y^{2}=\begin{bmatrix} x & y \end{bmatrix}\begin{bmatrix} 2 &b \\ b &4 \end{bmatrix}\begin{bmatrix} x\\ y \end{bmatrix} 中的矩阵\begin{bmatrix} 2 &b \\ b & 4 \end{bmatrix}

(1)当b=0时,矩阵变为对角矩阵\begin{bmatrix} 2 &0 \\0 & 4 \end{bmatrix} ,特征向量为(1,0)和(0,1),特征值为2和4。画出图形为:

(2)当b\neq 0时,特征向量为(\frac{b}{1-\sqrt{b^{2}+4}},1)(\frac{b}{1+\sqrt{b^{2}+4}},1),特征值为3-\sqrt{b^{2}+4}3+\sqrt{b^{2}+4}

逐渐增大或减小b(保持在矩阵为正定矩阵的情况下),画出特征向量所在的直线和二次型函数图形:

b=-2
b=-1

b=1
b=2

可知矩阵特征向量的方向即为二次型函数旋转到的方向。正定矩阵为对称矩阵,对其进行谱分解A=Q^{T}\Lambda QQ为特征向量构成的矩阵,\Lambda为特征值组成的对角矩阵。则可知二次型函数都是将标准二次型函数旋转-缩放-再旋转变换得来的。

这篇关于【线性代数】正定矩阵,二次型函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1147322

相关文章

hdu 4565 推倒公式+矩阵快速幂

题意 求下式的值: Sn=⌈ (a+b√)n⌉%m S_n = \lceil\ (a + \sqrt{b}) ^ n \rceil\% m 其中: 0<a,m<215 0< a, m < 2^{15} 0<b,n<231 0 < b, n < 2^{31} (a−1)2<b<a2 (a-1)^2< b < a^2 解析 令: An=(a+b√)n A_n = (a +

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个

hdu 6198 dfs枚举找规律+矩阵乘法

number number number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Description We define a sequence  F : ⋅   F0=0,F1=1 ; ⋅   Fn=Fn

一些数学经验总结——关于将原一元二次函数增加一些限制条件后最优结果的对比(主要针对公平关切相关的建模)

1.没有分段的情况 原函数为一元二次凹函数(开口向下),如下: 因为要使得其存在正解,必须满足,那么。 上述函数的最优结果为:,。 对应的mathematica代码如下: Clear["Global`*"]f0[x_, a_, b_, c_, d_] := (a*x - b)*(d - c*x);(*(b c+a d)/(2 a c)*)Maximize[{f0[x, a, b,

线性代数|机器学习-P35距离矩阵和普鲁克问题

文章目录 1. 距离矩阵2. 正交普鲁克问题3. 实例说明 1. 距离矩阵 假设有三个点 x 1 , x 2 , x 3 x_1,x_2,x_3 x1​,x2​,x3​,三个点距离如下: ∣ ∣ x 1 − x 2 ∣ ∣ 2 = 1 , ∣ ∣ x 2 − x 3 ∣ ∣ 2 = 1 , ∣ ∣ x 1 − x 3 ∣ ∣ 2 = 6 \begin{equation} ||x

python科学计算:NumPy 线性代数与矩阵操作

1 NumPy 中的矩阵与数组 在 NumPy 中,矩阵实际上是一种特殊的二维数组,因此几乎所有数组的操作都可以应用到矩阵上。不过,矩阵运算与一般的数组运算存在一定的区别,尤其是在点积、乘法等操作中。 1.1 创建矩阵 矩阵可以通过 NumPy 的 array() 函数创建。矩阵的形状可以通过 shape 属性来访问。 import numpy as np# 创建一个 2x3 矩阵mat

【UVA】10003-Cutting Sticks(动态规划、矩阵链乘)

一道动态规划题,不过似乎可以用回溯水过去,回溯的话效率很烂的。 13988658 10003 Cutting Sticks Accepted C++ 1.882 2014-08-04 09:26:49 AC代码: #include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include

算法练习题17——leetcode54螺旋矩阵

题目描述 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。  代码 import java.util.*;class Solution {public List<Integer> spiralOrder(int[][] matrix) {// 用于存储螺旋顺序遍历的结果List<Integer> result = new ArrayList

线性代数 第六讲 特征值和特征向量_相似对角化_实对称矩阵_重点题型总结详细解析

文章目录 1.特征值和特征向量1.1 特征值和特征向量的定义1.2 特征值和特征向量的求法1.3 特征值特征向量的主要结论 2.相似2.1 相似的定义2.2 相似的性质2.3 相似的结论 3.相似对角化4.实对称矩阵4.1 实对称矩阵的基本性质4.2 施密特正交化 5.重难点题型总结5.1 判断矩阵能否相似对角化5.2 已知两个矩阵相似,求某个矩阵中的未知参数5.3 相似时,求可逆矩阵P,使

最大子矩阵和问题归纳总结

一,最大子矩阵问题: 给定一个n*n(0< n <=100)的矩阵,请找到此矩阵的一个子矩阵,并且此子矩阵的各个元素的和最大,输出这个最大的值。 Example: 0 -2 -7 0 9 2 -6 2 -4 1 -4 1 -1 8 0 -2 其中左上角的子矩阵: 9 2 -4 1 -1 8 此子矩阵的值为9+2+(-4)+1+(-1)+8=15。 二,分析 子矩阵是在矩阵