如何利用python解方程_Python 解方程的三种方法

本文介绍了使用Python的Numpy、SciPy和SymPy库来解方程的方法。通过实例展示了如何求解线性方程组、非线性方程组以及符号计算。Numpy的linalg.solve用于线性方程,SciPy的fsolve解决非线性问题,而SymPy则能处理各种类型的方程,包括符号运算。
摘要由CSDN通过智能技术生成

# 首发于我的博客 The North.

新年第一篇,搞起.

这回写一个好久之前想做,一直搁着没做的东西—— Python 解方程(其实是放假回家,趁着家里电脑重装 LOL 的时间过来写一篇). 咱这回用三种不同的方法,来应对平常碰到的简单方程.

Numpy 求解线性方程组

例如我们要解一个这样的二元一次方程组:

x + 2y = 3

4x + 5y = 6

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

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

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 维”情形是什么呢?实际上就是同时求解多组形式相同的二元一次方程组,例如我们想同时求解这样两组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值