【发布时间】:2023-03-24 12:49:02
【问题描述】:
之前发布了一个类似的问题,但太模糊了,希望这能解决我的问题:
我有一个函数IVcal(rho,alpha,K),我想找到rho 和alpha 的最佳值,这样数据列表smiledata(变化K 的函数的输出)最适合数据列表calibrate:
xaxis = np.linspace(0.006,0.036,20)
calibrate = [calfun(K) for K in xaxis]
smiledata = [IVcal(rho,alpha,K) for K in xaxis]
我的想法是,我希望图形 plt.plot(xaxis,smiledata, 'b--') 尽可能接近图形 plt.plot(xaxis,calibrate, 'r--'),只需改变 rho 和 alpha。
我只是不确定如何进行优化以找到这些最佳值。我考虑过将smiledata 和calibrate 之间的差异最小化,但我还是找不到这样做的好方法,特别是因为我需要输入的值而不是输出的值。对于之前含糊不清的任何建议和道歉,我将不胜感激。如果还有什么需要澄清的,请告诉我。
【问题讨论】:
-
IVcal(如果有的话还有calfun)的公式是什么?
-
Hill climbing 也许?
-
它们都是相当长的公式,引用了几个先前定义的函数/表达式。我不认为它们会相关,但是如果您需要它们,我可以尝试浓缩它们吗?如果你不介意我问,你为什么要它们?理想情况下,我会采用一种更通用的方法,该方法适用于与微笑数据长度相同的任何数据列表(calfun 只是为了说明我正在尝试近似以找到另一个数据集的“最佳拟合”)
-
你可以试试梯度下降
标签: python numpy optimization