![547c2f78472e4a40194883748eb74900.png](https://i-blog.csdnimg.cn/blog_migrate/58547a601a7411b71fb56aa5c3141137.jpeg)
编程的目的是什么?初衷大多是为了高效处理大规模数据。这一块有着丰富的算法和操作。其中矩阵在数据信息处理起着至关重要的作用。熟练掌握矩阵的操作往往能起到优化算法,提高代码简洁程度等作用。
各类语言在这方面成熟程度很高,Fortan, Matlab等非常擅长矩阵。那我们的Maple是如何有效处理矩阵的呢?个人发现Maple对于矩阵设计了各种结构,以利于选择他们解决各种规模不同的问题。不过各种不同的结构一时也让人无所适从。所以很早就计划总结一下矩阵的操作。
下面是相关矩阵命令的小的汇集及实际过程中的遇到的问题和解决办法。 这类命令学起来比较零碎枯燥,容易忘记,但是如果不会,想寻找一时反而不是那么容易,即便是找帮助文档。故在下面小结一下。有的不是简简单单内置命令就能完成的,需要做一些简易编程。
1 矩阵的常规操作
1.1创建矩阵
Maple创建矩阵方式非常多,Matrix, Array, Table等,让人眼花缭乱。先介绍Matrix最重要的操作。没有介绍希望举一反三。
我们从如何创建矩阵开始;
- 创建5阶零矩阵
Matrix(5)
![b4bcc03b4d5274e876fc860c82ba5df9.png](https://i-blog.csdnimg.cn/blog_migrate/8aa956ef48681eac2ae5a58fa29258c9.png)
2.创建单位矩阵
Matrix(5, shape = identity)
![cdbb4b35b1606f0a0f9ec7db17b2f036.png](https://i-blog.csdnimg.cn/blog_migrate/e835945e5e85b1fabe9a956d1571ca83.png)
3. 创建元素相等矩阵
m1 := Matrix(1 .. 2, 1 .. 3, 666)
![e1e243edb5e86cb13bdc8e84097151c7.png](https://i-blog.csdnimg.cn/blog_migrate/91433a1a11220e717f040998a1b89df0.png)
4 一般性的创建
m2 := Matrix([[1, 2, 3], [4, 5, 6]])
A:=<<1,2,3>|<4,5,6>>
![4dab0c17067e930c589b3419e681d45a.png](https://i-blog.csdnimg.cn/blog_migrate/2afbe6fe169a90f305fad0476180fb6e.png)
![1c14e62272f9f1a71bb88b83722d8a24.png](https://i-blog.csdnimg.cn/blog_migrate/7cfef41601324afd03f2daac7c351f83.png)
5 矩阵相加(对应元素相加) + 点乘 . 对应元素相乘 ~*
m1+m2
![c1e405bbdedc7eeb720e0fc6542b9726.png](https://i-blog.csdnimg.cn/blog_migrate/a8ad97b11caace7446321b68c4753b1e.png)
m2.A #点乘,传统意义下乘法
m1*~m2 #对应元素相乘
m2.m1 #error
6 给定子矩阵后,其余设置为相同元素
m3 := Matrix(3, 2, [1, 2, 3, 4, 5]):
Matrix(4, 3, m3, fill = 9)
![8dc249951e571555b256bbf458979345.png](https://i-blog.csdnimg.cn/blog_migrate/48074b7cd4caf59b07e276f980a00042.png)
7 按照函数规则设置
f := (i, j) -> x^(i + j - 1);
Matrix(2, f);
![8676a55618fcc0fe4b27f989d68e73d8.png](https://i-blog.csdnimg.cn/blog_migrate/b2a842f13c9b96269b20a130dc49dc2a.png)
7 构建矩阵之