Le principe leur a semblé "facile et automatisable" puisque les matrices utilisées sont obtenues uniquement à l'aide des coordonnées des différents points :
On cherche une courbe polynomiale passant par des points donnés
* le nombre de points donne le degré du polynôme : n points donne n inconnues donc un polynôme de degré n-1
* on obtient un système linéaire de n équations à n inconnues que l'on peut écrire matriciellement AX=B
* la matrice A (carrée d'ordre n) contient les puissances décroissantes des abscisses des points considérés
* la matrice B (colonne à n lignes) contient les ordonnées des points considérés
* on résout via X=A^(-1)B
Le souci qui est apparu a été le traitement pour un point d'abscisse 0, car la boucle permettant de remplir la matrice A conduisait alors sur un 0^0... qui pose souci à nos calculatrices BASIC... alors que cela fait 1...
Donc la manière d'obtenir la matrice A nécessitait un remplissage particulier pour la dernière ligne, ce qui donne concrètement :
Variables
n est un entier
i et j sont des entiers
A et B sont deux matrices
Traitement
Lire la valeur de n
n*n est la dimension de A
n*1 est la dimension de B
Pour i allant de 1 à n
Lire la valeur de x
Lire la valeur de y
B(i;1) prend la valeur y
A(i;n) prend la la valeur 1
Pour j allant de 1 à n
A(i;n-j) prend la valeur x^j
FinPour
FinPour
Sortie
Afficher A^(-1)*B
Il ne "restait" plus qu'à transcrire tout ça sur les Z80, en donnant un petit coup de main pour la partie syntaxe matricielle, et le tour était joué.
Bien sûr, le programme ne teste pas si la matrice est inversible, ou bien si des points sont sur une même verticale... mais cela permet de combiner l'algo avec cette application des matrices !

Par exemple, si on cherche une courbe polynomiale passant par
$mathjax$A(2\,;\,3)$mathjax$
, $mathjax$B(4\,;\,-1)$mathjax$
, $mathjax$C(1\,;\,7)$mathjax$
et $mathjax$D(-6\,;\,1)$mathjax$
, on trouve que la courbe polynomiale passant par ces quatre points a pour équation $mathjax$f(x) =\dfrac{107}{840}x^3-\dfrac{9}{40}x^2-\dfrac{253}{60}x+\dfrac{396}{35}$mathjax$

Et la validation via Geogebra

Voili, voilà, j'ai aussi les versions Nspire et Graph35+ qui sont sur mon blog
--The End--