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

De WikiLICC
Ir para: navegação, pesquisa
(Criou página com '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...')
 
m (Polinômio de Lagrange em 2D)
 
(19 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 7: Linha 7:
 
com todos ''x''<sub>''j''</sub> 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:
 
com todos ''x''<sub>''j''</sub> 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>,
+
:<math>p(x) := \sum_{j=0}^{k} y_j L_j(x)</math>
  
 
com polinômios da base de Lagrange dados por:
 
com polinômios da base de Lagrange dados por:
Linha 13: Linha 13:
 
:<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>
 
:<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>
  
==Prova==
+
==Polinômio de Lagrange em 2D==
  
Procuramos uma função que seja um polinômio ''L''(''x'') de grau menor ou igual a ''k'', com
+
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(x_j) = y_j \qquad j=0,\ldots,k</math>
+
:<math>p(x) := \prod_{i=0}^{m}\prod_{j=0}^{n} z_{ij} L_{ij}(x,y) </math>
 +
onde
 +
:<math>L_{ij}(x,y) := L_i(x) L_j(y)</math>
  
O polinômio de lagrange é a solução para o problema de interpolação.
+
==Algoritmo==
 +
Em scilab podemos implementar como:
  
Como podemos comprovar
+
function y=Lagrange(i,x,X)
# <math>\ell_j(x)</math> é um polinômio e tem grau ''k''.
+
  y=1;
# <math>\ell_i(x_j) = \delta_{ij},\quad 0 \leq i,j \leq k.\, </math>
+
  for j=1:length(X)
 +
      if(i ~= j)
 +
          y=y.*(x-X(j))/(X(i)-X(j));
 +
      end
 +
  end
 +
endfunction
  
Então, a função ''L''(''x'') é um polinômio com grau menor ou igual a ''k'' e
+
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
  
:<math>L(x_i) = \sum_{j=0}^{k} y_j \ell_j(x_i) = \sum_{j=0}^{k} y_j \delta_{ji} = y_i.</math>
+
Modo de uso: Defina os pontos interpolados como os vetores X e Y, por exemplo,
 +
X=[1 2 3]';
 +
Y=[4 5 6]';
 +
e calcule ''L''<sub>11</sub>(''x'',''y'') como
 +
Lagrange2d(1,1, 1,4,X,Y)
 +
 +
ans = 1
  
Existe apenas uma única solução para o problema de interpolação, uma vez que a diferença de duas soluções seria um polinômio de grau menor ou igual a ''k'' e ''k+1'' zeros. Isto somente é possível se a diferença for identicamente nula, então ''L''(''x'') é o único polinômio que interpola os dados fornecidos.
+
Lagrange2d(1,1, 2,5,X,Y)
 
+
==Ideia Principal==
+
ans = 0
 
 
Resolver um problema de interpolação leva a um problema de álgebra linear, no qual há a necessidade de se resolver um sistema matricial. Usando uma base mononial padrão para a interpolação, obtém-se a matriz de Vandermonde. Escolhendo-se outra base, tal como a base de Lagrange, chega-se a um sistema muito mais simples [[Matriz identidade]] = [[delta de Kronecker |&delta;<sub>''i'',''j''</sub>]], que pode ser prontamente resolvido.
 
 
 
{{esboço-matemática}}
 
 
 
==Veja também==
 
*[[Quocientes de determinantes]]
 
 
 
[[Categoria:Análise numérica]]
 
[[Categoria:Interpolação]]
 
[[Categoria:Polinómios]]
 
 
 
[[he:אינטרפולציה#צורת לגראנז']]
 

Edição atual tal como às 10h20min 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>p(x) := \prod_{i=0}^{m}\prod_{j=0}^{n} z_{ij} L_{ij}(x,y) </math>

onde

<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

Modo de uso: Defina os pontos interpolados como os vetores X e Y, por exemplo,

X=[1 2 3]';
Y=[4 5 6]';

e calcule L11(x,y) como

Lagrange2d(1,1, 1,4,X,Y)

ans = 1
Lagrange2d(1,1, 2,5,X,Y)

ans = 0