Python矩阵运算(不使用库)
参考文献
矩阵求解行列式
python实现求矩阵行列式、求逆矩阵等各种矩阵操作(不使用numpy包)
矩阵乘法
矩阵乘法中,需要判断两个矩阵是否可以进行相乘,即前一个矩阵的列是否等于后一个矩阵的行。具体代码如下:
class Solution:def multiplyofmatrix(self, A, f):"""Compute matrix A * matrix f.For example:Input:A: [[1, 2], [3, 4]] Row of A: 2 Col of A: 2f: [[1, 2], [3, 4]] Row of f: 2 Col of f: 2Output:ans: [[7, 10], [15, 22]]s.t. A.col == f.col"""Arow, Acol = len(A), len(A[0])frow, fcol = len(f), len(f[0])if Acol != frow:return 'False!'ans = [[0] * fcol for _ in range(Arow)]for i in range(fcol):for j in range(Arow):for k in range(frow):ans[j][i] += A[j][k]*f[k][i]return ans
if __name__=='__main__':a = Solution().multiplyofmatrix([[1, 2], [3, 4]], [[1, 2], [3, 4]])print(a)
转置矩阵
def transposeofmatrix(A):"""Matrix transpose.For example:Input:A = [[1, 2],[3, 4]]Output:A_transpose = [[1, 3],[2, 4]]"""return [list(raw) for raw in zip(*A)]
矩阵余矩阵
def submatrix(A, i, j):# 矩阵A第i行第j列元素的余矩阵m, n = len(A), len(A[0])C = [[A[x][y] for y in range(n) if y != j] for x in range(m) if x != i] # 列表推导式return C
矩阵行列式
需要用到矩阵余矩阵函数,代码如下:
def detofmatrix(A):m = len(A) # 矩阵的行数n = len(A[0]) # 矩阵的列数if (m == 1 and n == 1):return A[0][0]else:value = 0for j in range(n):value += ((-1) ** (j + 2)) * A[0][j] * detofmatrix(submatrix(A, 0, j))return value
矩阵的逆
需要用到矩阵行列式函数和余矩阵函数,代码如下:
def inverseofmatrix(A):m = len(A) # 矩阵的行数n = len(A[0]) # 矩阵的列数C = [[0] * n for _ in range(m)]d = self.detofmatrix(A)for i in range(m):for j in range(n):C[i][j] = ((-1) ** (i + j + 2)) * detofmatrix(submatrix(A, j, i))C[i][j] = C[i][j] / dreturn C
求方程组根
求∣Ax−b∣=0|Ax - b| = 0∣Ax−b∣=0即为求 x=A−1∗bx = A^{-1} * bx=A−1∗b(A可逆的情况下),调用求逆函数和矩阵相乘函数即可。
求一元n次方程正实数根
例如:x3+ax2+bx=cx^3+ax^2+bx=cx3+ax2+bx=c,其中a, b, c, 均为正整数,求正实数根。
---------持续更新----------
Python矩阵运算(不使用库)相关推荐
- python怎么安装numpy库-python怎么安装numpy库
NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. Python官网上的发行版是不包含Num ...
- python初级第三库(人工智能,web解析,人机交互)
第一章:python必备库-从数据处理到人工智能 第二章:python必备库-从web解析到网络空间 第三章:python必备库-从人机交互到艺术设计第一章 python必备库-从数据处理到人工智能 ...
- 三、Python数据挖掘(Numpy库)
三.Python数据挖掘(Numpy库) 目录: 三.Python数据挖掘(Numpy库) 一.Numpy 简介 二.认识N维数组 ndarray 属性 1.ndarray 属性 数组名 = np.a ...
- python中nlp的库_单词袋简介以及如何在Python for NLP中对其进行编码
python中nlp的库 by Praveen Dubey 通过Praveen Dubey 单词词汇入门以及如何在Python中为NLP 编写代码的简介 (An introduction to Bag ...
- Python pip安装第三方库的国内镜像
Python pip 安装第三方库的国内镜像 Windows系统下,一般情况下使用pip在DOS界面安装python第三方库时,经常会遇到超时的问题,导致第三方库无法顺利安装,此时就需要国内镜像源的帮 ...
- 《Python程序设计》题库(2)
侵权联系我删除: [写在这里,方便右键百度搜索!] <Python程序设计>题库 填空题 Python安装扩展库常用的是_______工具.(pip) Python标准库math中用来计算 ...
- Python全家福,这些库你认识哪些?
环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex – 可以在虚拟环境中执行命令. v ...
- python爬取图片的库_16-python爬虫之Requests库爬取海量图片
Requests 是一个 Python 的 HTTP 客户端库. Request支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动响应内容的编码,支持国际化的URL和P ...
- python设计选择题代码_《Python程序设计》试题库
WORD 完美格式 < Python 程序设计>题库 一.填空题 第一章 基础知识 1 . Python 安装扩展库常用的是 _______ 工具.( pip ) 2 . Python 标 ...
- python功能强大的库_2018 年最受欢迎的15个顶级 Python 库
原标题:2018 年最受欢迎的15个顶级 Python 库 作者 | Goutham Veeramachaneni 译者 | 陈利鑫 近日,数据科学网站 KDnuggets 评选出了顶级 Python ...
最新文章
- 2017校赛 问题 D: 我知道了,你知道了吗?【递归】
- Java行为参数化(一)
- java排序算法之选择排序
- 调试24L01经验总结
- mysql 单向自动同步_mysql单向自动同步
- Windows操作系统管理进程和线程:内核模式和用户模式
- Anylogic问题-----模型运行中外部输入控制模型
- php 判断是否为360浏览器,怎么判断浏览器是否是360浏览器
- 十个非常实用的PS画笔使用技巧
- ThinkPad 笔记本BIOS设置手册
- Openbravo3.0 客户端代码开发与API
- 基于LSB的信息隐藏
- 鸿蒙系统安装苹果电脑,好消息!华为鸿蒙OS系统,解决了苹果、安卓系统的一大难题...
- 社会保障计算机考试证书查询,便利查|打开电子社保卡可查询职业资格证书啦!...
- luogu P3642 [APIO2016]烟火表演
- 520礼物清单、送男友实用礼物排行榜
- matlab2020a编译环境 MCR 安装步骤(非常实用)
- 树莓、香蕉、香橙各款配置对比以及自己的一些想法
- 【python种子项目ppc】保姆级别指导给项目添加测试
- 面试高薪程序员之高频面试题(一),集合,JVM,高并发多线程等
热门文章
- 【回顾 2021,展望 2022】 一同来见证辉煌人生 一个职场人的一年~
- 2023年的六一儿童节,愿我们永远热泪盈眶,永远保持童心,致我们终将逝去的青春!
- 前端系列主题:从宏观到细节为前端性能优化全方位讲解!
- JAVA 的++y(--y)和y++(y--) 用法
- 2021年中国体育彩票销售现状及全媒体时代体育彩票的营销策略分析[图]
- ZFPlayer视频播放PC 安卓都可以正常 播放,iOS端只有声音没有画面(2)
- hive mysql 实战_【Hive】HiveQL实战之分析函数窗口函数
- 短链接生成-短网址生成-短网址生成接口-短网址URL生成-短链接-短链接URL生成接口
- 美能达早期经典手动单反相机比较表
- UE4中实现鼠标拖动游戏中的物体