Spark MLlib 偽逆演算法

2021-07-30 11:36:20 字數 1403 閱讀 4026

1.矩陣的逆

定義

設a是數域上的乙個n階方陣,若在相同數域上存在另乙個n階矩陣b,使得: ab=ba=i。 則我們稱b是a的逆矩陣,而a則被稱為可逆矩陣。

條件

a是可逆矩陣的充分必要條件:a是非奇異矩陣(當|a

|≠0 時,也就是a的行列式不等於0時,a稱為非奇異矩陣)

性質

- 矩陣a可逆的充要條件是a的行列式不等於0。

- 可逆矩陣一定是方陣。

- 如果矩陣a是可逆的,a的逆矩陣是唯一的。

- 可逆矩陣也被稱為非奇異矩陣、滿秩矩陣。

- 兩個可逆矩陣的乘積依然可逆。

- 可逆矩陣的轉置矩陣也可逆。

- 矩陣可逆當且僅當它是滿秩矩陣。

求逆方法

伴隨矩陣法:

矩陣a 可逆,a−

1=a∗

|a| 其中a∗

是伴隨矩陣。

初等變換法:

2.偽逆矩陣

定義

偽逆矩陣又稱廣義逆,由於奇異矩陣或者非方陣不存在逆矩陣。

方法

直接求解: pi

nv(a

)=(a

t∗a)

−1at

svd分解:

s1.[u,

s,v]

=svd

(a) ;

s2.將

s 中的非零元素求倒;

s3.svd

inva

=v∗s

t∗ut

;qr求解:

sparksvd分解演算法

建立rowmatrix,檔案test.txt可以寫入:

1 2 6 4 

5 3 8 2

4 9 5 4

3 7 9 4

**

val rdd = sc.textfile("file/test.txt")

.map(_.split(' ')

.map(_.todouble))

.map(line => vectors.dense(line));

val rm = new rowmatrix(rdd);

val svd = rm.computesvd(2, computeu = true);

println(svd);

[1]. 數學概念

[2]. 求偽逆的三種方法

[3]. spark mllib機器學習實戰 王曉華著. 清華大學出版社

matlab inv,pinv逆與偽逆

inv a b 實際上可以寫成 a bb inv a 實際上可以寫成 b a這樣比求逆之後帶入精度要高 a b pinv a b a b a pinv b x pinv a x pinv a,tol 其中tol為誤差 pinv是求廣義逆 先搞清楚什麼是偽逆。對於方陣a,若有方陣b,使得 a b b ...

左右逆和偽逆

第三十四課時 左右逆和偽逆 本講的主題是左右逆,偽逆,當然也包括以前的內容,四個基本子空間。am n,m行n列 1 矩陣可逆 即兩邊逆,a a 1 i a 1 a 此時r m n,a為方陣且滿秩,零空間和左零空間都只有零向量。2 左逆 當列滿秩,列向量線性無關,行向量不一定,r n,零空間只有零向量...

OpenCV求逆(偽逆)矩陣函式

double invert inputarray src,outputarraydst,int flags decomp lu 功能 用以求取乙個矩陣的逆或者偽逆。src 輸入,浮點型 32位或者64位 的m n的矩陣,當引數3的使用方法為decomp cholesky decomp lu deco...