import numpy as np
def trigonometric(x, n, U):
r = np.arange(2*n+1)
rr = 1j * (r - n)
X = (2*np.pi/(2*n+1)) * r[:, np.newaxis]
Phi = np.exp(X * rr)
a = np.linalg.inv(Phi, U)
x = x.reshape(-1, 1)
phi = np.exp(x * rr)
uh = np.real(phi.dot(a))
return uh
# usage (je mets des valeurs sorties de nulle part pour l'exemple)
mon_x = np.array([1, 2, 3, 4, 5])
mon_U = np.array([-10, -20, -30, -40, -50])
mon_n = 42
mon_uh = trigonometric(mon_x, mon_n, mon_U)
Remarque: je n'ai pas cherché à comprendre le sens de la fonction et je n'ai pas testé le code.
une ressource utile : https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html