第4章线性代数问题求解



《第4章线性代数问题求解》由会员分享,可在线阅读,更多相关《第4章线性代数问题求解(94页珍藏版)》请在文档大全上搜索。
1、第四章 线性代数问题求解 矩阵 线性方程组的直接解法 线性方程组的迭代法 线性方程组的符号解法 稀疏矩阵技术 特征值与特征向量4.1 矩阵4.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区间上的均匀分布 生成nm阶标准均匀分布为随机数矩阵: A=rand(n,m) 生成nn阶标准均匀分布为随机数方阵: A=ra
2、nd(n)对角元素矩阵 已知向量生成对角矩阵: A=diag(V) 已知矩阵提取对角元素列向量: Vdiag(A) 生成主对角线上第k条对角线为V的矩阵: A=diag(V,k) 例: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生成三对角矩阵: V
3、=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 4Hilbert矩阵及逆Hilbert矩阵 生成n阶的Hilbert矩阵: A=hilb(n) 求取逆Hilbert矩阵: B=invhilb(n)Hankel(汉克 ) 矩阵 其中:第一列的各个元素定义为C向量,最后一行各个元素定义为R。H为对称阵。 H1=hankel(C) 由 Hankel 矩阵反对角线上元素相等得出一下三角阵均为零的Hankel 矩阵Vandermonde(范德蒙)矩阵 伴随矩阵其中:P(s)为首项系数为一的多向式。
4、符号矩阵的输入 数值矩阵A转换成符号矩阵: B=sym(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/54.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 例: tic, A=sym(hilb(20); det(A), toc ans =
5、1/2377454716768534509091644243427616440175419837753486493033185331234419759310644585187585766816573773440565759867265558971765638419710793303386582324149811241023554489166154717809635257797836800000000000000000000000000000000000elapsed_time = 2.3140高阶的Hilbert矩阵是接近奇异的矩阵。 矩阵的迹 格式: t=trace(A) 矩阵的秩格式:r=
6、rank(A) 用默认的精度求数值秩 r=rank(A, ) 给定精度下求数值秩 矩阵的秩也表示该矩阵中行列式不等于0的子式的最大阶次。可证行秩和列秩(线性无关的)应相等。 例 A=16 2 3 13; 5 11 10 8; 9 7 6 12; 4 14 15 1; rank(A)ans = 3该矩阵的秩为3,小于矩阵的阶次,故为非满秩矩阵。 例 H=hilb(20); rank(H) 数值方法ans = 13 H=sym(hilb(20); rank(H) % 解析方法,原矩阵为非奇异矩阵ans = 20 矩阵范数 矩阵的范数定义:格式: N=norm(A) 求解默认的2范数 N=norm(
7、A,选项) 选项可为1,2,inf等 例:求一向量、矩阵的范数 a=16 2 3 13; norm(a), norm(a,2), norm(a,1), norm(a,Inf)ans = 2.092844953645635e+001 2.092844953645635e+001 3.400000000000000e+001 1.600000000000000e+001 A=16 2 3 13; 5 11 10 8; 9 7 6 12; 4 14 15 1; norm(A), norm(A,2), norm(A,1), norm(A,Inf)ans = 34 34 34 34 符号运算工具箱未提供
8、norm( )函数,需先用double( )函数转换成双精度数值矩阵,再调用norm( )函数。 特征多项式格式: C=poly(A)例: A=16 2 3 13; 5 11 10 8; 9 7 6 12; 4 14 15 1; poly(A) 直接求取ans =1.000000000000000e+000 -3.399999999999999e+001 -7.999999999999986e+001 2.719999999999999e+003 -2.819840539024018e-012 A=sym(A); poly(A) 运用符号工具箱 ans = x4-34*x3-80*x2+272
9、0*x 矩阵多项式的求解 符号多项式与数值多项式的转换格式: f=poly2sym(P) 或 f=poly2sym(P,x) 格式: P=sym2poly(f) 例: P=1 2 3 4 5 6; % 先由系数按降幂顺序排列表示多项式 f=poly2sym(P,v) % 以 v 为算子表示多项式 f = v5+2*v4+3*v3+4*v2+5*v+6 P=sym2poly(f)P = 1 2 3 4 5 6 矩阵的逆矩阵格式: C=inv(A)例: format long; H=hilb(4); H1=inv(H)H1 = 1.0e+003 * 0.01600000000000 -0.1199
10、9999999999 0.23999999999998 -0.13999999999999 -0.11999999999999 1.19999999999990 -2.69999999999976 1.67999999999984 0.23999999999998 -2.69999999999976 6.47999999999940 -4.19999999999961 -0.13999999999999 1.67999999999984 -4.19999999999961 2.79999999999974检验: H*H1ans = 1.00000000000001 0.000000000000
11、23 -0.00000000000045 0.00000000000023 0.00000000000001 1.00000000000011 -0.00000000000011 0.00000000000011 0.00000000000001 0 1.00000000000011 0 0.00000000000000 0.00000000000011 -0.00000000000011 1.00000000000011计算误差范数: norm(H*inv(H)-eye(size(H)ans = 6.235798190375727e-013 H2=invhilb(4); norm(H*H2-