我有两个功能,
f(x), f(x,a)
我可以为一组 x-f(x)
值绘制 x-f(x,a)
和 a
。
现在我想知道对于 a
的哪个值,残差变得最小,f(x)~f(x,a)
的 a
将是最小的。
f(x)
和 f(x,a)
都为 x
数组的输入返回一个数组。
我尝试了 scipy minimize 函数,但我收到了很多错误(尽管我认为它们是不同的错误
(ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
)。
但是我想知道,如何在python中获得b
的最小值?有没有为此量身定制的功能?
以下是我尝试过的示例:
from scipy.optimize import minimize
import numpy as np
def f1(x):
a = x + 2
return (a)
def f2(x, b):
a = x**3 + b
return (a)
def res2(x, b):
return (f1(x) - f2(x, b))
x = np.linspace(2, 5, 4)
cc = 20
print(res2(x, cc))
minimize(res2, x, method='BFGS', jac=rosen_der)
但这不起作用。