Advertisement
paulogp

Lagrange

Aug 7th, 2011
273
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.56 KB | None | 0 0
  1. function [] = lagrange(ponto)
  2. % paulogp
  3. % Interpolacao polinomial quadratica
  4. % y(x) =
  5. % f0*(((x-x1)*(x-x2))/((x0-x1)*(x0-x2)))+f1*(((x-x0)*(x-x2))/((x1-
  6. % x0)*(x1-x2)))+f2*(((x-x0)*(x-x1))/((x2-x0)*(x2-x1)))
  7.  
  8. % Neste caso calculamos o polinomio interpolador com todos os pontos
  9. % que nos sao dados na tabela (3 pontos)
  10. % Sa nos interessa saber se o ponto pertence ao intervalo da
  11. % tabela, isto é, pi/5 tem que pertencer a [0 ; pi/4] sendo que zero
  12. % e o primeiro valor da tabela e pi/4 o ultimo valor da tabela
  13.  
  14. % Segui o problema numero 3.1
  15.          
  16.    
  17.     %Obter os valores da tabela
  18.         t = importdata('lagrange_tabela.m', '\t');
  19.         x = t(:, 1)';
  20.         f = t(:, 2)';
  21.        
  22.         n = length(x);
  23.        
  24.        
  25.     %Verificar se o nosso ponto pertence ao intervalo
  26.         if ((x(1)<ponto) && (x(n)<ponto))
  27.             disp('O ponto introduzido nao pertence ao intervalo.');
  28.             disp('Esta a fazer uma extrapolacao!');
  29.             disp(' ');
  30.             return;
  31.         end
  32.  
  33.  
  34.     %Calcular a imagem do ponto (o pedido no problema)
  35.    
  36.         y = f(1)*(((ponto-x(2))*(ponto-x(3)))/((x(1)-x(2))*(x(1)-x(3))))+f(2)*(((ponto-x(1))*(ponto-x(3)))/((x(2)-x(1))*(x(2)-x(3))))+f(3)*(((ponto-x(1))*(ponto-x(2)))/((x(3)-x(1))*(x(3)-x(2))));
  37.         disp(' ');
  38.         disp(y);        
  39.        
  40.         % O valor final para os valores da tabela intoduzida e 0.7357
  41.         % (este valor e diferente do anterior porque neste sao
  42.         % introduzidos mais valores, logo a aproximacao e muito melhor!)
  43.  end
  44.  
  45.  
  46. % ficheiro: lagrange_tabela.m
  47. 1   25
  48. 3   38
  49. 4   45
  50. 7   40
  51. 8   58
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement