基于python解线性矩阵方程(numpy中的matrix类)


Posted in Python onOctober 21, 2019

这学期有一门运筹学,讲的两大块儿:线性优化和非线性优化问题。在非线性优化问题这里涉及到拉格朗日乘子法,经常要算一些非常变态的线性方程,于是我就想用python求解线性方程。查阅资料的过程中找到了一个极其简单的解决方式,也学到了不少东西。先把代码给出。

import numpy as np
# A = np.mat('1 2 3;2 -1 1;3 0 -1')
A = np.array([[1, 2, 3], [2, -1, 1], [3, 0, -1]])
b = np.array([9, 8, 3])
x = np.linalg.solve(A, b)
print(x)

是不是很简洁?因为调用了强大的包numpy~ 我们想解决的问题是求解矩阵方程Ax=bAx=b。在这里调用numpy中的线性代数包np.linalg,使用其中的function->solve(A, b)。几行代码就解决了问题。在这里solve函数有两个输入,第一个输入是矩阵,可以采用numpy里的矩阵数据类型或者最常用的数组数据类型。第二个输入是右端项b,一个一维numpy数组即可。函数返回方程的解,shape和b是相同的。如果矩阵A是奇异的或者不是方阵,函数就会报错。

好了,问题得到了绝佳的解决,大不了把python当计算器来用呗~

下面是补充知识:numpy中的matrix类

matrix类是numpy中的一个过时的类,可能会在未来被移除。因为现在大多数人都会用更加灵活好用的ndarray,移除它也是可以理解的。

>>> a = np.matrix('1 2; 3 4')
>>> a
matrix([[1, 2],
    [3, 4]])
 
>>> np.matrix([[1, 2], [3, 4]])
matrix([[1, 2],
    [3, 4]])

matrix有两种构造方式,从第二种我们看到和一般的数组类型一模一样,在这里我们就能窥到matrix其实就是继承了ndarray,基于ndarray。拿matrix进行线性代数运算是因为它有很多方便的函数。

matrix.T   transpose:返回矩阵的转置矩阵
matrix.H   hermitian (conjugate) transpose:返回复数矩阵的共轭元素矩阵
matrix.I   inverse:返回矩阵a逆矩阵
matrix.A   base array:返回矩阵基于的数组<br data-filtered="filtered">matrix.AI flattened ndarray: 返回展平的数组

其他的很多类方法不再介绍,以上四个是最基本的类似语法糖的函数。

需要注意的是,ndarray类型同样能方便地进行转置和求逆。

A = np.array([[1, 2], [3, 4]])
print(A.T)
A_I = np.linalg.inv(A)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python读取注册表中值的方法
Apr 08 Python
50行代码实现贪吃蛇(具体思路及代码)
Apr 27 Python
python中使用sys模板和logging模块获取行号和函数名的方法
Apr 15 Python
python基础教程之序列详解
Aug 29 Python
深入理解Python中各种方法的运作原理
Jun 15 Python
python文件操作之批量修改文件后缀名的方法
Aug 10 Python
python 把列表转化为字符串的方法
Oct 23 Python
基于python cut和qcut的用法及区别详解
Nov 22 Python
python中count函数简单的实例讲解
Feb 06 Python
Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例
Mar 18 Python
Python自定义聚合函数merge与transform区别详解
May 26 Python
Django用内置方法实现简单搜索功能的方法
Dec 18 Python
python打印直角三角形与等腰三角形实例代码
Oct 20 #Python
python配置文件写入过程详解
Oct 19 #Python
python实现广度优先搜索过程解析
Oct 19 #Python
python字符串格式化方式解析
Oct 19 #Python
基于python3监控服务器状态进行邮件报警
Oct 19 #Python
使用python绘制温度变化雷达图
Oct 18 #Python
详解numpy矩阵的创建与数据类型
Oct 18 #Python
You might like
php动态函数调用方法
2015/05/21 PHP
php实现的递归提成方案实例
2015/11/14 PHP
yii2实现 &quot;上一篇,下一篇&quot; 功能的代码实例
2017/02/04 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
php面向对象程序设计入门教程
2019/06/22 PHP
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
2012/06/28 Javascript
基于jquery的手风琴图片展示效果实现方法
2014/12/16 Javascript
javascript顺序加载图片的方法
2015/07/18 Javascript
JS表格组件神器bootstrap table详解(基础版)
2015/12/08 Javascript
深入浅出ES6之let和const命令
2016/08/25 Javascript
AngularJS 异步解决实现方法
2017/06/12 Javascript
详解如何使用Node.js编写命令工具——以vue-cli为例
2017/06/29 Javascript
jQuery使用each遍历循环的方法
2018/09/19 jQuery
antd组件Upload实现自己上传的实现示例
2018/12/18 Javascript
JavaScript原型式继承实现方法
2019/11/06 Javascript
jQuery事件模型默认行为执行顺序及trigger()与 triggerHandler()比较实例分析
2020/04/30 jQuery
javascript实现移动端上传图片功能
2020/08/18 Javascript
带你使用webpack快速构建web项目的方法
2020/11/12 Javascript
[46:16]2018DOTA2亚洲邀请赛3月30日 小组赛B组 iG VS VP
2018/03/31 DOTA
Python学习笔记_数据排序方法
2014/05/22 Python
python遍历类中所有成员的方法
2015/03/18 Python
Python中列表的一些基本操作知识汇总
2015/05/20 Python
使用sklearn进行对数据标准化、归一化以及将数据还原的方法
2018/07/11 Python
创建Django项目图文实例详解
2019/06/06 Python
图文详解Django使用Pycharm连接MySQL数据库
2019/08/09 Python
Python操作注册表详细步骤介绍
2020/02/05 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
2020/03/19 Python
澳大利亚运动鞋零售商:The Athlete’s Foot
2018/11/04 全球购物
企业面试题试卷附带答案
2015/12/20 面试题
汽车运用工程系毕业生自荐信
2013/12/27 职场文书
农业开发项目建议书
2014/05/16 职场文书
领导参观欢迎词
2015/01/26 职场文书
大学生入党自荐书
2015/03/05 职场文书
2016关于预防职务犯罪的心得体会
2016/01/21 职场文书
Mysql基础知识点汇总
2021/05/26 MySQL
Pandas 数据编码的十种方法
2022/04/20 Python