首页 用数学软件Maple做线性代数(2013.5.15)

用数学软件Maple做线性代数(2013.5.15)

举报
开通vip

用数学软件Maple做线性代数(2013.5.15)用数学软件Maple做线性代数 作者:徐小湛 四川大学数学学院 xuxzmail@163.com 目 录 前言 第一章 行列式 行列式 克拉默法则 第二章 矩阵及其运算 矩阵的线性运算 矩阵的乘法 矩阵的转置 逆矩阵 矩阵方程 第三章 矩阵的初等变换与线性方程组 矩阵的行最简形 矩阵的秩 齐次线性方程组 基础解系 非齐次线性方程组 求通解 用Solve求线性方程组的解 第四章 向量组的线性相关性 向量的线性表示 极大无关组 第五章 相似矩阵及二次型 正交矩阵 ...

用数学软件Maple做线性代数(2013.5.15)
用数学软件Maple做线性代数 作者:徐小湛 四川大学数学学院 xuxzmail@163.com 目 录 前言 第一章 行列式 行列式 克拉默法则 第二章 矩阵及其运算 矩阵的线性运算 矩阵的乘法 矩阵的转置 逆矩阵 矩阵方程 第三章 矩阵的初等变换与线性方程组 矩阵的行最简形 矩阵的秩 齐次线性方程组 基础解系 非齐次线性方程组 求通解 用Solve求线性方程组的解 第四章 向量组的线性相关性 向量的线性表示 极大无关组 第五章 相似矩阵及二次型 正交矩阵 矩阵的特征值 矩阵的特征向量 矩阵的对角化 二次型的标准化 补充:向量 参考文献 前 言 Maple是著名的数学软件,具有强大的的数学运算能力和绘图功能。 本文档用Maple来进行线性代数中的各种运算。 本文档中所有的例子都是用Maple 8编程和计算的。 如有对本文档中的内容任何问题,请发邮件与作者讨论。 邮箱:xuxzmail@163.com 2012-5-11 返回目录 第一章 行列式 行列式 det(A) 例 计算三阶行列式 (同济5版,3页) 输入: with(linalg): A:=matrix([[1,2,-4],[-2,2,1],[-3,4,-2]]); detA:=det(A); 输出: 例 计算四阶行列式 (同济5版,12页) 输入: with(linalg): A:=matrix([[3,1,-1,2],[-5,1,3,-4],[2,0,1,-1],[1,-5,3,-3]]); detA:=det(A); 输出:, 例 求解方程 (同济5版,3页) 输入: with(linalg): A:=array([[1,1,1],[2,3,x],[4,9,x^2]]); solve(det(A)=0,x); 输出: 例 计算行列式 (同济5版,13页) 输入: with(linalg): A:=array([[a,b,c,d],[a,a+b,a+b+c,a+b+c+d],[a,2*a+b,3*a+2*b+c,4*a+3*b+2*c+d],[a,3*a+b,6*a+3*b+c,10*a+6*b+3*c+d]]); DetA:=det(A); 输出:,, 例 计算行列式 (同济5版,15页) 输入: with(linalg): A:=array([[a,0,0,0,0,b],[0,a,0,0,b,0],[0,0,a,b,0,0],[0,0,c,d,0,0],[0,c,0,0,d,0],[c,0,0,0,0,d]]); DetA:=det(A); 输出:, 返回目录 克拉默法则 例 用克拉默法则解线性方程组: (同济5版,22页) 输入: with(linalg): A:=array([[2,1,-5,1],[1,-3,0,-6],[0,2,-1,2],[1,4,-7,6]]); b:=array([8,9,-5,0]); A1:=augment(b,col(A,2),col(A,3),col(A,4)); A2:=augment(col(A,1),b,col(A,3),col(A,4)); A3:=augment(col(A,1),col(A,2),b,col(A,4)); A4:=augment(col(A,1),col(A,2),col(A,3),b); x1:=det(A1)/det(A); x2:=det(A2)/det(A); x3:=det(A3)/det(A); x4:=det(A4)/det(A); 输出: 方程组的解: 返回目录 第二章 矩阵及其运算 矩阵的线性运算 matadd(A,B) 或 evalm(A+B); k*B 例 设 , ,求 和 输入: with(linalg): A:=array([[2,5,-2],[0,7,-8]]); B:=array([[-3,9,12],[-4,1,8]]); matadd(A,B); evalm(A+B); matadd(4*A,3*B); evalm(4*A+3*B); 输出: 返回目录 矩阵的乘法 multiply(A,B) 或 evalm(A&*B) 例 设 , ,求 输入: with(linalg): A:=array([[1,0,3,-1],[2,1,0,2]]); B:=array([[4,1,0],[-1,1,3],[2,0,1],[1,3,4]]); AB:=multiply(A,B); AB:=evalm(A&*B); 结果:,, 例 设 , ,求 和 (同济5版,35页) 输入: with(linalg): A:=array([[-2,4],[1,-2]]); B:=array([[2,4],[-3,-6]]); AB:=multiply(A,B); BA:=multiply(B,A); 结果:, , , 例 证明: (同济5版,38页) 解 取n=7 输入 with(linalg): A:=array([[cos(t),-sin(t)],[sin(t),cos(t)]]); evalm(A^7); map(combine,%); 结果: 化简的结果: 返回目录 矩阵的转置 transpose(A) 例 设 ,求其转置矩阵 (同济5版,39页) 输入: with(linalg): A:=array([[1,2,0],[3,-1,1]]); B:=transpose(A); 结果: 原矩阵: 转置矩阵: 例 设 , ,求 ,并验证: (同济5版,39页) 输入 with(linalg): A:=array([[2,0,-1],[1,3,2]]); B:=array([[1,7,-1],[4,2,3],[2,0,1]]); transpose(multiply(A,B)); multiply(transpose(B),transpose(A)); 结果:, 这是 这是 可见: 返回目录 逆矩阵 inverse(A) 或 evalm(A^(-1)) 例 设 ,求其逆矩阵 ,并验证 (单位矩阵) (同济5版,44页) 输入: with(linalg): A:=array([[1,2,3],[2,2,1],[3,4,3]]); B:=inverse(A); C:=evalm(A^(-1)); AB:=multiply(A,B); CA:=multiply(C,A); 结果: , 逆矩阵: 验证 :, 返回目录 矩阵方程 例 设 , , ,且 ,求矩阵 (同济5版,45页) 解 输入 with(linalg): A:=array([[1,2,3],[2,2,1],[3,4,3]]); B:=array([[2,1],[5,3]]); C:=array([[1,3],[2,0],[3,1]]); X:=multiply(inverse(A),C,inverse(B)); 结果:,,, 例 设 , ,求解矩阵方程 (同济5版,65页) 解 输入 with(linalg): A:=array([[2,1,-3],[1,2,-2],[-1,3,2]]); B:=array([[1,-1],[2,0],[-2,5]]); X:=multiply(inverse(A),B); 结果:,, 返回目录 第三章 矩阵的初等变换与线性方程组 矩阵的行最简形和标准型 阶梯形: gausselim(A) 行最简形:gaussjord(A) 或 rref(A), 例 设 ,求B的阶梯形和秩(同济5版,59页) 输入: with(linalg): B:=array([[2,-1,-1,1,2],[1,1,-2,1,4],[4,-6,2,-2,4],[3,6,-9,7,9]]); GL:=gausselim(B); 输出: 阶梯形: 阶梯形有一行全为零,矩阵的秩为3。 例 设 ,求 的阶梯形。(同济5版,64页) 输入: with(linalg): A:=array([[2,-1,-1],[1,1,-2],[4,-6,2]]); GL:=gausselim(A); 结果: 阶梯形: 例 设 ,求B的行最简形。 输入: with(linalg): B:=array([[2,-1,-1,1,2],[1,1,-2,1,4],[4,-6,2,-2,4],[3,6,-9,7,9]]); GJ:=gaussjord(B); RR:=rref(B); 结果: 原矩阵的行最简形:, 返回目录 矩阵的秩 rank(A) 例 设 ,求 的秩,并求 的一个最高阶非零子式 (同济5版,67页) 输入: with(linalg): A:=array([[3,2,0,5,0],[3,-2,3,6,-1],[2,0,1,5,-3],[1,6,-4,-1,4]]); rank:=rank(A); 结果: 为求 的一个最高阶非零子式,求 的阶梯形,输入: with(linalg): A:=array([[3,2,0,5,0],[3,-2,3,6,-1],[2,0,1,5,-3],[1,6,-4,-1,4]]); GJ:=gausselim(A); 结果: 由阶梯形中三个非零首元的位置,知原矩阵的前三行以及1、2、4列的子式不为零。 返回目录 齐次线性方程组 例 求齐次线性方程组: 的基础解系与通解(同济5版,97页) 解 先将系数矩阵化为行最简形。 输入: with(linalg): A:=array([[1,1,-1,-1],[2,-5,3,2],[7,-7,3,1]]); GJ:=gaussjord(A); 或 sol:=rref(A); 得A的行标准型: 由A的行最简形可知,原方程组化为: 或 或 方程组的通解: 或 (x3,x4为自由变量) 其中 是方程组的基础解系。 用linearsolve(A,0)可以得到齐次线性方程组 的通解。 with(linalg): A:=array([[1,1,-1,-1],[2,-5,3,2],[7,-7,3,1]]); b:=vector([0,0,0]); linsolve(A,b,'r',c); 得: 通解: (x2,x3为自由变量) 先化成行最简形,再解方程: with(linalg): A:=array([[1,1,-1,-1],[2,-5,3,2],[7,-7,3,1]]); b:=vector([0,0,0]); GJ:=gaussjord(A); linsolve(GJ,b,'r',c); 通解: (x1,x2为自由变量) 返回目录 基础解系 nullspace(A) 例 求齐次线性方程组: 的基础解系与通解(同济5版,97页) 输入 with(linalg): A:=array(1..3,1..4,[[1,1,-1,-1],[2,-5,3,2],[7,-7,3,1]]); NS:=nullspace(A); 得到基础解系: (这个基础解系不理想:x2,x3 为自由变量) 现将A先化为行最简形,再用NullSpace求基础解系: 输入 A:=array(1..3,1..4,[[1,1,-1,-1],[2,-5,3,2],[7,-7,3,1]]); GJ:=gaussjord(A); NS:=nullspace(GJ); 得到A的行最简型: 得到基础解系: (这个基础解系还是不理想:x1,x2 为自由变量) 返回目录 非齐次线性方程组 例 求线性方程组: 的通解(同济5版,101页) 解 先将增广矩阵化为行最简形。 输入: with(linalg): A:=array([[1,-1,-1,1,0],[1,-1,1,-3,1],[1,-1,-2,3,-1/2]]); GJ:=gaussjord(A); 得增广矩阵的行最简形: 由增广矩阵的行最简形可知,原方程组化为: 或 或 原方程组的通解: 或 (x2,x4 为自由变量) 其中 是对应其次方程组的基础解系, 是原方程组的一个特解。 返回目录 求通解 linearsolve(A,b) 用linearsolve(A,b)可以得到非其次线性方程组 的通解。 例 求线性方程组: 的通解(同济5版,101页) 输入: with(linalg): A:=array([[1,-1,-1,1],[1,-1,1,-3],[1,-1,-2,3]]); b:=vector([0,1,-1/2]); linsolve(A,b,'r',c); 得到以上非其次线性方程组的通解: 通解: (x2,x4 为自由变量) (结果同上) 用solve求线性方程组的解 例 求线性方程组: 的通解(同济5版,101页) 输入: with(linalg): solve({x1-x2-x3+x4=0,x1-x2+x3-3*x4=1,x1-x2-2*x3+3*x4=-1/2},{x1,x2,x3,x4}); 输出: 即 (与前一方法的结果一致) 返回目录 第四章 向量组的线性相关性 向量的线性表示 例 设 ,试将 表示成 的线性组合(同济5版,84页) 解 只需将矩阵 化为行最简形。 输入: with(linalg): A=array([[1,1,1,1],[1,2,-1,0],[2,1,4,3],[2,3,0,1]]); GJ:=gaussjord(A); 得A的行标准型: 容易看出:行标准型的第四列可以表示成第一列的2倍,加上第二列的-1倍 于是A的第四列也可以表示成第一列的2倍,加上第三列的-1倍, 即: 返回目录 极大无关组 例 设 ,求 的列向量组的一个极大无关组(同济5版,93页) 解 用初等行变换得到A的行最简形,则由行最简形可以看出A列向量组的极大无关组。 输入: with(linalg): A:=array([[2,-1,-1,1,2],[1,1,-2,1,4],[4,-6,2,-2,4],[3,6,-9,7,9]]); GJ:=gaussjord(A); 输出A的行最简形: 由此可知,A的1、2、4列构成A的列向量组的极大无关组。 返回目录 第五章 相似矩阵及二次型 正交矩阵 例 验证 是正交矩阵(同济5版,116页) 解 只需验证 (单位矩阵) 输入: with(linalg): A:=array([[1/2,0-1/2,1/2,-1/2],[1/2,-1/2,-1/2,1/2],[1/sqrt(2),1/sqrt(2),0,0],[0,0,1/sqrt(2),1/sqrt(2)]]); evalm(A&*transpose(A)); 输出: 验证了: 也可以用 orthog(A) 验证: with(linalg); A:=array([[1/2,0-1/2,1/2,-1/2],[1/2,-1/2,-1/2,1/2],[1/sqrt(2),1/sqrt(2),0,0],[0,0,1/sqrt(2),1/sqrt(2)]]); orthog(A); 返回目录 矩阵的特征多项式 charpoly(A,x) 矩阵的特征值 eigenvals(A) 矩阵的特征向量 eigenvects(A) 例 求矩阵 的特征多项式、特征值和特征向量(同济5版,118页) 输入: with(linalg): A:=array([[3,-1],[-1,3]]); Charpoly:=charpoly(A,x); Eigenvalues:=eigenvals(A); Eigenvectors:=eigenvects(A); 结果: (第一个数是特征值,第二个数是重数,然后是特征向量) 例 求矩阵 的特征多项式、特征值和特征向量(同济5版,118页) 输入: with(linalg): A:=array([[-1,1,0],[-4,3,0],[1,0,2]]); Charpoly:=charpoly(A,x); Eigenvalues:=eigenvals(A); Eigenvectors:=eigenvects(A); 结果: 例 求矩阵 的特征值和特征向量(同济5版,119页) 输入: with(linalg): A:=array([[-2,1,1],[0,2,0],[-4,1,3]]); Charpoly:=charpoly(A,x); Eigenvalues:=eigenvals(A); Eigenvectors:=eigenvects(A); 结果: 返回目录 矩阵的对角化 Maple的施密特正交化的命令是:GramSchmidt 例 设 ,求矩阵 ,使得 为对角阵,并验证结果 (同济5版,125页) 输入: with(linalg): A:=array([[0,-1,1],[-1,0,1],[1,1,0]]); eigenvals(A); eigenvectors(A); u1:= vector([-1,-1,1]); u2:= vector([-1,1,0]); u3:= vector([1,0,1]); Q:=GramSchmidt([u1,u2,u3],normalized); P:=augment(Q[1],Q[2],Q[3]);P:=simplify(%);det(%); evalm(P^(-1)&*A&*P); 结果: ( 为对角阵,对角线元素为三个特征值) 例 设 ,求正交矩阵 ,使得 为对角阵,并求 (同济5版,126页) n:=10: with(linalg): A:=array([[2,-1],[-1,2]]); eigenvals(A); eigenvectors(A); u1:= vector([1,1]); u2:= vector([1,-1]); Q:=GramSchmidt([u1,u2], normalized); P:=augment(Q[1],Q[2]); S:=evalm(P^(-1)&*A&*P); T:=evalm(P&*S&*P^(-1)); multiply(P,evalm(S^n),P^(-1)); 例 设 ,求正交矩阵 ,使得 为对角阵,并验证结果。 输入: with(linalg): A:=array([[0,-2,2],[-2,-3,4],[2,4,-3]]); eigenvals(A); eigenvectors(A); u1:= vector([2,0,1]); u2:= vector([-2,1,0]); u3:= vector([-1/2,-1,1]); Q:=GramSchmidt([u1,u2,u3],normalized); P:=augment(Q[1],Q[2],Q[3]);P:=simplify(%);det(%); evalm(P^(-1)&*A&*P); 输出: > 返回目录 二次型的标准化 例 求一个正交变换 ,将下列二次型化为标准形: (同济4版,140页) 解 其中 现在求一个正交矩阵 ,使得 为对角阵。 输入 with(linalg): A:=array([[1,1,0,-1],[1,1,-1,0],[0,-1,1,1],[-1,0,1,1]]); eigenvals(A); eigenvectors(A); u1:= vector([-1,-1,1,1]); u2:= vector([1,-1,-1,1]); u3:= vector([1,0,1,0]); u4:= vector([0,1,0,1]); Q:=GramSchmidt([u1,u2,u3,u4],normalized); P:=augment(Q[1],Q[2],Q[3],Q[4]);det(%); evalm(P^(-1)&*A&*P); ,则原二次型化为 返回目录 补充:向量 with(linalg): v:=array([1,2,3]); #定义向量# u:=array([3,2,-1]); evalm(v+u);#和# evalm(k*u);#数乘# norm(u,2);#模# evalm(u/norm(u,2));#单位化# normalize(u); #单位化# dotprod(u,v); #点积# crossprod(u,v); #叉积# 返回目录 参考文献 同济大学:《线性代数》(第4版、第5版) 刘辉、李海:《Maple符号处理及其应用》 PAGE 32 _1345059508.unknown _1345104084.unknown _1345106769.unknown _1345131355.unknown _1345132006.unknown _1429946059.unknown _1429947786.unknown _1429949341.unknown _1429946119.unknown _1429902269.unknown _1345131544.unknown _1345131615.unknown _1345131524.unknown _1345126313.unknown _1345127522.unknown _1345127598.unknown _1345128247.unknown _1345127555.unknown _1345127074.unknown _1345106788.unknown _1345105889.unknown _1345106428.unknown _1345106711.unknown _1345106194.unknown _1345105243.unknown _1345105411.unknown _1345104821.unknown _1345102273.unknown _1345102832.unknown _1345103218.unknown _1345103289.unknown _1345102937.unknown _1345103148.unknown _1345102637.unknown _1345102828.unknown _1345102375.unknown _1345101929.unknown _1345102054.unknown _1345102122.unknown _1345101982.unknown _1345101840.unknown _1345100772.unknown _1345101328.unknown _1345059600.unknown _1345100558.unknown _1345055433.unknown _1345058243.unknown _1345058700.unknown _1345059269.unknown _1345059292.unknown _1345058759.unknown _1345058611.unknown _1345058644.unknown _1345058595.unknown _1345058287.unknown _1345056295.unknown _1345056515.unknown _1345056972.unknown _1345056311.unknown _1345055987.unknown _1345056214.unknown _1345055867.unknown _1345055686.unknown _1345055837.unknown _1345042456.unknown _1345054240.unknown _1345055077.unknown _1345055379.unknown _1345055410.unknown _1345055329.unknown _1345054495.unknown _1345055022.unknown _1345054260.unknown _1345042500.unknown _1345054173.unknown _1345054215.unknown _1345042772.unknown _1345042884.unknown _1345042490.unknown _1345038848.unknown _1345041107.unknown _1345042410.unknown _1345039877.unknown _1345038053.unknown _1345038320.unknown _1345037945.unknown
本文档为【用数学软件Maple做线性代数(2013.5.15)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_353638
暂无简介~
格式:doc
大小:577KB
软件:Word
页数:31
分类:其他高等教育
上传时间:2013-05-24
浏览量:237