Las dos formas de escritura de funciones matemáticas básicamente hacen lo mismo. Sin embargo, cuando la función se define por tramos, la forma def-return se convierte en la más usada.
Se adjunta un ejemplo:
Funciones Lambda
Permite describir funciones sencillas de una sola línea, que no está conformada por intervalos.
f(x) = x \cos(x) - 2 x^2 + 3 x -1import numpy as np fx = lambda x: x*np.cos(x) - 2*(x**2) + 3*x -1
>>> fx(0.2) -0.28398668443175157
Funciones def-return
Permiten describir en detalle lo que sucede con una función matemática por intervalos. Tiene la ventaja de permitir definir valores por intervalos, puntos discontínuos, etc.
f(x)= \begin{cases} x \cos(x) - 2 x^2 + 3 x -1, & x>0 \\1, & x \leq 0 \end{cases}import numpy as np def fx(x): if x>0: fi = x*np.cos(x) - 2*(x**2) + 3*x -1 if x<=0: fi = 1 return(fi)
>>> fx(0.2) -0.28398668443175157