matlab在科学计算中的应用4(姜志鹏)课件

上传人:我*** 文档编号:142103613 上传时间:2020-08-16 格式:PPT 页数:98 大小:1.20MB
返回 下载 相关 举报
matlab在科学计算中的应用4(姜志鹏)课件_第1页
第1页 / 共98页
matlab在科学计算中的应用4(姜志鹏)课件_第2页
第2页 / 共98页
matlab在科学计算中的应用4(姜志鹏)课件_第3页
第3页 / 共98页
matlab在科学计算中的应用4(姜志鹏)课件_第4页
第4页 / 共98页
matlab在科学计算中的应用4(姜志鹏)课件_第5页
第5页 / 共98页
点击查看更多>>
资源描述

《matlab在科学计算中的应用4(姜志鹏)课件》由会员分享,可在线阅读,更多相关《matlab在科学计算中的应用4(姜志鹏)课件(98页珍藏版)》请在金锄头文库上搜索。

1、1,第四章 线性代数问题求解,矩阵 线性方程组的直接解法 线性方程组的迭代法 线性方程组的符号解法 稀疏矩阵技术 特征值与特征向量,2,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),3,随机元素矩阵 若矩阵随机元素满足0,1区间上的均匀分布 生成nm阶标准均匀分布伪随机数矩阵: A=rand(n,m) 生成nn阶标准均匀分布伪随机

2、数方阵: A=rand(n),4,对角元素矩阵 已知向量生成对角矩阵: A=diag(V) 已知矩阵提取对角元素列向量: Vdiag(A) 生成主对角线上第k条对角线为V的矩阵: A=diag(V,k),5,例: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

3、 0 0 0,6,生成三对角矩阵: 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,7,Hilbert矩阵及逆Hilbert矩阵 生成n阶的Hilbert矩阵: A=hilb(n) 求取逆Hilbert矩阵: B=invhilb(n),8,Hankel(汉克 ) 矩阵 其中:第一列的各个元素定义为C向量,最后一行各个元素定义为R。H为对称阵。 H1=hankel(C) 由 Hankel 矩阵反对角线上元素相等得出一下三角阵均为零的Hankel 矩阵,9,Vandermonde(范德

4、蒙)矩阵,10,伴随矩阵 其中:P(s)为首项系数为1的多项式。,11,例:考虑一个多项式2*x4+4*x2+5*x+6,试写出该多项式的伴随矩阵。 P=2 0 4 5 6;A=compan(P) A = 0 -2.0000 -2.5000 -3.0000 1.0000 0 0 0 0 1.0000 0 0 0 0 1.0000 0,12,符号矩阵的输入 数值矩阵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/

5、2, 1/3 1/2, 1/3, 1/4 1/3, 1/4, 1/5,13,4.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,14,例: tic, A=sym(hilb(20); det(A), toc ans = 1/2377454716768534509091644243427616440175419837753486493033185331234419759310644585187585766816573773440565759867265

6、558971765638419710793303386582324149811241023554489166154717809635257797836800000000000000000000000000000000000 elapsed_time = 2.3140 高阶的Hilbert矩阵是接近奇异的矩阵。,15,矩阵的迹 格式: t=trace(A) 矩阵的秩 格式:r=rank(A) 用默认的精度求数值秩 r=rank(A, ) 给定精度下求数值秩 矩阵的秩也表示该矩阵中行列式不等于0的子式的最大阶次。可证行秩和列秩(线性无关的)应相等。,16,例 A=16 2 3 13; 5 11 1

7、0 8; 9 7 6 12; 4 14 15 1; rank(A) ans = 3 该矩阵的秩为3,小于矩阵的阶次,故为非满秩矩阵。 例 用数值方法和解析方法分别求2020的Hilbert矩阵的秩 H=hilb(20); rank(H) 数值方法 ans = 13 H=sym(hilb(20); rank(H) % 解析方法,原矩阵为非奇异矩阵 ans = 20,17,矩阵范数,18,矩阵的范数定义: 格式: N=norm(A) 求解默认的2范数 N=norm(A,选项) 选项可为1,2,inf等,19,例:求一向量、矩阵的范数 a=16 2 3 13; norm(a), norm(a,2),

8、 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 符号运算工具箱未提供norm( )函数,需先用double( )函数转换成双精度数值矩阵,再调用norm( )函数。,20,特征多项式 格式:

9、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+2720*x,21,矩阵多项式的求解,22,符号多项式与数值多项式的转换 格式: f=poly2sym(P) 或 f

10、=poly2sym(P,x) 格式: P=sym2poly(f),23,例: 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,24,矩阵的逆矩阵 格式: C=inv(A) 例:求Hilbert矩阵的逆矩阵 format long; H=hilb(4); H1=inv(H) H1 = 1.0e+003 * 0.01600000000000 -0.11999999999999 0.23999999999

11、998 -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,25,检验: H*H1 ans = 1.00000000000001 0.00000000000023 -0.0000000000004

12、5 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-eye(size(H) ans =

13、 5.684341886080802e-014,26, H=hilb(10); H1=inv(H); norm(H*H1-eye(size(H) ans = 0.00264500826202 H2=invhilb(10); norm(H*H2-eye(size(H) ans = 1.612897415528547e-005 H=hilb(13); H1=inv(H); norm(H*H1-eye(size(H) Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 2.3

14、39949e-018. ans = 53.23696008570294 H2=invhilb(13); norm(H*H2-eye(size(H) ans = 11.37062973181391 对接近于奇异矩阵,高阶一般不建议用inv( ),可用符号工具箱。,27, H=sym(hilb(7); inv(H) ans = 49, -1176, 8820, -29400, 48510, -38808, 12012 -1176, 37632, -317520, 1128960, -1940400, 1596672, -504504 8820, -317520, 2857680, -1058400

15、0, 18711000, -15717240, 5045040 -29400, 1128960, -10584000, 40320000, -72765000, 62092800, -20180160 48510, -1940400, 18711000, -72765000, 133402500, -115259760, 37837800 -38808, 1596672, -15717240, 62092800, -115259760, 100590336, -33297264 12012, -504504, 5045040, -20180160, 37837800, -33297264, 1

16、1099088 H=sym(hilb(30); norm(double(H*inv(H)-eye(size(H) ans = 0,28,例:奇异阵求逆 A=16 2 3 13; 5 11 10 8; 9 7 6 12; 4 14 15 1; format long; B = inv(A) Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 1.306145e-017. B = 1.0e+014 * 0.93824992236885 2.81474976710656 -2.

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号