Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
Universitatea Romano-Americana
Facultatea de Informatica Manageriala
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