Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
Polinomul de interpolare - Lagrange
Polinomul de interpolare LAGRANGE
Una dintre cele mai cunoscute formule de interpolare este construita de Lagrange subforma unui polinom de interpolare.
Sa presupunem ca in intervalul [a,b] sunt specificate n valori ale argumentului x1, x2, . . . ,xn, si valorile corespunzatoare ale unei functii f(x)
f(xi)=yi, i=1,2,.,n
Se cere construirea unui polinom Lm(x) care ia in punctele specificate xi aceleasi valori ca si functia f(x)
Lm(xi)=yi, i=1,2,.,n (1)
(1)
Pentru aceasta sa construim mai intai un polinom pi(x) pentru care
(2)
Deoarece polinomul cautat, pi(x), se anuleaza in cele (n-1) puncte x1, ., xi-1, xi+1, ., xn, el are expresia
unde Ci este un coefficient constant, iar
Luind x=xi si avand in vedere ca pi(xi)=1 obtinem . Cu acestea, gasimpentru polinomul pi(x) care satisface conditiile (2).
(3)
Revenind acum la problema initiala a construirii polinomului Lm(x) care satisface conditiile (1), acesta poate fi scris sub forma
(4)
Intr-adevar, deoarece polinoamele pi(x), sunt de ordinul (n-1), si Lm(x) este de ordinul (n-1) si satisface conditiile (1)
Inlocuind expresia (3) a polinoamelor pi(x) in (4) rezulta formula de interpolare a lui Lagrange
Vom crea o fucntie numita Lagrange cu cinci parametri :
ni - numarul de punctelor de interpolare
xi si yi - tablouri care contin coordonatele punctelor de interpolare
x - argumentul pentru care se calculeaza valoarea polinomului Lagrange de interpolare
y - valoarea de iesire a functiei
Programul urmator prezinta implementarea in C++ a polinomului Lagrange intr-un punctdat x.
#include<iostream.h>
float xi[20], yi[20], x, y;
int ni;
float lagrange(float xi[], float yi[], int ni, float x)
return y;
void main(void)
cout<<' Vector y = '<<endl;
for(i=1;i<=ni;i++)
cout<<'Dati valoarea punctului pt. care se calculeaza polinomul =';
cin>>x;
y=lagrange(xi,yi,ni,x);
cout<<'Valoarea pentru '<<x<<' este '<<y<<endl;
Executia programului :
n=4
vector x =
vector y =
valoarea punctului pt. care se calculeaza polinomul = 3
Valoarea pentru 3 este 17.22221
Copyright © 2024 - Toate drepturile rezervate