Advertisement
Guest User

Untitled

a guest
Oct 30th, 2014
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.52 KB | None | 0 0
  1. function [uh] = hermite(n,X,U,dU,x)
  2. % La fonction hermite va permettre d'effectuer une interpolation cubique
  3. % par morceaux uh. L'interpolation est composee de n polynômes de degré 3
  4. % définis sur les intervalles [X(i-1),X(i)].
  5. % Le couple(X,U) correspond au couple d'abscisses et d'ordonnees Xi et Ui.
  6. % dU est la valeur de la derivee en les points de X.
  7. %
  8. % La fonction spline integree dans le programme matlab est equivalente a
  9. % l'implementation de la fonction hermite, sauf qu'il faut utiliser qu'une
  10. % seule ligne de commande.
  11. %
  12. % Gamba Emilio 73481100 GROUPE 1261 - Leyssens Lisa 20401300 GROUPE 1256
  13. % Version 2.0
  14. % FSA12BA 2014 - 2015
  15. % Ecole Polytechnique de Louvain
  16. %
  17. % Petite blague :
  18. % C'est l'histoire d'un gynecologue qui etait devenu millionnaire.
  19. % Il avait attrape la maladie de Parkinson...
  20.  
  21. N = length(x);
  22. uh= zeros(1,N);
  23. Coeff= zeros(4,4);
  24. SolVector = zeros(4,1);
  25.  
  26.  % Les coefficients se calculent simplement au moyen de coeff = X\U;
  27. for i=2:n+1
  28.     SolVector = [U(i); U(i-1) ;dU(i) ;dU(i-1)];
  29.     Coeff(i,:)=[X(i)^3     X(i)^2   X(i)   1;
  30.                 X(i-1)^3   X(i-1)^2 X(i-1) 1;
  31.                 3*X(i)^2   2*X(i)   1      0;
  32.                 3*X(i-1)^2 2*X(i-1) 1      0] \ SolVector;
  33.     % Afin de trouver le polynome qui se situe entre les valeurs [X(i-1),X(i)]
  34.     % il faut rajouter une condition, ici correspondant au if.         
  35.     for j = 1:N
  36.         if x(j)<=X(i) && x(j)>=X(i-1)
  37.               uh(j)=Coeff(i,1)*x(j)^3+Coeff(i,2)*x(j)^2+Coeff(i,3)*x(j)+Coeff(i,4);
  38.         end        
  39.      end    
  40. end
  41. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement