02-sympy库入门

分数表示

有理数是指两个整数的比。有理数是整数和分数的集合。

Rationals

1
2
3
4
5
6
from sympy import *
a = Rational(1, 3)
a
type(a)
b = 1/3
type(b)

特殊无理数

1
2
3
4
5
pi
E
oo 
oo + 1
oo > 9999999

jupyter pretty print

1
2
3
4
5
init_printing(pretty_print=True)  # Pretty printing mode
pi ** 2
pi.evalf(20) 取pi的前20位
N(pi) 取pi前15位
N(pi, 7) 取pi的前7位

代数运算

代数,代数,用符号代替数进行运算

  • 声明一个代数符号
1
2
x = Symbol('x')
y = Symbol('y') # 注意: 'S' 是大写
  • 一次声明两个或多个代数符号
1
x,y = symbol('x y')
  • 代数运算
1
2
x + y + x - y
(x+y)**2
  • 带下标的符号
1
2
x,y = symbols('var1 var2')
y ** 2

展开和分解

1
x, y = symbols('x y')
  • 展开多项式
1
expand((x + y)**2)
  • 展开三角函数
1
expand(cos(x + y), trig=True)
  • 化简
1
simplify((x + x*y) / x)

高考题回顾

  • 03年全国卷

1570206018684

求和运算 Sum

\frac{1}{1^2+2\cdot1}+\frac{1}{2^2+2\cdot2}+...+\frac{1}{10^2+2\cdot10}
1
2
3
4
expr = Sum(1/(x**2 + 2*x), (x, 1, 10))  # x is the index
expr
N(expr,7)
expr.doit()

乘积运算 Product

\frac{1}{1^2+2\cdot1}\times\frac{1}{2^2+2\cdot2}\times...\times\frac{1}{10^2+2\cdot10}
1
2
3
expr = Product(1/(x**2 + 2*x), (x, 1, 10))
expr
expr.doit()