Minicurso de Python para Matemática Material disponível para compra: e-book livro . Consulte outras formas de colaboração aqui !
3.3 Funções
Em Python , uma função é definida pela instrução def . Por exemplo, o seguinte código implementa a função
e imprime o valor de f ( 2 ) .
1 def f ( x ):
2 y = 2* x - 3
3 return y
4
5 z = f (2)
6 print ( f 'f(2) = {z}' )
Observação 3.3.1.
Para funções pequenas, pode-se utilizar a instrução lambda de funções anônimas. Por exemplo,
1 f = lambda x : 2* x - 3
2 print ( f 'f(3) = {f(3)}' )
Exemplo 3.3.1.(Funções com parâmetros)
O seguinte código, implementa o polinômio de primeiro grau
com parâmetros predeterminados a = 1 e b = 0 (função identidade).
1 def p ( x , a =1., b =0.):
2 y = a * x + b
3 return y
4
5 print ( 'p(2) =' , p (2.))
6 print ( 'p(2, 3, -5) =' , p (2., 3., -5.))
E. 3.3.1.
Implemente uma função para computar as raízes de um polinômio de grau 2 p ( x ) = a x 2 + b x + c .
Resposta
1 import math
2 def raiz_poli2 ( a , b , c ):
3 dlta = b **2 - 4.* a * c
4 if ( dlta > 0.):
5 x1 = (- b + math . sqrt ( dlta ))/(2.* a )
6 x2 = (- b - math . sqrt ( dlta ))/(2.* a )
7 elif ( dlta == 0.):
8 x1 = - b /(2.* a )
9 x2 = x1
10 else :
11 x1 = None
12 x2 = None
13 return x1 , x2
E. 3.3.2.
Implemente uma função que computa o produto escalar de dois vetores
x = ( x 0 , x 1 , … , x n − 1 ) ,
(3.8)
y = ( y 0 , y 1 , … , y n − 1 ) .
(3.9)
Dica: considere que os vetores são alocados com lists .
Resposta
1 def dot ( x , y ):
2 s = 0.
3 for xi , yi in zip ( x , y ):
4 s += xi * yi
5 return s
E. 3.3.3.
Implemente uma função que computa o determinante de matrizes 2 × 2 . Dica: considere que a matriz está alocada com um list encadeado.
Resposta
1 def det ( A ):
2 d = A [0][0]* A [1][1] \
3 - A [0][1]* A [1][0]
4 return d
E. 3.3.4.
Implemente uma função que computa a multiplicação matriz - vetor A x , com A matriz 2 × 2 e x um vetor de dois elementos. Assuma que a matriz e o vetor estão alocados usando list .
Resposta
1 def matVet ( A , x ):
2 n = len ( A )
3 y = [0.]* n
4 for i in range ( n ):
5 for j in range ( n ):
6 y [ i ] += A [ i ][ j ]* x [ j ]
7 return y
Envie seu comentárioAproveito para agradecer a todas/os que de forma assídua ou esporádica contribuem enviando correções, sugestões e críticas!
Este texto é disponibilizado nos termos da Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional . Ícones e elementos gráficos podem estar sujeitos a condições adicionais.