Wyprowadzenie wielomianów
a) metodą Lagrange'a
$$L\left( x \right) = 0*\frac{\left( x - x_{2} \right)*\left( x - x_{3} \right)*\left( x - x_{4} \right)}{\left( x_{1} - x_{2} \right)*\left( x_{1} - x_{3} \right)*\left( x_{1} - x_{4} \right)} + 0,75*\frac{\left( x - x_{1} \right)*\left( x - x_{3} \right)*\left( x - x_{4} \right)}{\left( x_{2} - x_{1} \right)*\left( x_{2} - x_{3} \right)*\left( x_{2} - x_{4} \right)} + 1*\frac{\left( x - x_{1} \right)*\left( x - x_{2} \right)*\left( x - x_{4} \right)}{\left( x_{3} - x_{1} \right)*\left( x_{3} - x_{2} \right)*\left( x_{3} - x_{4} \right)} + 0.54*\frac{\left( x - x_{1} \right)*\left( x - x_{2} \right)*\left( x - x_{3} \right)}{\left( x_{4} - x_{1} \right)*\left( x_{4} - x_{2} \right)*\left( x_{4} - x_{3} \right)} = - 0,2967*x^{3} + 0,6284*x^{2} + 0,3873*x + 0$$
b) metoda Newtona
N(x) = 0 + 0, 716 * (x−x1) − 0, 152 * (x−x1)(x−x2) − 0, 297 * (x−x1)(x−x2)(x−x3) = −0, 2967 * x3 + 0, 6284 * x2 + 0, 3873 * x + 0
Kod programu
y=sin(x).^2;
[A,L]=lagran(x,y)
[C,D]=newpoly(x,y)
xlok=pi/4;
Blad=abs(sin(xlok)^2-(A(1)*xlok^3+A(2)*xlok^2+A(3)*xlok+A(4)))
xx=linspace(x(1),x(4),300);
ypom=sin(xx).^2;
yy=polyval(A,xx);
plot(x,y,'ro',xx,ypom,'b-',xx,yy,'k-');
legend('punkty','funkcja','wielomian');
A =
-0.2967 0.6248 0.3873 0
L =
-0.2580 1.2834 -2.0160 1.0000
1.3933 -5.4713 5.1566 0
-1.5481 5.2687 -3.8197 0
0.4128 -1.0808 0.6791 0
C =
-0.2967 0.6248 0.3873 0
D =
0 0 0 0
0.7500 0.7162 0 0
1.0000 0.4775 -0.1520 0
0.5000 -0.6366 -0.8511 -0.2967
Blad =
0.0458
Wykres
Wnioski
Błąd lokalny dla x=pi/4 wyszedł niewielki świadczy to o poprawnym obliczeniu wielomianu interpolacyjnego co również widać na załączonym wyżej wykresie. Z obliczeń widać również, że metoda Lagrange’a oraz Newtona dają takie same wyniki, inna jest tylko metoda obliczeń.