第五章求解线性方程组 矩阵 直接解法 迭代法 符号解法 稀疏矩阵技术 特征值与特征向量
第五章 求解线性方程组 • 矩阵 • 直接解法 • 迭代法 • 符号解法 • 稀疏矩阵技术 • 特征值与特征向量
5.1矩阵 5.1.1特殊矩阵的输入 数值矩阵的输入 零矩阵、幺矩阵及单位矩阵 生成nxn方阵: A-Zeros(n), B-ones(n), C=eye(n) 生成mxn矩阵: A=zeros(m, n), B=ones(m, n), C=eye(m, n 生成和矩阵B同样位数的矩阵: A=zeros(size(b))
5.1 矩阵 5.1.1特殊矩阵的输入 • 数值矩阵的输入 –零矩阵、幺矩阵及单位矩阵 生成nn方阵: A=zeros(n), B=ones(n), C=eye(n) 生成mn矩阵: A=zeros(m,n), B=ones(m,n), C=eye(m,n) 生成和矩阵B同样位数的矩阵: A=zeros(size(B))
随机元素矩阵 若矩阵随机元素满足[0,1区间上的均匀分布 生成nxm阶标准均匀分布为随机数矩阵: Arand(n, m 生成nxn阶标准均匀分布为随机数方阵: A=rand(n)
–随机元素矩阵 若矩阵随机元素满足[0,1]区间上的均匀分布 生成nm阶标准均匀分布为随机数矩阵: A=rand(n,m) 生成nn阶标准均匀分布为随机数方阵: A=rand(n)
对角元素矩阵 diag(a1,Q2,…,an) 已知向量生成对角矩阵: A=diag(v 已知矩阵提取对角元素列向量: v=diag(a) 生成主对角线上第k条对角线为V的矩阵: A-diag(v, k)
–对角元素矩阵 已知向量生成对角矩阵: A=diag(V) 已知矩阵提取对角元素列向量: V=diag(A) 生成主对角线上第k条对角线为V的矩阵: A=diag(V,k)
例:dag()函数的不同调用格式 C=[123];V=diag(C)%生成对角矩阵 100 020 003 >>Vl=diag(V)%将列向量通过转置变换成行向量 V1= C=[123];V=diag(C,2)%主对角线上第k条对角线为C的矩阵 00 00 00020 00003 00000 00000
• 例:diag( )函数的不同调用格式 >> C=[1 2 3]; V=diag(C) % 生成对角矩阵 V = 1 0 0 0 2 0 0 0 3 >> V1=diag(V)' % 将列向量通过转置变换成行向量 V1 = 1 2 3 >> C=[1 2 3]; V=diag(C,2) % 主对角线上第 k条对角线为C的矩阵 V = 0 0 1 0 0 0 0 0 2 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0
200 生成三对角矩阵:v=5230 0434 0034 V=diag([1234])+diag(234],1)+diag([543]-1) 1200 5230 0434 003
生成三对角矩阵: >> V=diag([1 2 3 4])+diag([2 3 4],1)+diag([5 4 3],-1) V = 1 2 0 0 5 2 3 0 0 4 3 4 0 0 3 4
Hi1bert矩阵及逆 Hilbert矩阵 1/3 1/n 121/3 1/(n+1) 1/n1/(n+1)1/(n+2) 1/(2n-1) 第(i,j)元素的值满足h;,;=1/(i+ 生成n阶的 Hilbert矩阵 A-hilb(n) 求取逆 Hilbert矩阵 B=invhilb(
–Hilbert矩阵及逆Hilbert矩阵 生成n阶的Hilbert矩阵: A=hilb(n) 求取逆Hilbert矩阵: B=invhilb(n)
符号矩阵的输入 数值矩阵A转换成符号矩阵: B-SyS(A 例 >>A=hlb(3) A 1.00000.50000.3333 0.50000.33330.2500 0.33330.25000.2000 >>B=-sym(A) B 1,12,1/3] [1/2,1/3,1/4 [1/3,14,1/5]
• 符号矩阵的输入 数值矩阵A转换成符号矩阵: B=sys(A) 例: >> A=hilb(3) A = 1.0000 0.5000 0.3333 0.5000 0.3333 0.2500 0.3333 0.2500 0.2000 >> B=sym(A) B = [ 1, 1/2, 1/3] [ 1/2, 1/3, 1/4] [ 1/3, 1/4, 1/5]
5.1.2矩阵基本概念与性质 行列式 矩阵A={a}的行列式定义为: D=A|=deA)=∑(-1)a1k1a2k2…ankn 格式:d=det(A) 16 313 例:求行列式 A4/5 11108 97612 414151 A=[162313,511108;97612;414151;det(A) ans
5.1.2 矩阵基本概念与性质 • 行列式 格式 :d=det(A) 例:求行列式 >> A=[16 2 3 13; 5 11 10 8; 9 7 6 12; 4 14 15 1]; det(A) ans = 0
例:用解析解方法计算出20×20的 Hilbert矩阵的 行列式 > tic, A=sym(hilb(20)); det(a),toc ans≡ 1/23774547167685345090916442434276164401754 1983775348649303318533123441975931064458 5187585766816573773440565759867265558971 7656384197107933033865823241498112410235 5448916615471780963525779783680000000000 0000000000000000000000000 elapsed time 2.3140 高阶的 Hilbert矩阵是接近奇异的矩阵
• 例: >> tic, A=sym(hilb(20)); det(A), toc ans = 1/23774547167685345090916442434276164401754 1983775348649303318533123441975931064458 5187585766816573773440565759867265558971 7656384197107933033865823241498112410235 5448916615471780963525779783680000000000 0000000000000000000000000 elapsed_time = 2.3140 高阶的Hilbert矩阵是接近奇异的矩阵