用数学软件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,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。