maple矩阵求解maple矩阵求解
。
在载入这个工具包时产生了两个警告,不用为此担心,这是因为Maple系统中已有的两个函数——norm和trace被linalg中的同名函数所覆盖了。原来系统中这两个函数分别是用于计算多项式的范数(norm)和程序调试跟踪的,一般情况下,在解决线性代数问题时用不到。如果确实要用系统中的库函数,可以再用readlib将其重新载入进来。
linalg中的主要函数的详细介绍我们将留到本章第三节中完成,在这一节中,我们主要着眼于矩阵的基本运算,比如加法、乘法和乘幂等。我们先用上一章中介绍过的方法来定义一些矩阵:
矩阵的代数运算最直接而且直观的方法莫过于使用函数evalm( )了,只要把矩阵的代数计算表达式作为它的参数,就可以得到结果的矩阵。
矩阵和标量也可以直接作和差。但要注意的是,和Matlab以及Fortran90中的相应的运算定义不同,在Maple中,矩阵和标量相加(相减),被定义成矩阵的对角元和标量分别相加(相减),也就是矩阵加上(减去)和它相同形状的数量阵。请看下面的例子:
还需要说明的是,运算符“*”仅仅用来表示数乘,对于矩阵乘法,绝对不能使用。这是因为,运算符“*”在Maple中被定义成满足交换律的乘法,而我们知道,矩阵乘法是不满足交换律的。我们可以通过简单的例子来说明这个事实。
可以看到,Maple在化简表达式时,丝毫没有顾及它们的类型,只把它们作为一般的符号变量来计算,甚至不考虑这些矩阵是否可以相乘或相加。如果我们用evalm来计算,也就得不到正确的结果了。在Maple V Release 4及以后的版本中,程序设计者考虑到用户