import numpy as np
def func(x1, x2, y):
global st0, st1, st2, del0, del1, del2
st0, st1, st2 = 0, 0, 0
del0, del1, del2 = 1, 1, 1
a = 0.01
for i in range(200):
st0 = st0 - a * (funcc(x1[i % 5], x2[i % 5]) - y[i % 5]) * 1
st1 = st1 - a * (funcc(x1[i % 5], x2[i % 5]) - y[i % 5]) * x1[i % 5]
st2 = st2 - a * (funcc(x1[i % 5], x2[i % 5]) - y[i % 5]) * x2[i % 5]
del0 = (funcc(x1[i % 5], x2[i % 5]) - y[i % 5]) * 1
del1 = (funcc(x1[i % 5], x2[i % 5]) - y[i % 5]) * x1[i % 5]
del2 = (funcc(x1[i % 5], x2[i % 5]) - y[i % 5]) * x2[i % 5]
if (abs(del0) < 0.01 and abs(del1) < 0.01 and abs(del2) < 0.01):
print(del0, del1, del2)
break
def funcc(x1, x2):
return st0 + st1 * x1 + st2 * x2
#代入数据
if __name__ == '__main__':
x1 = np.array([2.104, 1.600, 2.400, 1.416, 3.000])
x2 = np.array([3, 3, 3, 2, 4])
y = np.array([4.00, 3.30, 3.69, 2.32, 5.40])
func(x1, x2, y)
运行结果: