SymPy - classe de função

O pacote Sympy possui a classe Function, que é definida no módulo sympy.core.function. É uma classe base para todas as funções matemáticas aplicadas, como também um construtor para classes de funções indefinidas.

As seguintes categorias de funções são herdadas da classe Function -

  • Funções para número complexo
  • Funções trigonométricas
  • Funções para número inteiro
  • Funções combinatórias
  • Outras funções diversas

Funções para número complexo

Este conjunto de funções é definido em sympy.functions.elementary.complexes módulo.

re

Esta função retorna parte real de uma expressão -

>>> from sympy import * 
>>> re(5+3*I)

A saída para o snippet de código acima é fornecida abaixo -

5

>>> re(I)

A saída para o snippet de código acima é -

0

Im

Esta função retorna parte imaginária de uma expressão -

>>> im(5+3*I)

A saída para o snippet de código acima é fornecida abaixo -

3

>>> im(I)

A saída para o snippet de código acima é fornecida abaixo -

1

sign

Esta função retorna o sinal complexo de uma expressão.

Para uma expressão real, o sinal será -

  • 1 se a expressão for positiva
  • 0 se a expressão for igual a zero
  • -1 se a expressão for negativa

Se a expressão for imaginária, o sinal retornado é -

  • I se im (expressão) é positivo
  • -I se im (expressão) for negativo
>>> sign(1.55), sign(-1), sign(S.Zero)

A saída para o snippet de código acima é fornecida abaixo -

(1, -1, 0)

>>> sign (-3*I), sign(I*2)

A saída para o snippet de código acima é fornecida abaixo -

(-I, I)

Abs

Esta função retorna o valor absoluto de um número complexo. É definida como a distância entre a origem (0,0) e o ponto (a, b) no plano complexo. Esta função é uma extensão da função interna abs () para aceitar valores simbólicos.

>>> Abs(2+3*I)

A saída para o snippet de código acima é fornecida abaixo -

$\sqrt13$

conjugate

Esta função retorna o conjugado de um número complexo. Para encontrar o conjugado complexo, mudamos o sinal da parte imaginária.

>>> conjugate(4+7*I)

Você obtém a seguinte saída após executar o trecho de código acima -

4 - 7i

Funções trigonométricas

SymPy tem definições para todas as razões trigonométricas - sen cos, tan etc, bem como suas contrapartes inversas, como asin, acos, atan etc. Essas funções calculam os respectivos valores para um determinado ângulo expresso em radianos.

>>> sin(pi/2), cos(pi/4), tan(pi/6)

A saída para o snippet de código acima é fornecida abaixo -

(1, sqrt(2)/2, sqrt(3)/3)

>>> asin(1), acos(sqrt(2)/2), atan(sqrt(3)/3)

A saída para o snippet de código acima é fornecida abaixo -

(pi/2, pi/4, pi/6)

Funções em número inteiro

Este é um conjunto de funções para realizar várias operações em números inteiros.

ceiling

Esta é uma função univariada que retorna o menor valor inteiro não menor que seu argumento. No caso de números complexos, teto das partes real e imaginária separadamente.

>>> ceiling(pi), ceiling(Rational(20,3)), ceiling(2.6+3.3*I)

A saída para o snippet de código acima é fornecida abaixo -

(4, 7, 3 + 4*I)

floor

Esta função retorna o maior valor inteiro não maior que seu argumento. No caso de números complexos, esta função também ocupa o chão das partes real e imaginária separadamente.

>>> floor(pi), floor(Rational(100,6)), floor(6.3-5.9*I)

A saída para o snippet de código acima é fornecida abaixo -

(3, 16, 6 - 6*I)

frac

Esta função representa a parte fracionária de x.

>>> frac(3.99), frac(Rational(10,3)), frac(10)

A saída para o snippet de código acima é fornecida abaixo -

(0.990000000000000, 1/3, 0)

Funções combinatórias

Combinatória é um campo da matemática preocupado com problemas de seleção, arranjo e operação dentro de um sistema finito ou discreto.

factorial

O fatorial é muito importante em combinatória, onde fornece o número de maneiras pelas quais n objetos podem ser permutados. É simbolicamente representado como! Esta função é a implementação da função fatorial sobre inteiros não negativos, o fatorial de um inteiro negativo é infinito complexo.

>>> x=Symbol('x') 
>>> factorial(x)

A saída para o snippet de código acima é fornecida abaixo -

x!

>>> factorial(5)

A saída para o snippet de código acima é fornecida abaixo -

120

>>> factorial(-1)

A saída para o snippet de código acima é fornecida abaixo -

$\infty\backsim$

binômio

Esta função representa o número de maneiras pelas quais podemos escolher k elementos de um conjunto de n elementos.

>>> x,y=symbols('x y') 
>>> binomial(x,y)

A saída para o snippet de código acima é fornecida abaixo -

$(\frac{x}{y})$

>>> binomial(4,2)

A saída para o snippet de código acima é fornecida abaixo -

6

Linhas do triângulo de Pascal podem ser geradas com a função binomial.

>>> for i in range(5): print ([binomial(i,j) for j in range(i+1)])

Você obtém a seguinte saída após executar o trecho de código acima -

[1]

[1, 1]

[1, 2, 1]

[1, 3, 3, 1]

[1, 4, 6, 4, 1]

fibonacci

Os números de Fibonacci são a sequência inteira definida pelos termos iniciais F0 = 0, F1 = 1 e a relação de recorrência de dois termos Fn = Fn − 1 + Fn − 2.

>>> [fibonacci(x) for x in range(10)]

A seguinte saída é obtida após a execução do trecho de código acima -

[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

tribonacci

Os números de Tribonacci são a sequência inteira definida pelos termos iniciais F0 = 0, F1 = 1, F2 = 1 e a relação de recorrência de três termos Fn = Fn-1 + Fn-2 + Fn-3.

>>> tribonacci(5, Symbol('x'))

O trecho de código acima fornece uma saída equivalente à expressão abaixo -

$x^8 + 3x^5 + 3x^2$

>>> [tribonacci(x) for x in range(10)]

A seguinte saída é obtida após a execução do trecho de código acima -

[0, 1, 1, 2, 4, 7, 13, 24, 44, 81]

Funções Diversas

A seguir está uma lista de algumas funções usadas com freqüência -

Min- Retorna o valor mínimo da lista. É denominado Min para evitar conflitos com a função incorporada min.

Max- Retorna o valor máximo da lista. É denominado Max para evitar conflitos com a função embutida max.

root - Retorna enésima raiz de x.

sqrt - Retorna a raiz quadrada principal de x.

cbrt - Esta função calcula a raiz cúbica principal de x, (atalho para x ++ Rational (1,3)).

A seguir estão os exemplos das funções diversas acima e suas respectivas saídas -

>>> Min(pi,E)

e

>>> Max(5, Rational(11,2))

$\frac{11}{2}$

>>> root(7,Rational(1,2))

49

>>> sqrt(2)

$\sqrt2$

>>> cbrt(1000)

10