当前位置 : 主页 > 编程语言 > java >

【案例】求出矩阵的最简型?——sympy登场

来源:互联网 收集:自由互联 发布时间:2022-06-23
案例介绍 学过线性代数的同学都知道,在将矩阵进行初等变换化为最简型时过程有多么繁琐。今天,给大家带来一个小项目——使用 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 环境的设备也能够使用。



网友评论