原文链接:拓端数据科技 / Welcome to tecdat​tecdat.cn

在本文中,您将看到如何使用Python的Numpy库解决线性方程组。

什么是线性方程组?

维基百科将线性方程组定义为:在数学中,线性方程组(或线性系统)是两个或多个涉及同一组变量的线性方程的集合。

解决线性方程组的最终目标是找到未知变量的值。这是带有两个未知变量的线性方程组的示例,x并且y:

等式1:4x + 3y = 20

-5x + 9y = 26

为了解决上述线性方程组,我们需要找到x和y变量的值。解决此类系统的方法有多种,例如消除变量,克莱默规则,行缩减技术和矩阵解决方案。在本文中,我们将介绍矩阵解决方案。

在矩阵解中,要求解的线性方程组以矩阵形式表示AX = B。例如,我们可以用矩阵形式表示等式1,如下所示:A = [[ 4 3]

[-5 9]]

X = [[x]

[y]]

B = [[20]

[26]]

要查找的值x和y变量方程1,我们需要找到在矩阵中的值X。为此,我们可以采用矩阵逆的点积A和矩阵B,如下所示:

X = inverse(A).B

用numpy求解线性方程组

要求解线性方程组,我们需要执行两个操作:矩阵求逆和矩阵点积。Python的Numpy库支持这两种操作。如果尚未安装Numpy库,则可以使用以下pip命令:

$ pip install numpy

现在让我们看看如何使用Numpy库解决线性方程组。

使用inv()和dot()方法

首先,我们将找到A在上一节中定义的矩阵逆。

首先让我们A在Python中创建矩阵。要创建矩阵,array可以使用Numpy模块的方法。矩阵可以视为列表列表,其中每个列表代表一行。

在以下脚本中,我们创建一个名为的列表m_list,其中进一步包含两个列表:[4,3]和[-5,9]。这些列表是矩阵中的两行A。要A使用Numpy 创建矩阵,请将m_list传递给array方法,如下所示:

import numpy as np

m_list = [[4, 3], [-5, 9]]

A = np.array(m_list)

为了找到矩阵的逆,将矩阵传递给linalg.inv()Numpy模块的方法:inv_A = np.linalg.inv(A)

print(inv_A)

下一步是找出矩阵的逆矩阵之间的点积A和矩阵B。重要的是要提一下,只有在矩阵的内部尺寸相等的情况下,才可能在矩阵之间获得矩阵点积,即,左矩阵的列数必须与右矩阵的行数匹配。

要使用Numpy库查找点积,请使用该linalg.dot()函数。B = np.array([20, 26])

X = np.linalg.inv(A).dot(B)

print(X)

输出:

[2. 4.]

这里,2和4是未知的各个值x和y在等式1。验证一下,如果在方程式中插入2未知数x并4替换未知数,您将看到结果为20。y4x + 3y

现在,让我们解决由三个线性方程组成的系统,如下所示:4x + 3y + 2z = 25

-2x + 2y + 3z = -10

3x -5y + 2z = -4

可以使用Numpy库按以下方式求解以上方程式:

公式2:print(X)

在上面的脚本中,linalg.inv()和linalg.dot()方法链接在一起。该变量X包含方程式2的解,并打印如下:

[ 5. 3. -2.]

未知数x,,y和的值分别是5、3 z和-2。您可以将这些值代入公式2并验证其正确性。

使用solve()方法

在前两个示例中,我们使用linalg.inv()和linalg.dot()方法来找到方程组的解。但是,Numpy库包含该linalg.solve()方法,该方法可用于直接找到线性方程组的解:print(X2)

输出:

[ 5. 3. -2.]

您可以看到输出与以前相同。

一个真实的例子

让我们看看如何使用线性方程组来解决实际问题。

假设有一个卖水果的人一天就卖出了20个芒果和10个橘子,总价为350元。第二天,他以500元的价格出售了17个芒果和22个橙子。如果这两天的水果价格都保持不变,那么一个芒果和一个橙子的价格是多少?

使用两个线性方程组可以轻松解决此问题。

假设一个芒果x的价格为,一个橙子的价格为y。上面的问题可以这样转换:20x + 10y = 350

17x + 22y = 500

上面的方程组的解决方案如下所示:X = np.linalg.solve(A,B)

print(X)

这是输出:

[10. 15.]

输出显示,一个芒果的价格为10元,一个橙子的价格为15元。

结论

本文介绍了如何使用Python的Numpy库解决线性方程组。您可以链式使用linalg.inv()和linalg.dot()方法来求解线性方程组,也可以简单地使用该solve()方法。该solve()方法是首选方法。

用python解矩阵方程_用Python的Numpy求解线性方程组相关推荐

  1. python解矩阵方程_用Python代写的Numpy求解线性方程组

    在本文中,您将看到如何使用Python的Numpy库解决线性方程组. 什么是线性方程组? 维基百科将线性方程组定义为: 在数学中,线性方程组(或线性系统)是两个或多个涉及同一组变量的线性方程的集合. ...

  2. python解包裹_关于Python中包裹传参和解包裹的理解

    原标题:关于Python中包裹传参和解包裹的理解 1.包裹传参 首先思考一个问题:为什么要有包裹传参?原因包括但不仅限于以下两点:①不确定参数的个数.②希望函数定义的更加松散灵活 包裹传参分两种:包裹 ...

  3. gta python解指纹_用Python玩GTA 5—使用OpenCV读取游戏面面

    原文名称:Reading game frames in Python with OpenCV - Python Plays GTA V原文链接:https://pythonprogramming.ne ...

  4. python deepcopy函数_用Python解数独[6]:递归获得最终答案

    目录 用Python解数独[0] 用Python解数独[1]:求每个单元格的行值域 用Python解数独[2]:求列值域和九宫格值域 用Python解数独[3]:求总值域 用Python解数独[4]: ...

  5. python 概率分布模型_使用python的概率模型进行公司估值

    python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...

  6. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

  7. 如何用python求解方程组_用Python的Numpy求解线性方程组

    在本文中,您将看到如何使用Python的Numpy库解决线性方程组. 什么是线性方程组? 维基百科将线性方程组定义为:在数学中,线性方程组(或线性系统)是两个或多个涉及同一组变量的线性方程的集合. 解 ...

  8. python硬件交互_对Python的交互模式和直接运行.py文件的区别详解

    对Python的交互模式和直接运行.py文件的区别详解 看到类似C:\>是在Windows提供的命令行模式,看到>>>是在Python交互式环境下. 在命令行模式下,可以执行p ...

  9. python医学图像读取_对python读取CT医学图像的实例详解

    需要安装OpenCV和SimpleItk. SimpleItk比较简单,直接pip install SimpleItk即可. 代码如下: #coding:utf-8 import SimpleITK ...

最新文章

  1. CV算法复现(分类算法6/6):MobileNet(2017年V1,2018年V2,2019年V3,谷歌)
  2. Word 技术篇-段落的前后间距单位磅改为行,行改为磅
  3. 【ARM】异常产生指令
  4. JEECG J2EE敏捷开发框架(代码一键生成)
  5. Shell调试Debug的三种方式
  6. Android实现QQ登录
  7. Java-集合第五篇Map集合
  8. U盘文件突然变成html文件,U盘里面的文件跟文件夹突然乱码了怎么办
  9. Microsoft store下载速度过慢
  10. 读书笔记 ·《简约至上》第二章 明确认识
  11. 【成为架构师课程系列】作为一名大数据架构师该掌握的技能清单:
  12. iOS Bug---CoreLocation 部分机型卡界面
  13. 程序员大阳--所有教程、项目、源码导航
  14. tensorflow机器学习之利用CNN卷积神经网络进行面部表情识别的实例代码
  15. java计算机毕业设计医院病历管理系统源程序+mysql+系统+lw文档+远程调试
  16. 校园网测试--ettercap使用
  17. 引用账户锁定无法登录_win10登陆失败提示引用的帐户已被锁定无法登录怎么办?...
  18. 一个 IDB 中的多个文件
  19. python中res代表什么_Python数据类型的用法
  20. 上海户籍改革持居住证者工作数年可入沪

热门文章

  1. 外贸独立站怎么提高转化率
  2. [Pico]读取新建写入文本文件
  3. Android gradient 三色渐变背景 Shap
  4. 一级建造师考试报名需要的材料,点击收藏!
  5. 青少年CTF--misc部分题解
  6. GR节点故障The member contains transactions not present in the group
  7. win10激活出现错误0xc004C003
  8. 大连引入‘智慧路灯’助推‘智慧城区’建设,道路改造25基高杆灯
  9. 域控制器丢失NETLOGON目录的解决办法
  10. 极路由虚拟服务器设置,极路由初始化设置详细图文教程