Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function [uh] = hermite(n,X,U,dU,x)
- % La fonction hermite va permettre d'effectuer une interpolation cubique
- % par morceaux uh. L'interpolation est composee de n polynômes de degré 3
- % définis sur les intervalles [X(i-1),X(i)].
- % Le couple(X,U) correspond au couple d'abscisses et d'ordonnees Xi et Ui.
- % dU est la valeur de la derivee en les points de X.
- %
- % La fonction spline integree dans le programme matlab est equivalente a
- % l'implementation de la fonction hermite, sauf qu'il faut utiliser qu'une
- % seule ligne de commande.
- %
- % Gamba Emilio 73481100 GROUPE 1261 - Leyssens Lisa 20401300 GROUPE 1256
- % Version 2.0
- % FSA12BA 2014 - 2015
- % Ecole Polytechnique de Louvain
- %
- % Petite blague :
- % C'est l'histoire d'un gynecologue qui etait devenu millionnaire.
- % Il avait attrape la maladie de Parkinson...
- N = length(x);
- uh= zeros(1,N);
- Coeff= zeros(4,4);
- SolVector = zeros(4,1);
- % Les coefficients se calculent simplement au moyen de coeff = X\U;
- for i=2:n+1
- SolVector = [U(i); U(i-1) ;dU(i) ;dU(i-1)];
- Coeff(i,:)=[X(i)^3 X(i)^2 X(i) 1;
- X(i-1)^3 X(i-1)^2 X(i-1) 1;
- 3*X(i)^2 2*X(i) 1 0;
- 3*X(i-1)^2 2*X(i-1) 1 0] \ SolVector;
- % Afin de trouver le polynome qui se situe entre les valeurs [X(i-1),X(i)]
- % il faut rajouter une condition, ici correspondant au if.
- for j = 1:N
- if x(j)<=X(i) && x(j)>=X(i-1)
- uh(j)=Coeff(i,1)*x(j)^3+Coeff(i,2)*x(j)^2+Coeff(i,3)*x(j)+Coeff(i,4);
- end
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement