基于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元组操作实例解析
Sep 23 Python
在Python中使用dict和set方法的教程
Apr 27 Python
Python的Flask框架中的Jinja2模板引擎学习教程
Jun 30 Python
Python 高级专用类方法的实例详解
Sep 11 Python
PyQt5每天必学之滑块控件QSlider
Apr 20 Python
python 读取目录下csv文件并绘制曲线v111的方法
Jul 06 Python
Python3.5 Pandas模块之DataFrame用法实例分析
Apr 23 Python
python sqlite的Row对象操作示例
Sep 11 Python
python itsdangerous模块的具体使用方法
Feb 17 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
Jun 01 Python
JAVA SWT事件四种写法实例解析
Jun 05 Python
如何通过Python实现RabbitMQ延迟队列
Nov 28 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 数组实例说明
2008/08/18 PHP
PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
2012/07/15 PHP
php另类上传图片的方法(PHP用Socket上传图片)
2013/10/30 PHP
PHP获取指定函数定义在哪个文件中以及其所在的行号实例
2014/05/08 PHP
Eclipse PHPEclipse 配置的具体步骤
2017/08/08 PHP
jQuery 表单验证插件formValidation实现个性化错误提示
2009/06/23 Javascript
Js-$.extend扩展方法使方法参数更灵活
2013/01/15 Javascript
JS实现QQ图片一闪一闪的效果小例子
2013/07/31 Javascript
jQuery循环动画与获取组件尺寸的方法
2015/02/02 Javascript
基于jQuery插件实现环形图标菜单旋转切换特效
2015/05/15 Javascript
JavaScript计划任务后台运行的方法
2015/12/18 Javascript
js实现动态显示时间效果
2017/03/06 Javascript
jQuery幻灯片插件owlcarousel参数说明中文文档
2018/02/27 jQuery
关于vue利用postcss-pxtorem进行移动端适配的问题
2019/11/20 Javascript
[00:37]2016完美“圣”典风云人物:rOtk宣传片
2016/12/09 DOTA
Python random模块常用方法
2014/11/03 Python
python XlsxWriter模块创建aexcel表格的实例讲解
2018/05/03 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
2018/10/16 Python
pandas通过loc生成新的列方法
2018/11/28 Python
python实现猜拳游戏
2020/03/04 Python
使用python批量修改XML文件中图像的depth值
2020/07/22 Python
Python中免验证跳转到内容页的实例代码
2020/10/23 Python
CSS3 实现弹幕的示例代码
2017/08/07 HTML / CSS
J2SDK1.5与J2SDK5.0有什么区别
2012/09/19 面试题
前台接待岗位职责
2013/12/03 职场文书
集团公司人力资源部岗位职责
2014/01/03 职场文书
化学教学随笔感言
2014/02/19 职场文书
小学模范班主任事迹材料
2014/05/13 职场文书
王力宏牛津大学演讲稿
2014/05/22 职场文书
红领巾心向党演讲稿
2014/09/10 职场文书
2014年最新学校运动会广播稿
2014/09/17 职场文书
检讨书格式
2015/01/23 职场文书
党员带头倡议书
2015/04/29 职场文书
交通事故被告答辩状
2015/05/22 职场文书
党务工作者主要事迹材料
2015/11/03 职场文书
2019单位介绍信怎么写
2019/06/24 职场文书