空灵学院

 找回密码
 立即注册

扫一扫,访问微社区

搜索
查看: 1841|回复: 0

Maple之线性代数

[复制链接]

1137

主题

1761

帖子

7558

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7558
发表于 2014-1-14 15:58:24 | 显示全部楼层 |阅读模式
with(linalg)调入线性代数系统

矩阵输入:matrix(m,n,[a11,a12,…a1n,a21,…a2n,…,am1,…,amn])或array(1..m,1..n,
[[a11,…,a1n],…,[am1,…,amn]])  extend(A,m,n) 矩阵A增加m行n列
向量:vector([a11,a12,…,a1n])或array(1..n,[a11,…,a1n])

几个特殊矩阵:对角阵:band(V,n) ,对角块:copyinto(A,B,m,n)拷贝A到B的m行n列,方块diag(A,B…),雅可比jacobian(函数向量,自变量),  范德蒙:Vandermonde(向量)

> with(linalg):
>A:=matrix(6,6,[3,4,-1,1,-9,10,6,5,0,7,4,-16,1,-4,7,-1,6,-8,2,-4,5,-6,12,-8,-3,6,-7,8,-1,1,8,-,9,1,3,0]):
>B:=matrix(6,6,[1,2,4,6,-3,2,7,9,16,-5,8,-7,8,11,20,1,5,5,10,15,28,13,-1,9,12,19,36,25,-7,23,2,4,6,-3,0,5]):
> b:=array(1..6,[1,3,5,7,9,11]):
> diag(A,B);extend(B,6,6,0);copyinto(A,",7,7);
> band([1],5);copyinto(b,",1,3);

运算:加,减,数乘  A+B,A-B,a*A,a*A+c*B等,用evalm()显示. 矩阵乘积multiply(A,B)
增广矩阵augment(A,B,…)或concat(A,B,…)  纵向增广矩阵 stack(A,B,…)
转置transpose(A)  行列式det(A)  伴随adj(A)  逆inverse(A)或A^(-1)  求秩rank(A)
化阶梯:gausselim(A,'r','d') r为A的秩,d为A行列式,用backsub(")求解  gaussjord(A,'r','d')?

> evalm(A)+evalm(B)=evalm(A+B);C:=concat(A,b);stack(A,B);
> gausselim(C,'r','d');r;rank(A);d;det(A);
> gaussjord(C,'r','d');
> inverse(A);multiply(A,");adj(A);multiply(A,");

解线性方程组 Ax=b:
写线性方程组geneqns(A,x,b),解方程linsolve(A,b,'r',x)其中b为向量

> geneqns(A,x,b);linsolve(A,b,x);

特征值,特征向量
eigenvals(A)   eigenvects(A) 加radical显根号形式,implicit显复数形式
注:求数值解时,矩阵应数值化evalf(A)。一般四阶以上没有解析解。
特征矩阵charmat(A,t);特征多项式charpoly(A,x),相似变换frobenius(A,'p')
标准型jordan 判断相似issimilar(A,B,'p')  p为变换矩阵,
正定矩阵分解cholesky(A) 判断正交orthog(A)

> eigenvals(matrix(2,2,[1,2,2,4]));
> eigenvects(matrix(2,2,[1,2,2,4]));
> frobenius(matrix(2,2,[1,2,2,4]),'p');
> multiply(inverse(p),",p);
> jordan(matrix(2,2,[1,2,2,4]),'p');orthog(p);

初等变换:交换行(列)swaprow(A,i,j) swapcol(A,i,j) i行(列)乘m  mulrow(A,i,m) mulcol(A,i,m) i行(列)乘m加到j行(列)addrow(A,i,j,m)  addcol(A,i,j,m)

> addrow(A,2,5,-2);mulcol(A,3,3);

其他矩阵操作:取子阵submatrix(A,m1..m2,n1..n2) 取行列row(A,i..j)  col(A,i..j)
删除行列delrow(A.i..j) delcol(A,i..j)   向量组的基basis(向量组)
行(列)向量基rowspace(A,'d')colspace(A,'d')d个数;正交化GramSchmidt(向量组)
标准化normalize(向量);数量积dotprod(U,V);向量积crossprod(U,V)

> submatrix(A,[2,4,6],[1,4,5]);row(A,2);col(A,4);
> rowspace(A,'d');d;
> multiply(A,b);
>u := vector( [1,x,y] );v := vector( [1,0,0] );
>dotprod(u, v);
>A := matrix(3,2, [2,0,3,4,0,5]);
> rowspace(A);
> colspace(A);

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|空灵学院 ( 11033542 )

GMT+8, 2024-5-5 18:49 , Processed in 0.025072 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表