梯度下降求解具有 2 个已知和 2 个未知的经验方程

问题描述

我有以下经验方程(工程):

Y = A + (X  - B) * (0.3026506 * (A/B))^0.3895556 * (0.2444663 * (A/B))^1.226 + 0.00000560643 * A^(0.00125 * B + 0.3026)

我不知道 A 和 B 的值(但知道在某些物理边界之间存在)并且以表格格式给我的 Y 和 X 值:

X Y
35 179.92
40 181.46
50 184.53
60 187.61
70 190.69
90 196.84
100 199.92
110 203
120 206.08
130 209.16
140 212.23
150 215.31

我的目标是调整 AB 的值,使得 RHS 上的方程将具有与 Y 相似的值表中给出了方程中给出的所有常数。我的假设之一是使用梯度下降进行多元回归。我想我应该把 Y 作为我的成本函数,但是如果我不知道 A 和 B 应该有什么样的值,我该如何创建梯度下降图?可能需要其他方法吗?基本上,这是一个有两个已知和两个未知的方程。

提前致谢

解决方法

在python中你可以这样做:

def error(par,X,Y):
    A = par[0]
    B = par[1]
    V = A + (X  - B) * (0.3026506 * (A/B))**0.3895556 * (0.2444663 * (A/B))**1.226 + 0.00000560643 * A**(0.00125 * B + 0.3026)
    return ((Y-V)**2).sum()

from scipy.optimize import minimize


X = [ 35,40,50,60,70,90,100,110,120,130,140,150]
Y = [179.92,181.46,184.53,187.61,190.69,196.84,199.92,203.,206.08,209.16,212.23,215.31]

minimize(error,[1,2],(X,Y))['x']
array([202.39468192,108.03429635])
,

这是一种使用线性回归的不同方法。

enter image description here

那么这不再是回归问题,而是求解两个未知数 A 和 B 的两个方程组的问题。

enter image description here

问题被简化为只有一个非线性方程需要求解 B。

使用 Newton-Raphson 方法的结果是 B=108.0343

A=1.873431*108.0343=202.3947

请注意,非线性方程是准线性的(第二项可以忽略不计 = 0.0000573)。因此,如果您接受略低的准确度,则更简单地使用 B=169.14586/1.565669=108.03424,这与 Newton-Raphson 结果非常接近。

这意味着您将使用更简单的方程获得 A 和 B 的非常接近的近似值:Y = A +(X-B) * 0.1116231 * (A/B)^1.6155556