# 2024年Python最全使用Python求解方程_python解方程，2024年最新面试高分实战

#### Numpy 求解线性方程组

x + 2y = 3
4x ＋ 5y = 6

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.]]

x + 2y = 3
4x ＋ 5y = 6

x + 2y = 7
4x ＋ 5y = 8

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 求解非线性方程组

scipy.optimize.fsolve(func, x0, args=(), fprime=None, full_output=0, col_deriv=0, xtol=1.49012e-08, maxfev=0, band=None, epsfcn=None, factor=100, diag=None)[source]

x + 2y + 3z - 6 = 0
5 \* (x \*\* 2) + 6 \* (y \*\* 2) + 7 \* (z \*\* 2) - 18 = 0
9 \* (x \*\* 3) + 10 \* (y \*\* 3) + 11 \* (z \*\* 3) - 30 = 0

In [3]: from scipy.optimize import fsolve
...:
...: def func(i):
...:     x, y, z = i[0], i[1], i[2]
...:     return [
...:             x + 2 \* y + 3 \* z - 6,
...:             5 \* (x \*\* 2) + 6 \* (y \*\* 2) + 7 \* (z \*\* 2) - 18,
...:             9 \* (x \*\* 3) + 10 \* (y \*\* 3) + 11 \* (z \*\* 3) - 30
...:            ]
...:
...: r = fsolve(func,[0, 0, 0])
...: print r
...:
Out[3]: [ 1.00000001  0.99999998  1.00000001]

#### SymPy 通吃一切

x + 2 * (x ** 2) + 3 * (x ** 3) - 6 = 0

In [4]: from sympy import \*
...: x = symbols('x')
...: solve(x + 2 \* (x \*\* 2) + 3 \* (x \*\* 3) - 6, x)
Out[4]: [1, -5/6 - sqrt(47)\*I/6, -5/6 + sqrt(47)\*I/6]

@Wayne Shi

#### SymPy简介

SymPy的官方教程：

https://github.com/sympy/sympy/wiki/Quick-examples

https://docs.sympy.org/latest/tutorial/index.html

SymPy是符号数学的Python库。它的目标是成为一个全功能的计算机代数系统，同时保持代码简洁、易于理解和扩展。

In [1]:from sympy import *
In [2]:x = Symbol('x')
In [3]:y = Symbol('y')123
##### 展开与折叠

expand( )展开方程

In [8]: ((x+y)**2).expand()
Out[8]: x**2 + 2*x*y + y**212

facrot( )折叠方程

In [13]: factor(x**2 + 2*x*y + y**2)
Out[13]: (x + y)**212
##### 分离与合并

apart( )分离整式

In [14]: together(1 + 2/(x - 1))
Out[14]: (x + 1)/(x - 1)12

together( )合并整式

In [10]: together(1/x+1/y+1/z)
Out[10]: (x*y + x*z + y*z)/(x*y*z)12
##### 简化表达式

simplify( )普通的化简

In [15]: simplify((x**3 + x**2 - x - 1)/(x**2 + 2*x + 1))
Out[15]: x - 112

trigsimp( )三角化简

In [18]: trigsimp(sin(x)/cos(x))
Out[18]: tan(x)12

powsimp( )指数化简

In [21]: powsimp(x**a*x**b)
Out[21]: x**(a + b)12
##### solve( )解方程

In [7]:solve(x * 3 - 6, x)
[2]12

In [8]: solve([2 * x - y - 3, 3 * x + y - 7],[x, y])
Out[8]: {x: 2, y: 1}12
##### limit( )求极限

dir=’+’表示求解右极限，dir=’-‘表示求解左极限

In [10]: limit(1/x,x,oo,dir='+')
Out[10]: 0
In [11]: limit(1/x,x,oo,dir='-')
Out[11]: 01234
##### integrate( )求积分

In [12]: integrate(sin(x),x)
Out[12]: -cos(x)12

In [13]: integrate(sin(x),(x,0,pi/2))
Out[13]: 112
##### diff( )求导
In [14]: diff(x**3,x)
Out[14]: 3*x**2
In [15]: diff(x**3,x,2)
Out[15]: 6*x12345
##### dsolve( )解微分方程

Python所有方向的技术点做的整理，形成各个领域的知识点汇总，它的用处就在于，你可以按照下面的知识点去找对应的学习资源，保证自己学得较为全面。

###### 简历模板

|
7天前
|

44 11
|
7天前
|

Python网络爬虫实战：抓取并分析网页数据

75 9
|
8天前
|

Python在金融数据分析中扮演关键角色，用于预测市场趋势和风险管理。本文通过案例展示了使用Python库（如pandas、numpy、matplotlib等）进行数据获取、清洗、分析和建立预测模型，例如计算苹果公司（AAPL）股票的简单移动平均线，以展示基本流程。此示例为更复杂的金融建模奠定了基础。【6月更文挑战第13天】
35 3
|
8天前
|

Python3网络开发实战读后感
Python3网络开发实战读后感
9 2
|
9天前
|

21 2
|
9天前
|

43 0
|
9天前
|

【功能超全】基于OpenCV车牌识别停车场管理系统软件开发【含python源码+PyqtUI界面+功能详解】-车牌识别python 深度学习实战项目
【功能超全】基于OpenCV车牌识别停车场管理系统软件开发【含python源码+PyqtUI界面+功能详解】-车牌识别python 深度学习实战项目
21 0
|
7天前
|

GitHub高赞！速通Python编程基础手册，被玩出花了！

16 2
|
5天前
|

【干货】Python编程惯例
【干货】Python编程惯例
10 1
|
7天前
|
Shell Python
GitHub星标破千Star！Python游戏编程的初学者指南
Python 是一种高级程序设计语言，因其简洁、易读及可扩展性日渐成为程序设计领域备受推崇的语言。 目前的编程书籍大多分为两种类型。第一种，与其说是教编程的书，倒不如说是在教“游戏制作软件”，或教授使用一种呆板的语言，使得编程“简单”到不再是编程。而第二种，它们就像是教数学课一样教编程：所有的原理和概念都以小的应用程序的方式呈现给读者。
12 1