日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

台湾国立大学郭彦甫Matlab教程笔记(22) Cramer's method(Inverse matrix逆矩阵法)

發布時間:2025/4/5 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 台湾国立大学郭彦甫Matlab教程笔记(22) Cramer's method(Inverse matrix逆矩阵法) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

臺灣國立大學郭彥甫Matlab教程筆記(22) Cramer’s method(Inverse matrix)

matrix left division左除:\ or mldivide()

solving systems of linear equations Ax=b using factorization methods:

求Ax=b中的x,只需要A\b
實際上,A\b這個算式matlab進行了很多判斷,進行了很多演算,時間復雜度有點高
左除本質上也是succesive elemination 逐次消去法

看一個線性方程組

matlab指令:
A=[1,2,1;2,6,1;1,1,4];
b=[2;7;3];
x=A\b

執行的結果:算出來x的值:

一道練習題:需要結合上一次筆記

關鍵點在于用matlab中矩陣把線性方程表述出來,然后求解,應該不難。
筆者的練習如下:

思考:這里需要用符號法syms嗎?
我的練習:

syms R1 R2 R3 R4 R5 V1 V2 A=[R1 0 0 R4 0; 0 R2 0 -R4 R5; 0 0 -R3 0 R5; 1 -1 0 -1 0; 0 1 -1 0 -1] b=[V1;0;V2;0;0]

執行一下,發現可以:

接下來就是求解的問題了,我想到的是用左除\

x=A\b

運行結果,這個用符號表示的線性方程組解出來了。


下面講一些矩陣分解的一些函數

Matrix decomposition funcitons矩陣分解函數

qr(): orthogonal-triangular decomposition 正交三角矩陣的分解
ldl(): Block LDL’s factorization for Hermitian indefinite matrices(厄密特不定矩陣)
ilu():Sparse稀疏 incomplete LU factorization 稀疏矩陣的LU不完全分解
lu();LU matrix factorization LU分解
chol(): Cholesky factorization Cholesky 針對的是正定矩陣的分解,也稱平方根法
gsvd(): generalized singular value decomposition 廣義奇異值分解
svd():singular value decomposition奇異值分解

下面來到 cramer’s method

Cramer’s(Inverse) method


A的逆矩陣: A^-1:inverse of A

可以求出x矩陣

Inverse Matrix逆矩陣

對于矩陣A,A的逆矩陣被定義為:
det(A)是矩陣A的行列式,是determinant的縮寫
adj(A)是A矩陣的伴隨矩陣(對整個矩陣求代數余子式,這些代數余子式構成的新的矩陣) 在這里是A中的a 和d 交換,b和c之間加負號

性質:
A的逆矩陣再取逆,還是A;
kA的逆矩陣等于1/k乘以A的inverse

接下來講解如何用cramer’s method 求解 方程組

solving equations using Cramer’s Method

下面的方程組例子


我們要求解x

在matlab中

A=[1,2,1;2,6,1;1,1,4]; b=[2;7;3]; x=inv(A)*b

可以得到這個方程組的解


Cramer’s method 有一個問題:A的逆矩陣不一定存在
三元一次方程組 ,是三個平面之間的關系
可能有唯一解,可能無限解,可能無解
舉例:矩陣中的兩行成比例,A的逆矩陣不存在

singular matrix
成為奇異矩陣,退化矩陣,不可逆矩陣

下面是作業題:

我的思考:如何畫一個平面
可能要用到plot3()函數
參考上幾次的筆記:matlab3D畫圖函數
x=-20:0.1:20;
y=0:0.1:40;
[X,Y]=meshgrid(x,y);
Z1=-X-Y;
Z2=-X+Y;
Z3=-X/3;
hold on
mesh(X,Y,Z1,‘r’,X,Y,Z2,‘b’,X,Y,Z3,‘g’);
hold off;
報錯:mesh不能這樣用

修改成為下面這樣:

x=-20:0.1:20; y=0:0.1:40; [X,Y]=meshgrid(x,y);%繪制網格 Z1=-X-Y;%三個平面的表達式 Z2=-X+Y; Z3=-X/3; hold on mesh(X,Y,Z1);%繪圖 mesh(X,Y,Z2); mesh(X,Y,Z3); hold off;

然后得到的結果:(使用的是按鈕:三位旋轉,畫圖出來之后,在菜單欄上有)

另外一個角度:

當然,也可以把mesh 替換為 surf()函數,這樣更逼真

接下來回顧一下 Cramer’s Method 的problem

其實,這個奇異矩陣(或者不可逆矩陣)在這種情況下也是。當一個矩陣的行列式很接近于零的時候,也稱為不可逆矩陣,這時候就不能用 Cramer’s method 來求解了

遇到 singular 的時候,想要另外處理

Functions to check matrix condition

兩個函數:
1)cond:matrix condition number 判斷矩陣是否健康,越小越健康(線性獨立性越好)
2)rank(): matrix rank 矩陣的秩

比較兩個矩陣:

如何看矩陣健不健康,需要Ax=b 這個原始公式,b已知,現在需要判斷矩陣A健不健康
做法是:讓A變化一點,看x變化多少,如果x變化很小,說明矩陣A很健康

用matlab看一下 兩個矩陣的健康程度:從理論上講,B矩陣比A健康
A=[1 2 3; 2 4.0001 6; 9 8 7];
cond(A)

B=[1 2 3; 2 5 6; 9 8 7];
cond(B)


可以看出來A矩陣是一個 ill-conditioned 的矩陣

【總結一下】
本文記錄了線性方程組的解法(二):逆矩陣的方法。
同時學習了一下singular矩陣(奇異矩陣)的知識。
會使用cond()函數判斷矩陣是否健康,使用rank()函數求得矩陣的秩(幾個線性獨立的向量)

總結

以上是生活随笔為你收集整理的台湾国立大学郭彦甫Matlab教程笔记(22) Cramer's method(Inverse matrix逆矩阵法)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。