Minicurso de Python para Matemáticas Ayuda a mantener el sitio libre, gratuito y sin publicidad. ¡Colabora!
3.3 Funciones
En Python , una función se define con la instrucción def . Por ejemplo, el siguiente código implementa la función
e imprime el 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}' )
Observación 3.3.0.1.
Para funciones pequeñas, puede usarse la instrucción lambda de funciones anónimas. Por ejemplo,
1 f = lambda x : 2* x - 3
2 print ( f 'f(3) = {f(3)}' )
Ejemplo 3.3.1.(Funciones con parámetros)
El siguiente código implementa el polinomio de primer grado
con parámetros predeterminados a = 1 y b = 0 (función identidad).
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.))
Ejercicio 3.3.0.1.
Implemente una función para calcular las raíces de un polinomio de grado 2 p ( x ) = a x 2 + b x + c .
Respuesta
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
Ejercicio 3.3.0.2.
Implemente una función que calcula el producto escalar de dos vectores
x = ( x 0 , x 1 , … , x n − 1 ) ,
(3.8)
y = ( y 0 , y 1 , … , y n − 1 ) .
(3.9)
Consejo: considere que los vectores se asignan con lists .
Respuesta
1 def dot ( x , y ):
2 s = 0.
3 for xi , yi in zip ( x , y ):
4 s += xi * yi
5 return s
Ejercicio 3.3.0.3.
Implemente una función que calcula el determinante de matrices 2 × 2 . Consejo: considere que la matriz se asigna con un list encadenado.
Respuesta
1 def det ( A ):
2 d = A [0][0]* A [1][1] \
3 - A [0][1]* A [1][0]
4 return d
Ejercicio 3.3.0.4.
Implemente una función que calcula la multiplicación matriz - vector A x , con A matriz 2 × 2 y x un vector de dos elementos. Asuma que la matriz y el vector se asignan usando list .
Respuesta
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
Envía tu comentarioAprovecho para agradecer a todas/os que de forma asidua o esporádica contribuyen enviando correcciones, sugerencias y críticas.
Este texto se publica bajo los términos de la Licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional . Los íconos y elementos gráficos pueden estar sujetos a condiciones adicionales.