Mudanças entre as edições de "Polinômio de Lagrange"

De WikiLICC
Ir para: navegação, pesquisa
m (Polinômio de Lagrange em 2D)
m (Algoritmo)
Linha 38: Linha 38:
 
  function z=Lagrange2d(i,j,x,y,X,Y)
 
  function z=Lagrange2d(i,j,x,y,X,Y)
 
      
 
      
     z=La(i,x,X).*La(j,y,Y);
+
     z=Lagrange(i,x,X).*Lagrange(j,y,Y);
 
      
 
      
 
  endfunction
 
  endfunction

Edição das 09h57min de 10 de maio de 2013

Em análise numérica, polinômio de Lagrange é usado para interpolação polinomial.

Definição

Dado um conjunto de k+1 pontos:

<math>(x_0, y_0),\ldots,(x_k, y_k)</math>

com todos xj distintos, o polinômio de interpolação de um conjunto de pontos na forma de Lagrange é a combinação linear dos polinômios da base de Lagrange:

<math>p(x) := \sum_{j=0}^{k} y_j L_j(x)</math>

com polinômios da base de Lagrange dados por:

<math>L_j(x) := \prod_{i=0, j\neq i}^{k} \frac{x-x_i}{x_j-x_i} = \frac{x-x_0}{x_j-x_0} \cdots \frac{x-x_{j-1}}{x_j-x_{j-1}} \frac{x-x_{j+1}}{x_j-x_{j+1}} \cdots \frac{x-x_{k}}{x_j-x_{k}}</math>

Polinômio de Lagrange em 2D

Dado um conjunto de (m+1)*(n+1) pontos:

<math>(x_{ij}, y_{ij},z_{ij}), 0 \leq i \leq m, 0 \leq j \leq n</math>

de tal forma que as coordenadas (x,y) estejam alinhadas numa malha cartesiana, ou seja, os pontos podem ser definidos como

<math>(x_{i}, y_{j},z_{ij}), 0 \leq i \leq m, 0 \leq j \leq n</math>

o polinômio de Lagrange em duas dimensões pode ser definido a partir do polinômio unidimensional como:

<math>L_{ij}(x,y) := L_i(x) L_j(y)</math>

Algoritmo

Em scilab podemos implementar como:

function y=Lagrange(i,x,X)
  y=1;
  for j=1:length(X)
      if(i ~= j)
          y=y.*(x-X(j))/(X(i)-X(j));
      end
  end
endfunction

E a versão bidimensional como

function z=Lagrange2d(i,j,x,y,X,Y)
   
   z=Lagrange(i,x,X).*Lagrange(j,y,Y);
   
endfunction