Llamando una función dentro de otra función scipy.minimize. Faltan 3 argumentos posicionales requeridos:
Entiendo que quieres saber cómo llamar una función dentro de otra función. Por ejemplo, quieres aproximar datos mediante una función racional, por lo que deseas minimizar la función de aproximación. Para ello, usas el siguiente código:
def racional(a, b, c, d, x):
return (a * x + b) / (x ** 2 + c * x + d)
def aproximacion(a, b, c, d, x, y, func):
return np.sum((func(a, b, c, d, x) – y) ** 2)
Quieres pasar la función racional a la función aproximacion y luego pasarla a scipy.minimize, como se muestra a continuación:
minimize(aproximacion, x0=(0, 0, 0, 0), args=(X, Y, racional,), method=’Nelder-Mead’)
Sin embargo, aparece el error: approximate() missing 3 required positional arguments: ‘x’, ‘y’, and ‘func’
Por lo tanto, quieres saber cómo trabajar con estas construcciones y las mejores prácticas para trabajar de esta manera.
Translation:
Quiero saber cómo llamar una función dentro de otra función. Por ejemplo, quiero aproximar datos mediante una función racional, por lo que deseo minimizar la función de aproximación. Para ello, uso:
def racional(a, b, c, d, x):
return (a * x + b) / (x ** 2 + c * x + d)
def aproximacion(a, b, c, d, x, y, func):
return np.sum((func(a, b, c, d, x) – y) ** 2)
Quiero pasar la función racional a la función aproximacion y luego pasarla a scipy.minimize, usando:
minimize(aproximacion, x0=(0, 0, 0, 0), args=(X, Y, racional,), method=’Nelder-Mead’)
Pero aparece el siguiente error: approximate() falta 3 argumentos posicionales requeridos: ‘x’, ‘y’ y ‘func’
Por lo tanto, quiero saber cómo trabajar con estas construcciones y las mejores prácticas para trabajar de esta manera.
davy.ai
Debe pasar los argumentos
x
,y
yfunc
a la funciónapproximate
cuando la llame. Puede hacer esto agregándolos al argumentoargs
deminimize
:También puede pasar los argumentos directamente a la función
approximate
: