\(\displaystyle{ L_{j}(x_{i}) = \begin{cases} 1 \ \ \mbox{gdy} \ \ i=j \\ 0 \ \ \mbox{gdy} \ \ i\neq j, \ \ i, j=0,1,2,..,n \end{cases} }\)
jest wielomian Lagrange'a:
\(\displaystyle{ p_{n}(x) = \sum_{i=0}^{n}f(x_{i})\cdot L_{i}(x) \ \ (1) }\)
gdzie:
\(\displaystyle{ L_{i}(x) = \frac{(x-x_{0})\cdot (x - x_{1})\cdot ...\cdot (x - x_{i-1})\cdot (x-x_{i+1})\cdot ...\cdot (x-x_{n})}{(x_{i}-x_{0})\cdot (x_{i}-x_{1})\cdot ...\cdot (x_{i} -x_{i+1})\cdot ...\cdot(x_{i}-x_{n})} \ \ (2)}\)
Przykład konstrukcji wielomianu Lagrange'a drugiego stopnia dla danych:
\(\displaystyle{ \begin{tabular}{|c|c|c|c|} x & -1 & 0 & 3 \\ \hline
f(x) & 8 & -2 & 4\\ \end{tabular} }\)
Z równania \(\displaystyle{ (2) }\) mamy:
\(\displaystyle{ L_{0}(x) = \frac{(x-0)\cdot (x-3)}{-1-0) \cdot (-1-3)}= \frac{1}{4}x\cdot (x-3),}\)
\(\displaystyle{ L_{1}(x) = \frac{(x+1)\cdot (x-3)}{(0+1) \cdot (0-3)}= -\frac{1}{3}(x+1) \cdot (x-3),}\)
\(\displaystyle{ L_{2}(x) = \frac{(x+1)\cdot (x-0)}{(3+1) \cdot (3-0)}= -\frac{1}{12}x \cdot (x+1).}\)
Z równania \(\displaystyle{ (1) }\)
\(\displaystyle{ p_{2}(x) = 2x\cdot (x-2) + \frac{2}{3}(x+1)\cdot (x-3) + \frac{1}{3}x\cdot (x+1).}\)
Można udowodnić na przykład (*) , że jeżeli funkcja \(\displaystyle{ f\in C^{n+1},}\) to błąd przybliżenia tej funkcji wielomianem Lagrange'a \(\displaystyle{ p_{n}(x) }\)
spełnia nierówność:
\(\displaystyle{ e_{n} = |f(x) - p_{n}| \leq \frac{1}{4(n+1)} \cdot M \cdot \left( \frac{b-a)}{n}\right)^{n+1}, }\)
gdzie:
\(\displaystyle{ M = \max_{\xi\in (a,b)} [f^{(n+1)}(\xi)], \ \ \xi \in (a, b).}\)
(*) Zenon Fortuna Bohdan Macukow Janusz Wąsowski Metody numeryczne. Wydanie piąte. WNT Warszawa 1993.
Program w MATLAB
Kod: Zaznacz cały
function lagrange(x,y,a)
n=length(x);
p=0;
for k=1:n
b(k)=1;
d(k)=1;
for j=1:n
if j~= k
b(k)=b(k)*(x(k)-x(j));
d(k)= d(k)*(a-x(j));
end
end
c(k)=y(k)/b(k);
p=p+c(k)*d(k);
end
c
fprintf('\n p(a)=%10.6f',p)
fprintf('\n')
Kod: Zaznacz cały
>> x=[-1 0 3]';
>> y=[8 -2 4]';
>> lagrange(x,y,-0.5)
c =
2.0000 0.6667 0.3333
p(a)= 2.250000