Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function [] = lagrange(ponto)
- % paulogp
- % Interpolacao polinomial quadratica
- % y(x) =
- % f0*(((x-x1)*(x-x2))/((x0-x1)*(x0-x2)))+f1*(((x-x0)*(x-x2))/((x1-
- % x0)*(x1-x2)))+f2*(((x-x0)*(x-x1))/((x2-x0)*(x2-x1)))
- % Neste caso calculamos o polinomio interpolador com todos os pontos
- % que nos sao dados na tabela (3 pontos)
- % Sa nos interessa saber se o ponto pertence ao intervalo da
- % tabela, isto é, pi/5 tem que pertencer a [0 ; pi/4] sendo que zero
- % e o primeiro valor da tabela e pi/4 o ultimo valor da tabela
- % Segui o problema numero 3.1
- %Obter os valores da tabela
- t = importdata('lagrange_tabela.m', '\t');
- x = t(:, 1)';
- f = t(:, 2)';
- n = length(x);
- %Verificar se o nosso ponto pertence ao intervalo
- if ((x(1)<ponto) && (x(n)<ponto))
- disp('O ponto introduzido nao pertence ao intervalo.');
- disp('Esta a fazer uma extrapolacao!');
- disp(' ');
- return;
- end
- %Calcular a imagem do ponto (o pedido no problema)
- 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))));
- disp(' ');
- disp(y);
- % O valor final para os valores da tabela intoduzida e 0.7357
- % (este valor e diferente do anterior porque neste sao
- % introduzidos mais valores, logo a aproximacao e muito melhor!)
- end
- % ficheiro: lagrange_tabela.m
- 1 25
- 3 38
- 4 45
- 7 40
- 8 58
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement