Y‑a‑t‑il des matheux(ses) ici qui peuvent m’épargner de devenir fou ?
Je veux faire une interpolation cubique monotone en utilisant ces trois points de données :
point n°1 : (2.0, 40.0)
point n°2 : (3.0, 2.0)
point n°3 : (4.0, 1.0)
J’ai écrit une fonction en XLISP, et quand je l’applique aux points de données ci‑dessus, voici les résultats que je trouve avec x dans [2.0,4.0] avec un incrément de 0.1 :
f(2.0) = 40
f(2.1) = 36.0335
f(2.2) = 31.808
f(2.3) = 27.4345
f(2.4) = 23.024
f(2.5) = 18.6875
f(2.6) = 14.536
f(2.7) = 10.6805
f(2.8) = 7.232
f(2.9) = 4.3015
f(3.0) = 2
f(3.1) = 0.4015
f(3.2) = -0.568
f(3.3) = -1.0195
f(3.4) = -1.064
f(3.5) = -0.8125
f(3.6) = -0.376
f(3.7) = 0.1345
f(3.8) = 0.608
f(3.9) = 0.9335
f(4.0) = 1
Dans l’intervalle ]3,4[ il y a un sérieux problème, parce que ça ne devrait jamais descendre en dessous de 1.0. Non seulement ça descende en dessous, mais en plus rapidement et ça descend même dans le négatif.
Pour info, les pentes des tangentes aux trois points de données sont :
-38, -19.5, -1
Je crois qu’il y a un problème avec la fonction de base h10 du spline cubique d'Hermite, parce que quand je l’annule, le problème disparait. Mais est‑ce une erreur chez moi ou un erreur de Wikipédia ?
Pour l’algorithme (je l’ai fait en XLISP), j’ai utilisé la description mathématique d’après ces deux pages de Wikipédia :
http://en.wikipedia.org/wiki/Monotone_cubic_interpolation
http://en.wikipedia.org/wiki/Cubic_Hermite_spline
Je veux faire une interpolation cubique monotone en utilisant ces trois points de données :
point n°1 : (2.0, 40.0)
point n°2 : (3.0, 2.0)
point n°3 : (4.0, 1.0)
J’ai écrit une fonction en XLISP, et quand je l’applique aux points de données ci‑dessus, voici les résultats que je trouve avec x dans [2.0,4.0] avec un incrément de 0.1 :
f(2.0) = 40
f(2.1) = 36.0335
f(2.2) = 31.808
f(2.3) = 27.4345
f(2.4) = 23.024
f(2.5) = 18.6875
f(2.6) = 14.536
f(2.7) = 10.6805
f(2.8) = 7.232
f(2.9) = 4.3015
f(3.0) = 2
f(3.1) = 0.4015
f(3.2) = -0.568
f(3.3) = -1.0195
f(3.4) = -1.064
f(3.5) = -0.8125
f(3.6) = -0.376
f(3.7) = 0.1345
f(3.8) = 0.608
f(3.9) = 0.9335
f(4.0) = 1
Dans l’intervalle ]3,4[ il y a un sérieux problème, parce que ça ne devrait jamais descendre en dessous de 1.0. Non seulement ça descende en dessous, mais en plus rapidement et ça descend même dans le négatif.
Pour info, les pentes des tangentes aux trois points de données sont :
-38, -19.5, -1
Je crois qu’il y a un problème avec la fonction de base h10 du spline cubique d'Hermite, parce que quand je l’annule, le problème disparait. Mais est‑ce une erreur chez moi ou un erreur de Wikipédia ?
Pour l’algorithme (je l’ai fait en XLISP), j’ai utilisé la description mathématique d’après ces deux pages de Wikipédia :
http://en.wikipedia.org/wiki/Monotone_cubic_interpolation
http://en.wikipedia.org/wiki/Cubic_Hermite_spline