2010-03-29 8 views

Répondre

7

C'est par nature numériquement mal conditionné mais vous pouvez faire quelque chose comme ceci:

import numpy as np 

x = np.random.randn(500) 
y = np.random.randn(500) 
z = np.random.randn(500) # Dependent variable 

v = np.array([np.ones(500), x, y, x**2, x * y, y**2]) 

coefficients, residues, rank, singval = np.linalg.lstsq(v.T, z) 

Plus vous ajoutez de termes, plus les choses empirent, numériquement. Êtes-vous sûr de vouloir un interpolant polynomial?

Il existe d'autres bases pour les polynômes pour lesquels la matrice de valeurs n'est pas si mal conditionnée, mais je ne me souviens plus de ce qu'on les appelle; Cependant, tout manuel d'analyse numérique de niveau collégial aurait ce matériel.