Sunteți pe pagina 1din 4

Ministerul Educaţiei Republicii Moldova

Universitatea Tehnică a Moldovei


Facultatea Calculatoare, Informatică şi Microelectronică.
Departamentul Informatică și Ingineria Sistemelor

Raport la
Lucrare de laborator Nr.3
la Metode și Modele de Calcul

A efectuat: st. gr. IA-181 Paniș Iulian

A verificat: lect.univ. Moraru Vasile

Chișinau, 2019
Interpolarea funcțiilor
Sarcini de lucru:
Se dă 𝑦 = 𝑓(𝑥) cu nodurile 𝑥1 , 𝑥2 , … , 𝑥𝑛 :
1.Să se construiască polinomul de interpolare Lagrange 𝐿𝑛 (𝑥) care aproximează
funcția dată.
2. Să se calculeze valoarea funcției 𝑓(𝑥) în 𝑥 = ξ, utilizand polinomul 𝐿𝑛 (𝑥)
3. Să se estimeze valoarea absolută a interpolării în 𝑥 = ξ

Varianta:
1
𝑓(𝑥) = 𝑥 5 − 𝑥 + 4
3
𝑥1 = −2, 𝑥2 = −1, 𝑥3 = 0, 𝑥4 = 1
ξ = −1.8

Rezolvare:

X -2 -1 0 1
14 14 10
Y − 4
3 3 3
Listingul programului
#include<conio.h>
#include<iostream>

using namespace std;


double lagrange(int N, float X[], float Y[], float x1)
{
float L=0, b=1;
int i, j;

for(i=0; i<N; i++)


{
b=1;

for(j=0;j<N;j++)
if(j!=i) b*=(x1-X[j])/(X[i]-X[j]);

L+=Y[i]*b;
}
return(L);
}

int main()
{
float a[10], b[10], x;
int i, num;

cout<<"Indicati numarul de noduri de interpolare:\n";


cin>>num;
cout<<"Introduceti elementele tabloului absciselor nodurilor(x=):\n";

for(i=0; i<num; i++){


cout<<"x["<<i<<"]= "; cin>>a[i];
}

cout<<"Introduceti elementele tabloului valorilor functiei in aceste


puncte(y=):\n";

for(i=0;i<num;i++){
cout<<"y["<<i<<"]= "; cin>>b[i];
}

cout<<"Introduceti punctul in care doriti sa se efectueze


interpolarea:\n";
cin>>x;
cout<<"\n Valoarea functiei in punctul dat este:
"<<lagrange(num,a,b,x)<<endl;
getch();
}
Rezultatul:

Concluzie:
În lucrarea de laborator nr3 am avut ca sarcina de a exersa asupra polinomului de
interpolare Lagrange și evaluarea erorii de trunchiere a polinomului Lagrange.
Am calculat manual polinomul Lagrange și eroarea de trunchiere a polinomului, am
elaborat program care calculează polinomul Lagrange. Rezultatele sunt identice.

S-ar putea să vă placă și