赞
踩
请问谁能用易于理解的语言解释下矩阵的正定及半正定? - 知乎
M为一个方阵
定义: 一个非零向量X,如果,那么我们就规定这个M方阵为正定矩阵
单位矩阵是正定矩阵 (positive definite)
同理:
那么这个M矩阵为半正定矩阵
1、M的特征值都>0 ,那么这个矩阵为正定矩阵
2、M的特征值都<0 ,那么这个矩阵为半正定矩阵
正定矩阵已经是一个非奇异矩阵(行列式不为0)
正定矩阵的代数余子式一定也是一个正定矩阵
如果矩阵M为一个正定矩阵,那么有M=L*Lt,也就是Cholesky分解
如果 A B 是对称的正定矩阵,那么 A +B 也是正定矩阵
案例:
奇异矩阵(Singular Matrix)是一个方阵,其行列式的值为零。也可以说,如果一个矩阵的行列式等于零,则该矩阵为奇异矩阵。
1. 非满秩:行列式为0 那么一定是非满秩 ,矩阵中的行向量或列向量存在一定的线性相关性。
2. 没有逆矩阵:奇异矩阵是不可逆的,不可分解
3. 零空间非零:奇异矩阵的零空间(Null Space)不为空,即存在非零向量使得与奇异矩阵相乘结果为零向量。这是因为奇异矩阵存在线性相关的行向量或列向量。
奇异矩阵在线性方程组求解、矩阵分解和特征值计算等问题中具有重要的意义。例如,对于线性方程组,当系数矩阵为奇异矩阵时,该方程组可能无解或有无穷多解;在矩阵分解中,奇异矩阵无法进行LU分解或Cholesky分解等常见的分解方法;在特征值计算中,奇异矩阵的特征值一般不易求解。
非奇异矩阵(Non-singular Matrix)是指行列式不为零的方阵。非奇异矩阵具有满秩、可逆和零空间为空的特点,因此在各种数学和工程应用中更常见和有用。
- Eigen::AngleAxisf angle_axis(M_PI / 3, Eigen::Vector3f(0, 0, 1));
- Eigen::Matrix3f R_12_ = angle_axis.matrix();
- Eigen::Vector3f t_12_(0.1, 0.1, -0.1);
-
- Eigen::Matrix4f RT = Eigen::Matrix4f::Identity();
- RT.block<3, 3>(0, 0) = R_12_.matrix();
- RT.block<3, 1>(0, 3) = t_12_.matrix();
- std::cout << "except t_12:\n" << RT << std::endl;
雅可比(jacobian)、黑塞矩阵(Hessian)-CSDN博客
- 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])
- syms x y z
- f1=x^2*z+5*x-2*y^3;
- J=jacobian(f1,[x,y,z]);
- % 1 直接计算hessian矩阵
- H0=hessian(f1,[x;y;z])
- syms x y z
- % 2 先求雅可比矩阵,然后再计算 hessian 矩阵
- f2=-(x^2)-4*y^2+3*x+9*y-3*x*y;
- J0=jacobian(f2,[x,y]) % 雅可比矩阵
- H2=jacobian(J0,[x,y])
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。