Solution of 第⼆节课习题 (macOS 平台)
张吉祥
2018 年 3 ⽉ 7 ⽇
1 习题说明
2 熟悉 Eigen 矩阵运算
1. 当 A 为⾮奇异矩阵时,亦即 det A = 0 时,x 有解且唯⼀。
2. ⾼斯消元法原理:先把⽅程组 Ax = b 通过消元法变换,等价为上三⾓⽅程组,再回代求
出 x。
3. QR 分解原理:A = QR,式中 Q 为正交矩阵,R 为上三⾓矩阵。故 Ax = b ⇒ QRx = b ⇒
Rx = Q
T
b,再回代求出 x。
4. Cholesky 分解原理:A 为对称阵 (A = A
T
) 时,分解为 A = LL
T
,式中 L 为下三⾓矩阵。
先求解⽅程 Ly = b 得出 y,再求解⽅程 L
T
x = y 得出 x,x 即为原⽅程 Ax = b 的解,此
⽅法又称为平⽅根法。
5. 程序:
1 #include <i ostre am>
2 #include <Eigen / Core>
3 #include <Eigen / Dense>
4 using namespace std ;
5
6 #define MATRIX_SIZE 100
7
8 in t main ( int argc , char** argv )
9 {
10 // 构 造 动 态 ⼤ ⼩ 的 对 称 矩 阵 和 向 量
11 Eigen : : MatrixXd matrix_A ;
12 matrix_A = Eigen : : MatrixXd : : Random(MATRIX_SIZE, MATRIX_SIZE) ;
13 matrix_A = matrix_A . t r a n s p o s e ( ) * matrix_A ;
1
评论0