Я получаю последнее уравнение, и я пытаюсь вычислить g (k + 2) из значений g (k + 1) и g (k), i является целым числом, предполагая, что I (x) и s (x) ) являются гауссовыми функциями. Результат расчета неверен, но я не знаю, где проблема.
Код:
import numpy as np
from matplotlib import pyplot as plt
def f_i(a, w_i):
return np.exp(-np.power(a, 2) * np.power(w_i, 2))
def f_s(b, w_s):
return np.exp(-np.power(b, 2) * np.power(w_s, 2))
a = 2
b = 1
w = 10
K = 100
g = np.zeros(K + 2)
g[0] = 0 #initial value, It can be changed as needed
g[1] = 0
for k in range(2, K):
Isg = 0
for j in range(k - w, k + w):
sg = 0
for i in range(j - w, j + w):
sg += f_s(b, i) * g[j - i]
Isg += (f_i(a, j) - sg) * f_s(b, j - k)
g[k+2] = 2 * g[k + 1] - g[k] + Isg
print(g)
plt.plot(g)
plt.show()
Результат: