案例介绍 学过线性代数的同学都知道,在将矩阵进行初等变换化为最简型时过程有多么繁琐。今天,给大家带来一个小项目——使用 Python 化简矩阵。 将要学习:使用特殊的科学计算库
案例介绍
学过线性代数的同学都知道,在将矩阵进行初等变换化为最简型时过程有多么繁琐。今天,给大家带来一个小项目——使用 Python 化简矩阵。
将要学习:使用特殊的科学计算库——sympy,来化简矩阵。
准备工作
- Python 3.x
- sympy 库
预备知识
矩阵
在数学中,矩阵是一个按照长方阵列排列的复数或实数,最早来自于方程组的系数及常数所构成的方阵。
矩阵变换
矩阵变换是线性代数中矩阵的一种运算形式。有如下三种形式:
(1) 交换矩阵的两行;
(2) 以一个非零数k乘矩阵的某一行所有元素;
(3) 把矩阵的某一行所有元素乘以一个数k后加到另一行对应的元素。
类似地,把以上的“行”改为“列”便得到矩阵初等变换的定义,矩阵的初等行变换与初等列变换合称为矩阵的初等变换。
行最简的意义
利用初等行交换将矩阵化为行最简形矩阵,行最简形矩阵在求逆矩阵、求解矩阵方程、求解线性方程组、求矩阵与向量组的秩、求向量组的极大无关组、求矩阵的特征值与特征向量等方面具有关键作用。
代码汇总
# coding: utf-8# !/usr/bin/python
"""
@File : matrix.py
@Author : jiaming
@Modify Time: 2020/5/17 12:31
@Contact :
@微信公众号答疑: codenough
@Desciption : None
"""
import numpy as np
from sympy import Matrix
matrix = [
[1, 2, 1, 0],
[2, 1, -2, 0],
[1, -1, -4, 3]
]
rref = Matrix(np.array(matrix)).rref()[0].tolist()
print(rref)
# [[1, 0, 0, -5], [0, 1, 0, 4], [0, 0, 1, -3]]
改变 matrix 中的数值,然后运行程序,就会输出矩阵的行最简形式。
后记
以上就是通过初等行变换进行矩阵化简的全部内容了,目前还只是初步版本,以后我们可以加入更多功能,比如求解矩阵秩、极大线性无关组等小拓展,使之成为体系,还有就是升级用户交互,使用户能够直接输入矩阵,而不是修改源代码,最终我们还要打包它,让没有 Python 环境的设备也能够使用。