这学期有一门运筹学,讲的两大块儿:线性优化和非线性优化问题。在非线性优化问题这里涉及到拉格朗日乘子法,经常要算一些非常变态的线性方程,于是我就想用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=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:返回矩阵基于的数组

matrix.AI   flattened ndarray: 返回展平的数组

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

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

A = np.array([[1, 2], [3, 4]])

print(A.T)

A_I = np.linalg.inv(A)

python中matrix函数_使用python解线性矩阵方程(numpy中的matrix类)相关推荐

  1. python中累加函数_对Python实现累加函数的方法详解

    对Python实现累加函数的方法详解 发布时间:2020-10-26 00:02:44 来源:脚本之家 阅读:120 作者:岚漾忆雨 这个需求比较奇怪,要求实现Sum和MagaSum函数,实现以下功能 ...

  2. python指数运算函数_分享Python中用于计算指数的exp()方法实例教程

    exp()方法返回指数x: ex. 语法 以下是exp()方法的语法:import math math.exp( x ) 注意:此函数是无法直接访问的,所以我们需要导入math模块,然后需要用math ...

  3. python3中zip函数_用python实现矩阵转置,python3 中zip()函数

    前几天群里有同学提出了一个问题:手头现在有个列表,列表里面两个元素,比如[1, 2],之后不断的添加新的列表,往原来相应位置添加.例如添加[3, 4]使原列表扩充为[[1, 3], [2, 4]],再 ...

  4. python调用dll函数_从Python调用DLL函数

    我想从Python调用DLL中的函数.但我有个错误:"Attribute Error function not found" 这是我的代码:import os import cty ...

  5. python一些常用函数_【python】常用的一些内置函数

    1.cmp cmp(A,B)函数,比较A,B的大小,如果A大于B,返回1,A小于B返回-1,A等于B返回0 print cmp(12,33) >>>-1 print cmp(&quo ...

  6. python 不执行函数_解决python调用自己文件函数/执行函数找不到包问题

    写python程序的时候很多人习惯创建一个utils.py文件,存放一些经常使用的函数,方便其他文件调用,同时也更好的管理一些通用函数,方便今后使用.或是两个文件之间的class或是函数调用情况. 就 ...

  7. python调用matlab函数_从python调用MATLAB函数

    我知道这是一个老问题,已经得到答复. 但是我一直在寻找相同的东西(对于Mac),发现有很多选择与matlab交互的方法和成熟度不同. 这是我发现的: pymat 使用matlab引擎(libeng)进 ...

  8. python调用matlab函数_从 Python 调用 MATLAB 函数的三种方法

    0. 实验环境Ubuntu 16.04 Matlab R2015b 1. 借助于 mlab 库 安装方法非常简单,只需一行命令 sudo pip install mlab 即可. import num ...

  9. python的gmtime函数_关于python:是否有time.gmtime()的反函数将UTC元组解析为自纪元以来的秒数?...

    python的时间模块似乎有点杂乱无章. 例如,以下是docstring中的方法列表: 1 2 3 4 5 6 7 8 9 10 11time() -- return current time in ...

最新文章

  1. BlueZ--内核层+应用层
  2. android支持第三方jar包,以及Eclipse如何导入jar包
  3. Spring Cloud比较好的博文地址
  4. 【渝粤题库】广东开放大学 文化活动策划与组织 形成性考核
  5. C语言,产生一组数字,并将其写入txt文档中
  6. 上海电力学院linux大作业,上海电力电路大作业2重点.docx
  7. 2017年4月14日
  8. 看看华为 Java 编程的军规...
  9. 机械臂动力学建模(2)- Kane凯恩算法
  10. jetson nano使用python读取解析GPS数据(GPRMC,GPGGA)。
  11. android怎么改名字,手把手教你如何修改安卓软件的图标和名字
  12. 慧之声科技- 程序员的爱情故事
  13. python编写错误怎么修改_在Python的Django框架中编写错误提示页面
  14. html5 3d 签到墙,签到小程序/微信签到/扫码签到/3D签到墙
  15. 手机淘宝的flexible设计与实现
  16. 【Spring】切入点表达式、函数
  17. 苹果外接屏幕鼠标移动方向问题
  18. tableau数据分析
  19. 模拟ic设计工程师面试总结
  20. 【附源码】Java计算机毕业设计幼儿园管理系统(程序+LW+部署)

热门文章

  1. php分页类 seo,HTML_写一个对搜索引擎友好的文章SEO分页类,使用jsp/php/asp等动态程序生成 - phpStudy...
  2. logo下方显示技术支持信息_艺术与实用性的结合,iQunix Spider 屏幕显示器支架评测...
  3. 第九讲 二阶齐次常系数线性ODE
  4. 盛佳:搜索是有目的的发现,发现是无目的的搜索
  5. 接口压测初识java GC
  6. shell脚本练习,创建数据文件注册用户并将用户信息存入文件内,用于模拟登录时使用...
  7. C#枚举中的位运算权限分配浅谈
  8. 2017.2.12【初中部 GDKOI】模拟赛B组 T4:pot
  9. 代码中设置excel自定义格式为[红色]的处理方法
  10. Objective-C学习笔记2013[NSString]字符串[可变字符串中,加用app减用delete]