优化应用于离散数据的变量,以最小化误差函数

问题描述 投票:0回答:1

我正在尝试根据我在实验室获得的离散数据集来优化函数。

Spectrum_1
Spectrum_2
是长度为
N
的实验数据集。这两个数组包含
lambdas
数组中每个 lambda(波长)值的值。

所以:

len(Spectrum_1) == len(Spectrum_2) == len(lambdas)

每个

Spectrum_1
Spectrum_2
都有符号形式

Spectrum = G(T,lambda) * E(lambda)

E(lambda) 未知,但已知随 T 变化。E(lambda) 将是离散数据(在“lambda”数组中的每个值上定义的一组点)

G(T, lambda) 是 T 和波长 (lambda) 的已知函数(它是连续且定义的函数)。更具体地说,是关于波长的普朗克黑体辐射方程。

E_1
E_2
应相等
:

E_1 = Spectrum_1/np.array([G(T_1, lamda) for lamda in lambdas])
E_2 = Spectrum_2/np.array([G(T_2, lamda) for lamda in lambdas])

T_1
T_2
未知
,但我知道它们在 400 到 1000 范围内(两者)。
T_1
T_2
是两个标量值。

知道这一点,我需要最小化:

np.sum(np.array([(E_1[i] - E_2[i])**2 for i in lamdas]))

或者至少我认为我应该尽量减少这种情况。理想情况下

(E_1[i]-E_2[i])==0
但事实并非如此,因为
Spectrum_1
_2
中的实验数据包含由于大气传输而产生的噪声和失真。

我不太熟悉在Python中使用多个未知变量进行优化

(T_1 and T_2)
。我想我可以对
T_1
T_2
的数百万种组合进行强力测试,但我希望正确地做到这一点。 我想知道是否有人可以帮助我。

我听说 scipy.optimize 可以为我做到这一点,但是许多方法都要求雅可比矩阵和海森矩阵,并且我不确定如何继续,因为我有实验数据(

Spectrum_1
Spectrum_2
)并且我不处理连续的/平滑功能。

python curve-fitting scipy-optimize multivariate-testing
1个回答
0
投票

鉴于数据和假设,我认为

scipy.optimize.minimize()
没有理由不起作用。

我听说 scipy.optimize 可以为我做到这一点,但很多方法都需要雅可比矩阵和海森矩阵

这些都不是必需的。如果您不提供它们,将使用数值微分来估计它们,即稍微改变输入并查看输出变化多少。不过,这假设函数是连续的。

鉴于我有实验数据(

Spectrum_1
Spectrum_2
),我不确定如何继续,并且我不处理连续/平滑函数。

据我了解,你确实具有连续函数。您说过 G(T, lambda) 是连续函数。事实上,您将其应用于许多不同的数据样本并不意味着它不再连续。类似地,其他运算符

-
、平方、
/
和求和也是连续的。 (除以零除外。)

您可以尝试以下方法:

from scipy.optimize import minimize


# Put experimental data here
Spectrum_1 = np.array([...])
Spectrum_2 = np.array([...])
lambdas = np.array([...])

def loss(params):
    T_1, T_2 = params
    E_1 = Spectrum_1/np.array([G(T_1, lamda) for lamda in lambdas])
    E_2 = Spectrum_2/np.array([G(T_2, lamda) for lamda in lambdas])
    # Use vectorization to subtract every element of E_1 from E_2
    difference = E_1 - E_2
    return np.sum(difference**2)

result = minimize(
    loss,
    x0=[0, 0],  # Put some reasonable initial guess here for T_1 and T_2
)
print(result)

如果您认为这是一个可能有许多局部最小值的函数,您可能还想尝试其中一个全局优化器

© www.soinside.com 2019 - 2024. All rights reserved.