Salut tous,
je viens d'avoir un résultat assez étonnant avec mon programme et j'aimerai savoir si vous pouvez m'expliquer d'où cela vient et comme le résoudre.
J'ai un fichier de données (cf. PJ) et j'aimerai interpoler cet courbe par un polynome afin d'avoir quelque chose de plus lisse.
j'ai fais deux interpolations :
- polynome de degrès 2
- spline
Avec le polynome de degrès 2 l'interpolation n'est pas top (la courbe interpolée va dans des valeurs négatives alors qu'aucun de mes points n'est négatif) ce qui me fait planter la suite de mon programme car il n'accepte pas des nombres negatifs.
Je suis donc passé à l'interpolation spline mais là j'ai été étonné car j'ai exactement le même résultat !
=> pourriez vous m'expliquer comme cela se fait et comment contourner ce problème ?
je vous remercie d'avance.
ps: voici mon programme
Code MATLAB : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 clear all; close all; clc; donnees=load('data.txt'); %------------ Xi=donnees(1); Xc_im1=donnees(2); Xc_i=donnees(3); Xc_ip1=donnees(4);Wc_im1=donnees(5); Wc_i=donnees(6); Wc_ip1=donnees(7); %------------ figure (1) hold on plot([Xc_im1,Xc_i,Xc_ip1],[Wc_im1,Wc_i,Wc_ip1],'linewidth',3) %------------ p=polyfit([Xc_im1,Xc_i,Xc_ip1],[Wc_im1,Wc_i,Wc_ip1],2); %------------ figure (1) hold on plot(linspace(Xc_im1,Xc_ip1,100),polyval(p,linspace(Xc_im1,Xc_ip1,100)),'m') plot(linspace(Xc_im1,Xc_ip1,100),spline([Xc_im1,Xc_i,Xc_ip1],[Wc_im1,Wc_i,Wc_ip1],linspace(Xc_im1,Xc_ip1,100)),'Or')
Partager