在本文中,您将看到如何使用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进行动手时间序列预测

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

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

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

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

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

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

    原文链接:拓端数据科技 / Welcome to tecdat​tecdat.cn 在本文中,您将看到如何使用Python的Numpy库解决线性方程组. 什么是线性方程组? 维基百科将线性方程组定义为 ...

  5. python如何求解微分方程_用Python数值求解偏微分方程

    1 引言 微分方程是描述一个系统的状态随时间和空间演化的最基本的数学工具之一,其在物理.经济.工程.社会等各方面都有及其重要的应用.然而,只有很少的微分方程可以解析求解,尤其对于偏微分方程,能解析求解 ...

  6. python集群_使用Python集群文档

    python集群 Natural Language Processing has made huge advancements in the last years. Currently, variou ...

  7. python数学符号代码_用Python学数学之Sympy代数符

    在我们初.高中和大学近10年的学习时间里,数学一直占据着非常大的分量,但是回忆过去可以发现,我们把大量的时间都花在反复解题.不断运算上,计算方法.运算技巧.笔算能力以及数学公式的记忆仿佛成了我们学习数 ...

  8. python网页版_经典python学习教程:20行代码打造一个微信群聊助手,解放双手

    今天的Python学习教程教大家如何用20行Python代码实现微信群聊助手,可以用来活跃群气氛,好多群主创建完群后,拉完一群人,之后就一片寂静,有个群聊助手,就可以帮忙活跃群里气氛,通过今天在自己的 ...

  9. c调用python第三方库_用 Python ctypes 来调用 C/C++ 编写的第三方库

    看到一篇简洁的文章--如何用Python ctypes调用C++(ctypes调用C没这么多麻烦事),不敢独享... 如果需要用 Python 调用 C/C++ 编写的第三方库(这些第三方库很可能就是 ...

最新文章

  1. HDU 1429 胜利大逃亡(续) (BFS+位压缩)
  2. 用PIL读取保存图片错误 :OSError: cannot write mode RGBA as JPEG
  3. 虚拟化模板新建虚拟机后 wsus控制台无法看到所有客户端计算机
  4. Angular Injection Token records map的填充原理
  5. android sqlite alert table,android sqlite数据库操作
  6. python处理完数据导入数据库_python 将execl测试数据导入数据库操作
  7. 10-fold Cross Validation
  8. linux上运行onedrive,教你如何在Linux中同步微软 OneDrive
  9. oracle错误代码及解决办法整合
  10. 雕刻机c语言程序,基于51单片机的激光雕刻机
  11. 等保2.0 三级检查明细
  12. IOS逆向学习-加壳、脱壳
  13. 9/28shell合集
  14. 边境的悍匪—机器学习实战:第八章 降维
  15. python计算标准差函数_Python pandas,pandas常用统计方法,求和sum,均值mean,最大值max,中位数median,标准差std...
  16. 太原理工大学 计算机专业课程,太原理工大学最全专业介绍
  17. 平克四部曲之《白板》
  18. PyQt5四种窗口布局
  19. 使用pandas清洗数据(中文字符串的正则使用)
  20. python 递归函数 匿名函数

热门文章

  1. UE4入门序列07(Unreal网络编程之Replication Roles)
  2. java网上报名系统源码_基于jsp的网上报名系统-JavaEE实现网上报名系统 - java项目源码...
  3. MATLAB 找到n阶方阵中对角线上的连续素数个数 不使用循环
  4. 创建DataFrame数据
  5. Java类定义、成员变量定义、方法定义、成员变量与局部变量的区别
  6. 将优狐智能插座接入 Domoticz
  7. 金蝶eas系统服务器地址,金蝶eas服务器地址
  8. 游戏3D美术设计师是什么?
  9. 一般信道容量的计算matlab,DMC信道容量迭代计算的matlab实现
  10. 如何用教育优惠开通Apple Music 会员5元/月并实现会员共享