Professional Documents
Culture Documents
1. Importare:
import sympy as sp
sp.init_printing() # Pentru afisarea simbolurilor
2. Creare simboluri:
x = sp.Symbol(‘x’)
y = sp.Symbol(‘y’, real=True)
Argument Atribut
real, imaginary is_real, is_imaginary
positive, negative is_positive, is_negative
integer, odd, even is_integer, is_odd, is_even
prime is_prime
finite, infinite is_finite, is_infinite
ex:
a) Întregi:
n = sp.Symbol(‘n’, integer=True)
n.is_integer # True
n.is_Integer # False
i = sp.Integer(19)
i.is_integer # True
i.is_Integer # True
1
sp.factorial(x) # Afiseaza x!
b) Reale:
sp.Float(0.3, 25) # 0.299999…
sp.Float(‘0.3’, 25) # 0.3
c) Raționale:
sp.Rational(11, 13) # 11/13
sp1 = sp.Rational(2,3)
sp2 = sp.Rational(4,5)
sp1 * sp2 # 8/15
Π = sp.pi
e = sp.e
Y = sp.EulerGamma
i = sp.I
∞ = sp.oo
5. Funcții:
x,y,z = sp.symbols(“x,y,z”)
f = sp.Function(‘f’)
f(x) # f(x)
g = sp.Function(‘g’)(x,y,z)
g # g(x,y,z)
g.free_symbols # {x,y,z}
• Lambda:
h = sp.Lambda(x, x**2)
h # (x -> x^2)
h(5) # 25
h(1+x) # (1+x)^2
6. Expresii:
x = sp.Symbol(‘x’)
expr = x**2 + 1 + 3*x**3
expr # 3x^3 + 2x^2 + 1
expr.args # (1, 2x^2, 3x^3)
expr.args[1] # 2x^2
2
• Manipularea expresiilor:
a. Simplificarea
ex1:
ex2:
ex3:
o Funcții de simplificare
sp.simplify()
sp.trigsimp()
sp.powsimp()
sp.combsimp()
sp.ratsimp()
b. Explicitarea
ex1:
expr = (x+1)*(x+2)
expr.expand() # x^2 + 3x + 2
ex2:
ex3:
3
ex4:
ex5:
ex6:
ep.exp((a-b)*x).expand(power_exp=True) # e^(iax)*e^(-ibx)
c. Factor comun:
sp.factor(x**2 -1) # (x-1)(x+)
sp.factor(x*sp.cos(x) + sp.sin(z) * x) # x(cos(x)+sin(z))
e. Combine:
sp.trigsimp()
sp.powsimp()
sp.logcombine()
ex:
g. Substituția:
ex1:
(x+y).subs(x,y) # 2y
sp.sin(x * sp.exp(x)).subs(x,y) # sin(y*e^y)
ex2:
ex1:
ex2:
8. Derivate
ex1:
f = sp.Function(‘f’)(x)
sp.diff(f,x) # d/dx f(x)
f.diff(x) # d/dx f(x)
sp.diff(f,x,x) # d^2/dx^2 f(x)
sp.diff(f,x,3) # d^3/dx^3 f(x)
ex2:
g = sp.Function(‘g’)(x,y)
g.diff(x,y) # ∂^2/ ∂x ∂y g(x,y)
g.diff(x,2,y,3) # ∂^5/ ∂x^3 ∂y^2 g(x,y)
ex3:
ex4:
ex5:
d = sp.Derivative(sp.exp(sp.cos(x)), x)
d # d/dx e^(cos(x))
d.doit() # -e^(cos(x)) * sin(x)
5
9. Integrale
ex1:
a,b,x,y = sp.symbols(“a,b,x,y”)
f = sp.Function(‘f’)(x)
sp.integrate(f) # ∫ 𝑓(𝑥)𝑑𝑥
𝑎
sp.integrate(f,(x,a,b)) # ∫𝑏 𝑓(𝑥)𝑑𝑥
ex2:
sp.integrate(sp.sin(x)) # -cos(x)
sp.integrate(sp.sin(x),(x,a,b)) # cos(a) – cos(b)
sp.integrate(sp.ext(-x**2, (x,0,oo)) # √π/2
ex3:
expr = (x+y)**2
sp.integrate(expr,x) # (x^3)/3 + (x^2)*y * xy^2
sp.integrate(expr,x,y) # ((x^3)y)/3 + (x^2 y^2)/2 + (xy^3)/3
sp.integrate(expr, (x,0,1), (y,0,1)) # 7/6
10. Serii:
ex1:
x = sp.Symbol(‘x’)
f = sp.Function(‘f)(x)
sp.series(f,x) # Returneaza dezvoltarea seriei
x0 = sp.Symbol(‘x_0’)
f.series(x,x0,n=2) # Dezvoltarea pentru n=2
f.series(x,x0,n=2).remove() # Dezvoltarea pentru n=2 fara O()
ex2:
6
11. Limite:
ex1:
sp.limit(sp.sin(x), x, 0) # 1
f = sp.Function(‘f’)
x, h = sp.symbols(“x, h”)
diff_limit = (f(x+h) – f(x)) / h
sp.limit(diff_limit.subs(f, sp.cos), h, 0) # -sin(x)
ex2:
ex1:
n = sp.Symbol(‘n’, positive=True)
x = sp.Sum(1/(n**2), (n,1, oo)) # ∑𝑜𝑜 2
𝑛=1 1/(𝑛 )
x.doit() # (π^2)/6
ex2:
x = sp.Product(n, (n,1,7))
x # ∏7𝑛=1 𝑛
x.doit() # 5040
13. Ecuații:
ex1:
x = sp.Symbol(‘x’)
sp.solve(x**2 + 2*x -3) # [-3,1]
ex2:
a, b, c = sp.symbols(“a,b,c”)
sp.solve(a*x**2 + b*x +c, x) # [1/2a*(-b+√−4𝑎𝑐 + 𝑏^2), -1/2a*(b+
√−4𝑎𝑐 + 𝑏^2)]
7
ex3:
eq1 = x + 2*y – 1
eq2 = x – y + 1
sp.solve([eq1, eq2], [x,y], dict=True) # [{x: -1/3, y: 2/3}]
• Ecuații diferențiale:
ex:
d^2u/dx^2 + u(x)+1=0
u(0)=0; (du/dx)(1)=1
u = sympy.Function('u')
x = sympy.Symbol('x')
sympy.dsolve(
sympy.Derivative(u(x),x,x)
+u(x)+1,
u(x),
ics={
u(0): 0,
u(x).diff(x).subs(x,1): 1
}
) # u(x)= (sin(1)+1)sin(x)/cos(1) + cos(x) -1
ex1:
1
sp.Matrix([1,2]) #
2
sp.Matrix([[1,2]]) # 1 2
0 1 2
sp.Matrix(3,3, lambda m,n : 10*m + n) # 10 11 12
20 21 22
ex2:
a,b,c,d = symbols(“a,b,c,d”)
M = sp.Matrix([
[a,b],
[c,d]
])
8
2
M*M # [ 𝑎 + 𝑏𝑐 𝑎𝑏 + 𝑏𝑑 ]
𝑎𝑐 + 𝑐𝑑 𝑏𝑐 + 𝑑^2
x = sp.Matrix(sp.symbols(“x1,x2”))
𝑎𝑥1 𝑏𝑥2
M*x # [ ]
𝑐𝑥1 𝑑𝑥2
ex3:
p,q = sp.symbols(“p,q”)
M = sp.Matrix([
[1,p],
[q,1]
])
b = sp.Matrix(sp.symbols(“b1,b2”))
x = M.LUsolve(b)
𝑝(−𝑏1𝑞+𝑏2)
𝑏1 − −𝑝𝑞+1
x # [ ]
−𝑏1𝑞+𝑏2
−𝑝𝑞+1
x = M.inv() * b
𝑝𝑞 𝑏2𝑝
𝑏1 (−𝑝𝑞+1 + 1) − −𝑝𝑞+1
x # [ ]
𝑏1𝑞 𝑏2
− +
−𝑝𝑞+1 −𝑝𝑞+1
Funcție Descriere
transpose/T transpusa matricei
adjoint/H adjuncta
trace urma matricei
det determinantul matricei
inv inversa matricei
LUdecomposition factorizarea LU a matricei
LUsolve rezolvare sistem de ecuatii cu
factorizarea LU
QRdecomposition factorizarea QR a matricei
diagonalize diagonalizarea matricei D=(P^-1)MP
norm norma matricei
rank rangul matricei
singular_values valorile singulare ale matricei
solve rezolva sistem de ecuatii