sympy,快速解决常见的数学问题

https://github.com/sympy/sympy

在 Python 中,有一些用于代数的第三方模块。我最喜欢的之一是 “SymPy”,它封装了大量方法来帮助数据工程师快速解决常见的数学问题。

今天我们将通过适合初学者的代码示例介绍该模块的 7 个基本用法。

1、因式分解

首先,我们需要使用 Symbol 定义一个变量,它使得变量可以应用于 sympy 的代数方法。

定义 “Symbols” 后,我们可以借助 factor() 函数轻松获取表达式的因子

from sympy import Symbol, factor

x = Symbol('x')
y = Symbol('y')

expr = (x - 2) * (x - 2) - (y - 3) * (y - 3)
print(factor(expr))```

此外,还有另一种方便的方法可以**一次定义多个变量**。

```python
from sympy import Symbol, factor

x = Symbol('x')
y = Symbol('y')

expr = (x - 2) * (x - 2) - (y - 3) * (y - 3)
print(factor(expr))

2、扩展

另一方面,展开操作和因式分解一样简单,我们需要做的就是使用 sympy 中的 expand() 方法。

from sympy import Symbol, expand

x = Symbol("x")
y = Symbol("y")

expr = (x - y + 1)*(x + y - 5)
expr = expand(expr)
print(expr)

3、表达式求解

用纯 Python 来求解表达式是可以的,但是利用 sympy 的强大功能将使你的代码更加 Pythonic。

from sympy import Symbol

x = Symbol("x")
y = Symbol("y")
expr = x**2 - 2*x - y**3 + 7*y - 3

result = expr.subs({x: 1, y: 2})
print(result)

4、表达式计算

此外,如果你有多个表达式并想用它们进行一些计算,在 sympy 模块的帮助下,程序将像执行简单的算术计算一样简单,例如加、减、乘、除。

from sympy import Symbol

x = Symbol("x")
y = Symbol("y")

expr1 = x * y + y * y
expr2 = x * x + x * y

print(expr1 + expr2)

5、解方程

如果你手头只有一个基本计算器,那么解方程是一项挑战。

在这种情况下,使用 sympy 模块是 Python 开发人员的自然选择。

from sympy import symbols, solve

x, y = symbols('x, y')
expr = x * x - 5 * x + 6
print(solve(expr))

求解具有两个变量的方程组同样简单。

from sympy import symbols, solve

x, y = symbols('x, y')
expr1 = 3 * x + 4 * y - 34
expr2 = 2 * x + 3 * y - 56

print(solve((expr1, expr2), dict=True))

6、三角函数处理

如果你认为前面的场景并不太难,并且你也可以在没有 sympy 模块的情况下解决问题,那么三角函数计算将改变你的想法。

计算基本三角函数与求解其他表达式一样简单,因为常见的三角函数是 sympy 模块的内置函数

from sympy import symbols, sin, N

x, y = symbols("x y")
expr = sin(x)

print(expr.subs(x, 0))
# 0
print(expr.subs(x, 3))
# sin(3)
print(N(expr.subs(x, 3)))
# 0.141120008059867

我们甚至可以简化三角表达式。

from sympy import symbols, sin, cos, tan, sec, trigsimp

x, y = symbols("x y")

print(trigsimp(sin(x) ** 2 + cos(x) ** 2))
# 1
print(trigsimp(cos(x) * tan(x)))
# sin(x)

7、绘制函数图

除了计算之外,sympy 工具甚至可以直接绘制函数图。

from sympy import Symbol
from sympy.plotting import plot
x = Symbol('x')
p1 = plot(2*x + 3)
p1.show()

来源-----程序员学长

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇