scipy- linalg以及矩阵相关知识学习

1.det(A)行列式

行列式在数学中,是由解线性方程组产生的一种算式,是取自不同行不同列的n个元素的乘积的代数和。n阶行列式(定义1)设有n²个数,排成n行n列的表 ,作出表中位于不同行不同列的n个数的乘积,并冠以符号(-1)t,的形式如下的项,其中为自然数1,2,...,n的一个排列,t为这个排列的逆序数。由于这样的排列共有n!个,这n!项的代数和称为n阶行列式

①行列式A中某行(或列)用同一数k乘,其结果等于kA。

②行列式A等于其转置行列式AT(AT的第i行为A的第i列)。

③若n阶行列式|αij|中某行(或列);行列式则|αij|是两个行列式的和,这两个行列式的第i行(或列),一个是b1,b2,…,bn;另一个是с1,с2,…,сn;其余各行(或列)上的元与|αij|的完全一样。

④行列式A中两行(或列)互换,其结果等于-A。 ⑤把行列式A的某行(或列)中各元同乘一数后加到另一行(或列)中各对应元上,结果仍然是A。

2.inv(A) 逆矩阵

若在相同数域上存在另一个n阶矩阵B,使得: AB=BA=E。 则我们称B是A的逆矩阵,而A则被称为可逆矩阵A是可逆矩阵的充分必要条件是∣A∣≠0,即可逆矩阵就是非奇异矩阵。(当∣A∣=0时,A称为奇异矩阵)

逆矩阵: 设A是数域上的一个n阶

3.eig(A)特征值

设 A 是n阶方阵,如果存在数m和非零n维列向量 x,使得 Ax=mx 成立,则称 m 是A的一个特征值(characteristic value)或本征值(eigenvalue)。非零n维列向量x称为矩阵A的属于(对应于)特征值m的特征向量或本征向量,简称A的特征向量或A的本征向量。

Ax=mx,等价于求m,使得(mE-A)x=0,其中E是单位矩阵,0为零矩阵。

|mE-A|=0,求得的m值即为A的特征值。|mE-A| 是一个n次多项式,它的全部根就是n阶方阵A的全部特征值,这些根有可能相重复,也有可能是复数。

如果n阶矩阵A的全部特征值为m1 m2 ... mn,则|A|=m1*m2*...*mn

同时矩阵A的迹是特征值之和:tr(A)=m1+m2+m3+…+mn

4.矩阵分解

(1)LU:三角分解 分解为两个上下三角矩阵,用于简化大矩阵行列式值的运算过程、求逆矩阵、求解联立方程组。

(2)QR:QR分解法是将矩阵分解成一个正规正交矩阵与上三角形矩阵,所以称为QR分解法,与此正规正交矩阵的通用符号Q有关。

(3)SVD:奇异值分解 (singular value decomposition,SVD) 是另一种正交矩阵分解法;SVD是最可靠的分解法,但是它比QR 分解法要花上近十倍的计算时间。[U,S,V]=svd(A),其中U和V分别代表两个正交矩阵,而S代表一对角矩阵。 和QR分解法相同, 原矩阵A不必为正方矩阵。使用SVD分解法的用途是解最小平方误差法和数据压缩。

(4)Schur:???用迭代方法进行逼近的矩阵分解

#!/usr/bin/env python
# -*- coding:utf-8 -*-
from scipy import linalg as lg


import numpy as np
arr = np.array([[1, 2], [3, 4]])  # 定义矩阵 #
print ("Det:", lg.det(arr))# 求行列式 #
print ("Inv:", lg.inv(arr))# 求逆矩阵 #
b = np.array([6,14])
print ("Sol:",lg.solve(arr,b))#解方程组#
print ("Eig:",lg.eig(arr))#求特征值#
print ("LU:",lg.lu(arr))
print ("QR:",lg.qr(arr))
print ("SVD:",lg.svd(arr))
print ("Schur:",lg.schur(arr))

猜你喜欢

转载自blog.csdn.net/zhangmary/article/details/79882677