感謝大家對matlab愛好者公眾號的關注!如果公眾號文章對您有幫助,別忘了點擊分享和「在看」哦!若您對公眾號有什麼意見或建議,請在公眾號中回復或在任意文章底部留言!
二狗在MATLAB矩陣及其運算(三)篇章中,給大家留下關於自編行列式運算的小程序,本期二狗在此給大家解答一下自編行列式程序思路及代碼,再給大家講一下廣逆矩陣的概念,為深入學習廣逆矩陣做準備。
承上 :行列式自編程序
以一個四階行列式為例
我們以第一行的每列展開,N階矩陣拆分成(N-1)階矩陣的程序自編。
用rem()函數判斷正負號,(1+i)被2整除為+,(1+i)不能被2整除為-
現在轉化成了求三個三階行列的值的問題。三階行列式採用上述方法分解成二階行列式,二階行列式根據上述方法轉化為一個具體數,至此完成了行列式的分解。
啟下:廣逆矩陣概念
在上期matlab矩陣連載中及其運算(四)中,在文末提到的廣逆矩陣概念,廣逆矩陣這個問題比較大,將會分幾期進行講解,本期給大家講講廣逆矩陣的概念。
由克拉默法則知道當A∈Cnnxn時,方程組
有唯一解,且其解為X=A-1b,但對於一般的線性方程組
是否也存在類似的結論?即是否存在矩陣Bn,m,使X=Bn,mb
定義:設A∈Cnmxn,如果存在矩陣B∈Cnnxm滿足摩爾-彭羅斯方程
(一)ABA=A (二)BAB=B (三)(AB)T=AB (四)(BA)T=BA
一部分或者全部,則稱B為A的廣逆矩陣。
由定義可知,廣義逆矩陣共有
即有十五種廣義逆矩陣。
這一點有可能理解不了。為什麼會有這麼複雜的組合以及這麼多的組合,當然二狗畢竟不是研究矩陣方面的專家,15種案例是給不了的,只能給出少數幾種,讓大家簡單對廣逆矩陣的複雜性有一定了解,而不是用pinv()就可以求出廣逆矩陣。
滿足:ABA=A。不滿足一、二、三的逆矩陣
滿足:ABA=A、BAB=B,不滿足等式三、四的逆矩陣
滿足:ABA=A、BAB=B、(AB)T=AB、(BA)T=BA
滿足ABA=A、BAB=B、(BA)T=BA,不滿足等式三的逆矩陣
是不是感覺好複雜,而且每個類型的B是怎麼求出來的,不能類型的特性是什麼,這將是我們下一期連載的內容。本期讓大家知道廣逆矩陣的類型較多就可以了,在多講就怕讀者一時間難以消化。
大家記住,在矩陣學習中或者實際應用中如果不仔細看條件,用錯逆矩陣很有可能會帶來計算麻煩。在廣逆矩陣的計算過程中一點要考慮周全,比如說在bp算法反饋中使用符合不同等式的逆矩陣計算對BP誤差的減小是否有影響?在文獻中使用的逆矩陣通常指的是哪一類型,若是類型不同,會帶來什麼問題。這些問題二狗是解決不了的,還靠讀者自己遇到問題時通過二狗的拋磚引玉,引發思考。
function H_Det =Matrix_Det(H,N)%輸入矩陣 階數H_Det = 0;if N==1 H_Det = H(1,1); return;endtemp = zeros(N-1,N-1);for i=1:N for j=2:N %第二行開始 for k=1:N-1 if k>=i cln = k+1; else cln = k; end temp(j-1,k) = H(j,cln); end end t = Matrix_Det(temp,N-1);%遞歸 if rem(1+i,2)==0 %(-1)^(1+i) H_Det = H_Det+H(1,i)*t; else H_Det = H_Det-H(1,i)*t; endendend看完還想看 (點擊下方文字直接訪問)
科研小助手推薦 第四期
科研小助手推薦第三期
神經網絡連載(四)
神經網絡連載(三)
神經網絡連載(二)
免費的matlab來了
如何有效保護原始碼 —— .m腳本文件?
成為VIP,享永久免費福利
加入條件:一次性支付350元VIP會員費
加入方式:在公眾號中回復「VIP」獲取
VIP權益:
1、永久免費下載公眾號代碼商城的所有原始碼(包括後續更新)
2、
3、網絡稀缺MATLAB編程資料和科研相關資料
4、10次任意網絡資源協助下載(所有代碼和相關資源在matlab愛好者VIP群都能直接下載)
本文作者:過冷水