我知道的Matlab解矩陣方法有:
A=[1 6 9;6 5 2;8 3 4]
b=[2;4;7]
1)x=inv(A)*b 【就是你用的方法】
2)x=A\b
3)x=A^(-1)*b
4)C=[A,b]
rref(C)
試試吧,也許好使。
還有一個網址,下載一些經典程式,如:
gmres_m.rar-gmres演算法的一個特殊形式,用來求解大型稀疏矩陣方程,matlab
GMres.rar-數值演算法中另一個經典演算法gmres演算法,用來求解大型矩陣方程問題。,matlab
arnoldi.rar-數值分析中經典的arnoldi演算法,用來求解大型矩陣方程組的求解,matlab
http://www.programsalon.com/sitemap/sitemap153_1450.htm
補充:
2.利用矩陣的LU、QR和cholesky分解求方程組的解
(1)LU分解:
LU分解又稱Gauss消去分解,可把任意方陣分解為下三角矩陣的基本變換形式(行交換)和上三角矩陣的乘積。即A=LU,L為下三角陣,U為上三角陣。
則:A*X=b 變成L*U*X=b
所以X=U\(L\b) 這樣可以大大提高運算速度。
命令 [L,U]=lu (A)
例1-78 求方程組 的一個特解。
解:
>>A=[4 2 -1;3 -1 2;11 3 0];
>>B=[2 10 8]";
>>D=det(A)
>>[L,U]=lu(A)
>>X=U\(L\B)
顯示結果如下:
D =
0
L =
0.3636 -0.5000 1.0000
0.2727 1.0000 0
1.0000 0 0
U =
11.0000 3.0000 0
0 -1.8182 2.0000
0 0 0.0000
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 2.018587e-017.
> In D:\Matlab\pujun\lx0720.m at line 4
X =
1.0e+016 *
-0.4053
1.4862
1.3511
說明 結果中的警告是由於係數行列式為零產生的。可以透過A*X驗證其正確性。
(2)Cholesky分解
若A為對稱正定矩陣,則Cholesky分解可將矩陣A分解成上三角矩陣和其轉置的乘積,即: 其中R為上三角陣。
方程 A*X=b 變成
所以
(3)QR分解
對於任何長方矩陣A,都可以進行QR分解,其中Q為正交矩陣,R為上三角矩陣的初等變換形式,即:A=QR
方程 A*X=b 變形成 QRX=b
所以 X=R\(Q\b)
上例中 [Q, R]=qr(A)
X=R\(Q\B)
說明 這三種分解,在求解大型方程組時很有用。其優點是運算速度快、可以節省磁碟空間、節省記憶體。
我知道的Matlab解矩陣方法有:
A=[1 6 9;6 5 2;8 3 4]
b=[2;4;7]
1)x=inv(A)*b 【就是你用的方法】
2)x=A\b
3)x=A^(-1)*b
4)C=[A,b]
rref(C)
試試吧,也許好使。
還有一個網址,下載一些經典程式,如:
gmres_m.rar-gmres演算法的一個特殊形式,用來求解大型稀疏矩陣方程,matlab
GMres.rar-數值演算法中另一個經典演算法gmres演算法,用來求解大型矩陣方程問題。,matlab
arnoldi.rar-數值分析中經典的arnoldi演算法,用來求解大型矩陣方程組的求解,matlab
http://www.programsalon.com/sitemap/sitemap153_1450.htm
補充:
2.利用矩陣的LU、QR和cholesky分解求方程組的解
(1)LU分解:
LU分解又稱Gauss消去分解,可把任意方陣分解為下三角矩陣的基本變換形式(行交換)和上三角矩陣的乘積。即A=LU,L為下三角陣,U為上三角陣。
則:A*X=b 變成L*U*X=b
所以X=U\(L\b) 這樣可以大大提高運算速度。
命令 [L,U]=lu (A)
例1-78 求方程組 的一個特解。
解:
>>A=[4 2 -1;3 -1 2;11 3 0];
>>B=[2 10 8]";
>>D=det(A)
>>[L,U]=lu(A)
>>X=U\(L\B)
顯示結果如下:
D =
0
L =
0.3636 -0.5000 1.0000
0.2727 1.0000 0
1.0000 0 0
U =
11.0000 3.0000 0
0 -1.8182 2.0000
0 0 0.0000
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 2.018587e-017.
> In D:\Matlab\pujun\lx0720.m at line 4
X =
1.0e+016 *
-0.4053
1.4862
1.3511
說明 結果中的警告是由於係數行列式為零產生的。可以透過A*X驗證其正確性。
(2)Cholesky分解
若A為對稱正定矩陣,則Cholesky分解可將矩陣A分解成上三角矩陣和其轉置的乘積,即: 其中R為上三角陣。
方程 A*X=b 變成
所以
(3)QR分解
對於任何長方矩陣A,都可以進行QR分解,其中Q為正交矩陣,R為上三角矩陣的初等變換形式,即:A=QR
方程 A*X=b 變形成 QRX=b
所以 X=R\(Q\b)
上例中 [Q, R]=qr(A)
X=R\(Q\B)
說明 這三種分解,在求解大型方程組時很有用。其優點是運算速度快、可以節省磁碟空間、節省記憶體。