рдкрд╛рдпрдерди рдХреЗ рд╕рд╛рде рдЪрд░рд┐рддреНрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧред рднрд╛рдЧ 1ред рдореВрд▓ рдмрд╛рддреЗрдВ

рдЫрд╡рд┐

рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЧрдгрд┐рддреАрдп рдореЙрдбрд▓рд┐рдВрдЧ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╕рдордп, рдЕрдХреНрд╕рд░ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдЧрдгрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рдпрдерди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣реЛрддрд╛ рд╣реИред рд╕рд┐рдореНрдкреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдкрд╛рдпрдерди рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдореАрдХрд░рдгреЛрдВ рдФрд░ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ, рдПрдХреАрдХрд░рдг рдФрд░ рд╡рд┐рднреЗрджрд┐рдд рдХрд░рдиреЗ, рд╕реАрдорд╛рдУрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ, рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдФрд░ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ, рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдФрд░ рдЕрдВрддрд░ рд╕рдореАрдХрд░рдгреЛрдВ рдФрд░ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдореЗрдВ рд╕рдлрд▓ рд░рд╣рд╛ред

рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдЧрдгрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдЪрд░ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдорд╛рдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдкрд╛рдпрдерди рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкрд░ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЕрдиреБрд╢рд╛рд╕рди "рдХрдВрдкреНрдпреВрдЯрд░ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ" рдХреЗ рдПрдХ рд╢рд┐рдХреНрд╖рдХ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдЫрд╛рддреНрд░реЛрдВ рдХреЛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдЕрдиреБрд╕рдВрдзрд╛рди рдХреЗ рд▓рд┐рдП рдЗрд╕ рднрд╛рд╖рд╛ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд░рд╛рддрд╛ рд╣реВрдВред рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдкрд╛рдпрдерди рдореЗрдВ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рддреБрд░рдВрдд рдЪреЗрддрд╛рд╡рдиреА рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпреЗ рд▓реЗрдЦ рдкреВрд░реНрдг рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХрддреНрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЙрдирдХрд╛ рд▓рдХреНрд╖реНрдп рдЫрд╛рддреНрд░реЛрдВ рдХреЛ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рд╕рд┐рдЦрд╛рдирд╛ рд╣реИред

рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдкрд╣рд▓рд╛ рдХрджрдо рдкрд╛рдЗрдк, рдкрд╛рдпрдерди рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рд╕рд┐рдореНрдкреА рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдирд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рд╕рдВрднрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЪрд▓рд┐рдП рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдиреЛрдЯред рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдЫреЛрдЯрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐ рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдирд╣реАрдВ рджрд┐рдЦрд╛рдИ рдЧрдИ рд╣реИ: рд╕рд╣рд╛рдиреБрднреВрддрд┐ рдЖрдпрд╛рдд рд╕реЗ *

рд╡рд░реНрдг рдЪрд░ рдХреА рд╕реНрдкрд╖реНрдЯ рдШреЛрд╖рдгрд╛


SymPy рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП , рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдЪрд░ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЗрд╕ рддрд░рд╣ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЧрдгрд┐рддреАрдп рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдЬреИрд╕реЗ рдХрд┐ рдЧрдгрд┐рддрдЬреНрдЮ рдпрд╛ рдореЗрдкрд▓ рдореЗрдВ, рдЪрд░ рдХреЛ рддреБрд░рдВрдд рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд╛рдпрдерди рдореЗрдВ, рдЙрдиреНрд╣реЗрдВ рдЬрдмрд░рди рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдпрд╣ рдХрдИ рддрд░реАрдХреЛрдВ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдкреНрд░рддреАрдХреЛрдВ () рдпрд╛ var () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдкрд╣рд▓рд╛ рдлрд╝рдВрдХреНрд╢рди рд╡рд░реНрдг рд╡рд╕реНрддреБ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЛ рдПрдХ рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрддрд╛ рд╣реИред рджреВрд╕рд░рд╛, рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЗ рдмрд┐рдирд╛, рдПрдХ рдЪрд░рд┐рддреНрд░ рдЪрд░ рдмрдирд╛рддрд╛ рд╣реИред

рдХреЛрдб рдЙрджрд╛рд╣рд░рдг
>>> x,y,a,b = symbols('xya b') #    ,      >>> f=a**3*x + 3*a**2*x**2/2 + a*x**3 + x**4/4 #  f    >>> type(f) <class 'sympy.core.add.Add'> >>> var('u,v') (u, v) >>> f=sin(u)**2+tan(v) #  f    >>> type(f) <class 'sympy.core.add.Add'> 


рдкреНрд░рддреАрдХреЛрдВ () рдФрд░ var () рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмреАрдЪ рдореБрдЦреНрдп рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдкрд╣рд▓рд╛ рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рддреАрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддрд╛ рд╣реИред рднрд╡рд┐рд╖реНрдп рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рдЪрд░ рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рджреВрд╕рд░рд╛, рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЗ рдмрд┐рдирд╛, рдПрдХ рдЪрд░рд┐рддреНрд░ рдЪрд░ рдмрдирд╛рддрд╛ рд╣реИред
рдкреНрд░рддреАрдХреЛрдВ () рдФрд░ var () рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рдЖрдк рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░рддреАрдХ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рдХреЛрдб рдЙрджрд╛рд╣рд░рдг
 >>> x=symbols('x:9'); x #    0  9 (x0, x1, x2, x3, x4, x5, x6, x7, x8) >>> x=symbols('x5:10'); x #    5  9 (x5, x6, x7, x8, x9) >>> x=var('x:9'); x #    0  9 (x0, x1, x2, x3, x4, x5, x6, x7, x8) >>> x=var('x5:10'); x #    5  9 (x5, x6, x7, x8, x9) 


рдЖрдк рдПрдХ рдкреНрд░рдХрд╛рд░ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕реАрдзреЗ рдкреНрд░рддреАрдХреЛрдВ () рдФрд░ var () рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкреНрд░рддреАрдХ рдЪрд░ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдХрднреА-рдХрднреА рдРрд╕реЗ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╕реНрдкрд╖реНрдЯ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддреБрд▓рдирд╛ рдХрд░реЗрдВ:

рдХреЛрдб рдЙрджрд╛рд╣рд░рдг
 >>> x = symbols('x', integer=True) #   >>> sqrt(x**2) Abs(x) >>> x = symbols('x', positive = True, integer=True) >>> sqrt(x**2) x >>> x = symbols('x') >>> sqrt(x**2) #  x,  xтЙе0 sqrt(x**2) >>> x = var('x', integer=True) >>> sqrt(x**2) Abs(x) >>> x = var('x', positive = True, integer=True) >>> sqrt(x**2) x >>> x = var('x') >>> sqrt(x**2) #  x,  xтЙе0 sqrt(x**2) 


рдХрд┐рд╕реА рдПрдХрд▓ рд╡рд░реНрдг рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, seq = True рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ :

 >>> symbols('x',seq=True) (x,) 

рдЪрд░рд┐рддреНрд░ рдЪрд░ рдХреЗ рд▓рд┐рдП рд╡реИрдз рдорд╛рди рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг:

 >>> x, y, z = symbols('x,y,z', real=True) >>> x.is_real and y.is_real and z.is_real True 

рдлрдВрдХреНрд╢рди s ()


рдХрднреА-рдХрднреА рдЪрд░рд┐рддреНрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╕рд┐рдореНрдкреА рдХреЗ рдмрдЬрд╛рдп рдкрд╛рдпрдерди рдиреНрдпреВрдореЗрд░рд┐рдХ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╛рде рд╣реА рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЛ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд╝рдВрдХреНрд╢рди рдПрд╕ () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддреБрд▓рдирд╛ рдХрд░реЗрдВ:

 >>> expr = x**2 + sin(y) + S(10)/2; expr x**2 + sin(y) + 5 >>> type(10) <class 'int'> >>> type(S(10)) #    <class 'sympy.core.numbers.Integer'> 

рдкрд╛рдпрдерди рд╕реНрдерд┐рд░рд╛рдВрдХ рдФрд░ рдПрдХ рд╡рд░реНрдг рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рд╡рд░реНрдг рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреА рдЧрдгрдирд╛ рд╕рдЯреАрдХрддрд╛ рдХреА рджреА рдЧрдИ рдбрд┐рдЧреНрд░реА рдХреЗ рд╕рд╛рде рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдорд╛рдирдХ рджреМрд░ () рдлрд╝рдВрдХреНрд╢рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ:

 z=1/7; z #   z    0.14285714285714285 z1=S(1)/7; z1 1/7 z2=z1.n(30); z2 #   z2    30   0.142857142857142857142857142857 z3=round(z1,30); z3 0.14285714285714285 

рдЪрд░рд┐рддреНрд░ рдХреЗ рдирд╛рдо


рдпрджрд┐ рдЖрдкрдХреЛ рд╡рд░реНрддрдорд╛рди рд╕рддреНрд░ рдореЗрдВ рд▓рдЧрд╛рддрд╛рд░ рд╕рд╛рдВрдХреЗрддрд┐рдХ рдЧрдгрд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рд╕рд┐рдореНрдкреА.рдмреЗрдХ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдирд╛рдо рдЖрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рдХреЛрдб рдЙрджрд╛рд╣рд░рдг
 >>> import sympy.abc >>> dir(sympy.abc) ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_clash', '_clash1', '_clash2', 'a', 'alpha', 'b', 'beta', 'c', 'chi', 'd', 'delta', 'division', 'e', 'epsilon', 'eta', 'exec_', 'f', 'g', 'gamma', 'greeks', 'h', 'i', 'iota', 'j', 'k', 'kappa', 'l', 'lamda', 'm', 'mu', 'n', 'nu', 'o', 'omega', 'omicron', 'p', 'phi', 'pi', 'print_function', 'psi', 'q', 'r', 'rho', 's', 'sigma', 'string', 'symbols', 't', 'tau', 'theta', 'u', 'upsilon', 'v', 'w', 'x', 'xi', 'y', 'z', 'zeta'] 


рдЪрд░ рдХрд╛ рдирд╛рдо рдХрдорд╛рдВрдб рдбреЗрд▓ name1, name2, .. рдХреЗ рд╕рд╛рде рдирд╛рдо рд╕реНрдерд╛рди рд╕реЗ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 >>> type(x) <class 'sympy.core.symbol.Symbol'> >>> del x,y >>> x NameError: name 'x' is not defined 

рдорд╛рдирдХ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╛рде рд╣реА рд╕рд╛рде рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдирд╛рдо, рдЖрдкрдХреЛ рд╕рд╣рд╛рдиреБрднреВрддрд┐ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

 >>> from sympy import * 

рд╡рд┐рдзрд┐ рдЙрдк (...)


рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд▓рд┐рдЦрддреЗ рд╕рдордп, рдЗрд╕рдХрд╛ рд╕рд░рд▓реАрдХрд░рдг рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 >>> a,b,c,d,x,y,z,u,v,w = symbols('abcdxyzuv w') >>> x - z + 20 -z- 15 + 3*sin(pi/2)+2*z x + 8 

рдЪрд░ (...) рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЪрд░ рдХреЗ рджрд┐рдП рдЧрдП рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдг рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 >>> a, x = symbols('a x') >>> f= a**3*x + 3*a**2*x**2/2 + a*x**3 + x**4/4 >>> f.subs(a,1) #   f   a    x**4/4 + x**3 + 3*x**2/2 + x 

рдпрджрд┐ рдЙрдкрд╡рд┐рдзрд┐ рдореЗрдВ рджреЛ рддрд░реНрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдЙрдк (рдкреБрд░рд╛рдиреЗ, рдирдП) рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдЕрд░реНрдерд╛рддреНред рдкреБрд░рд╛рдиреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдкреБрд░рд╛рдиреЗ рдХреЛ рдирдП рдирдП рджреНрд╡рд╛рд░рд╛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдкрд╕рд░реНрдЧ () рдкрджреНрдзрддрд┐ рдХрд╛ рддрд░реНрдХ рдПрдХ рдЕрдиреБрдХреНрд░рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЬреЛрдбрд╝реЗ (рдкреБрд░рд╛рдиреЗ, рдирдП) рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдпрд╣ рдПрдХ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 >>> a,b,c,d,x,y,z = symbols('abcdxy z') >>> f=a*x**3 +b*y**2 + c*z+d >>> f.subs([(a,1),(b,2),(c,3),(d,4)]) #   a=1, b=2, c=3, d=4 x**3 + 2*y**2 + 3*z + 4 >>> pr= x**3+4*x**2+6*x+10 >>> pr.subs(x,1/x) #     10 + 6/x + 4/x**2 + x**(-3) 

рдЖрдЗрдП рд╣рдо рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдЪрд░ (рдЕрдЬрдЧрд░ рдХреЗ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдФрд░ рд╕рд╛рдзрд╛рд░рдг рдЪрд░) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдирд┐рдореНрди рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдХреА рдУрд░ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЪрд▓рд╛рдПрдБ:

 >>> x='Hello' >>> pr=x+'world' >>> pr 'Helloworld' >>> x='AAA' #   x   >>> pr 'Helloworld' 

рдирд┐рдпрдо рдпрд╣рд╛рдВ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ: рдпрджрд┐ рдЪрд░ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдЪрд░ рд╡рд╛рд▓реЗ рдкреВрд░реНрд╡ рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреБрдирд░реНрдЧрдгрдирд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдирд┐рдпрдо рдирд┐рдпрдорд┐рдд рдкрд╛рдпрдерди рдЪрд░реЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЕрдВрд╢ рд╕рдВрдЪрд╛рд▓рди


SymPy рдореЙрдбреНрдпреВрд▓ рдЕрдВрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдЖрдо рднрд╛рдЬрдХ рдореЗрдВ рд▓рд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддреБрд▓рдирд╛ рдХрд░реЗрдВ:

 >>> S(1)/3+S(2)/5 11/15 >>> 1/3+2/5 0.7333333333333334 

рджрд╢рдорд▓рд╡ рдЧреЛрд▓рд╛рдИ рдХреЗ рдмрд┐рдирд╛ рдкрд░рд┐рдореЗрдп рднрд┐рдиреНрдиреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХрд╕рдВрдЧрдд (рдЕрдВрд╢, рднрд╛рдЬрдХ) рдФрд░ рдкреВрд░реНрдгрд╛рдВрдХ (...) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 >>> z=Rational(1, 7)+Rational(2, 5); z 19/35 >>> Integer(1)/Integer(5) 1/5 >>> 1/5 0.2 >>> z=Integer(1)/Integer(5)+Rational(2, 7); z 17/35 

рд░рд╛рдЙрдВрдбрд┐рдВрдЧ рдХрдореНрдкреНрдпреВрдЯрд┐рдВрдЧ


рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдореЗрдВ, рдирд┐рдпрдо рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рдЕрдЧрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЧреЛрд▓ рди рдХрд░реЗрдВред рджреЗрдЦреЗрдВ рдХрд┐ рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд╛рдпрдерди рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдХреИрд╕реЗ рдмрджрд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рд╡рд░реНрдЧрдореВрд▓ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ рдФрд░ рдХреЛрдИ рд░рд╛рдЙрдВрдбрд┐рдВрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ, рдЪреВрдВрдХрд┐ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рджрд╢рдорд▓рд╡ рдмрд┐рдВрджреБ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рдЬрд╛рддреА рд╣реИ, рдкрд░рд┐рдгрд╛рдо рдЕрдиреБрдорд╛рдирд┐рдд рд╣реЛрдЧрд╛:

 >>> sqrt(20) 2*sqrt(5) >>> sqrt(20.0) #        4.47213595499958 

рдХрд┐рд╕реА рднреА рд╡рд░реНрдг рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП, рдПрдХ рджрд╢рдорд▓рд╡ (...) ( eval uate f loat) рд╡рд┐рдзрд┐ рд╣реИ рдЬреЛ рдЕрдкрдиреЗ рджрд╢рдорд▓рд╡ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рд▓реМрдЯрд╛рддреА рд╣реИ:

 >>> sqrt(20).evalf() #  sqrt()  sympy 4.47213595499958 >>> E.evalf() 2.71828182845905 

Evalf ([n, ...]) рд╡рд┐рдзрд┐ рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреА рд╣реИ (n = рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛)

 >>> sqrt(20).evalf(30) 4.47213595499957939281834733746 >>> pi.evalf(20) 3.1415926535897932385 

рдЖрдкрдХреЛ рдпрд╣ рднреА рд╣рдореЗрд╢рд╛ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдВрдХрдЧрдгрд┐рдд рдПрдХ рд╕рдЯреАрдХ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рддреБрд▓рдирд╛ рдХрд░реЗрдВ:

 >>> from sympy import * >>> one=S('one') >>> one = cos(1)**2 + sin(1)**2 >>> one.evalf() #  1 1.00000000000000 >>> (one-1).evalf() #    0 -0.e-124 

рдпрджрд┐ рдпрд╣ рдЬреНрдЮрд╛рдд рд╣реИ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рдЧрдгрдирд╛ рддреНрд░реБрдЯрд┐ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ evalf () рд╡рд┐рдзрд┐ рдХреЗ chop = True рд╡рд┐рдХрд▓реНрдк рд╕реЗ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдпрд╛ рдХрд╛рд▓реНрдкрдирд┐рдХ рднрд╛рдЧ рдХрд╛ рдмрд╣реБрдд рдХрдо рдореВрд▓реНрдп рд╢реВрдиреНрдп рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд┐рдЫрд▓рд╛ рдЙрджрд╛рд╣рд░рдг рд▓реЗрдВ:

 >>> (one-1).evalf() #    0 -0.e-124 >>> (one - 1).evalf(chop=True) 0 

рдЕрдирдиреНрддрддрд╛


рд╕рд┐рдореНрдкреА рдЖрдпрд╛рдд * рд╕реЗ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЕрдирдВрдд рдкреНрд░рддреАрдХ oo (рджреЛ рдЕрдХреНрд╖рд░ тАЯo line) рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдХреБрдЫ рдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд░реНрдп рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 >>> oo+1 oo >>> 1000000<oo True >>> 1/oo 0 

рдЗрдиреНрдлрд┐рдирд┐рдЯреА рдкреНрд░рддреАрдХ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╕реАрдорд╛ () рдФрд░ рдПрдХреАрдХрд░рдг () рдлрд╝рдВрдХреНрд╢рдВрд╕ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдПрдХреАрдХрд░рдг рд╕реАрдорд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗред

рдирд┐рд╖реНрдХрд░реНрд╖


рд▓реЗрдЦ рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХреА рдЧрдИ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдЧрдгрдирд╛ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╡рд┐рдзрд┐рдпреЛрдВ рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдЖрдЧреЗ рдЬрд╛рдВрдЪ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╡рд┐рд▓реБрдкреНрддрддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдореНрдмреЗрдбреЗрдб рдЪрд░ рдХреЗ рд╕рд╛рде рд╕рдореАрдХрд░рдгреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдирд╛, рдФрд░ рдЗрд╕реА рддрд░рд╣ред

рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореЗрд░рд╛ рд▓реЗрдЦ рдкрд╛рдпрдерди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ, рдЫрд╛рддреНрд░реЛрдВ рдФрд░ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдЕрдиреБрд╕рдВрдзрд╛рди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд▓реЛрдЧреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

Source: https://habr.com/ru/post/hi423731/


All Articles