python如何解方程的三种方法


本文摘自php中文网,作者爱喝马黛茶的安东尼,侵删。

python求解方程组的三种方法:

相关推荐:《python视频》

Numpy求解方程组

1

2

x + 2y = 3

4x + 5y = 6

当然我们可以手动写出解析解,然后写一个函数来求解,这实际上只是用 Python 来单纯做“数值计算”. 但实际上,numpy.linalg.solve 可以直接求解线性方程组.

一般地,我们设解线性方程组形如 Ax=b,其中 A 是系数矩阵,b 是一维(n 维也可以,这个下面会提到),x 是未知变量. 再拿上面地最简单的二元一次方程组为例,我们用 numpy.linalg.solve 可以这样写:

1

2

3

4

5

6

7

8

In [1]: import numpy as np

  ...: A = np.mat('1,2; 4,5')    # 构造系数矩阵 A

  ...: b = np.mat('3,6').T       # 构造转置矩阵 b (这里必须为列向量)

  ...: r = np.linalg.solve(A,b)  # 调用 solve 函数求解

  ...: print r

  ...:

Out[1]: [[-1.]

      [ 2.]]

那么前面提到的“ n 维”情形是什么呢?实际上就是同时求解多组形式相同的二元一次方程组,例如我们想同时求解这样两组:

1

2

x + 2y = 3

4x + 5y = 6

1

2

x + 2y = 7

4x + 5y = 8

就可以这样写:

1

2

3

4

5

6

7

8

9

In [2]: import numpy as np

  ...: A = np.mat('1,2; 4,5')          # 构造系数矩阵 A

  ...: b = np.array([[3,6], [7,8]]).T  # 构造转置矩阵 b (这里必须为列向量),

  ...: 注意这里用的是 array

  ...: r = np.linalg.solve(A,b)        # 调用 solve 函数求解

  ...: print r

  ...:

Out[2]: [[-1.         -6.33333333]

      [ 2.          6.66666667]]

SciPy 求解非线性方程组

阅读剩余部分

相关阅读 >>

map在Python中什么意思

Python怎么创建模块

Python文件操作的介绍(代码示例)

Python中的数怎么实现逆序

Python爬虫任务接单渠道

Python中time模块求程序运行时间的方法实例分享

Python怎么处理dataframe的时间字段

Python之xpath语法

Python字典改变键值对的方法

Python如何做词云

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...