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·a=i,則稱b為a的逆矩陣。
如果矩陣a不是乙個方陣,或者a是乙個非滿秩的方陣時,矩陣a沒有逆矩陣,但可以找到乙個與a的轉置矩陣a'同型的矩陣b,使得:
a·b·a=a
b·a·b=b
此時稱矩陣b為矩陣a的偽逆,也稱為廣義逆矩陣。因此偽逆陣與原陣相乘不一定是單位陣。
當a可逆時,b就是a的逆矩陣,否則就是廣義逆。
滿足上面關係的a,b矩陣,有很多和逆矩陣相似的性質。
如果a為非奇異矩陣的話,雖然計算結果相同,但是pinv會消耗大量的計算時間。
在其他情況下,pinv具有inv的部分特性,但是不完全相同。
協變與逆變
目錄 1.協變 2.逆變 在泛型之前,我們都知道可以將乙個派生類物件賦值給基類變數,這叫做賦值相容性。看下面這個例子 相容性示意圖如上。但是當我們新增泛型機制時 class animal class dog animal delegate t factory class program static...
逆變與協變
一 遇到問題 這是基於.net3.5開發,實際工作中遇到乙個問題。假設我們有乙個 base 類,乙個 derived 類,derived 繼承了 base。如下 classbase classderived base 當我用ienumerable作為形參,list作為實參時,發現編譯出錯了!原本父類...
康拓展開與逆展開
題目鏈結 別人關於康托展開與逆展開的部落格 康拓展開是對乙個自然排列到乙個自然數的對映,它們是一一對應的。include include include include include using namespace std struct zp w int hash 9 int flag 40001...