Sunteți pe pagina 1din 3

UNIVERSITATEA TEHNIC A MOLDOVEI

FCIM
CATEDRA CALCULATOARE

LA METODE NUMERICE
LUCRAREA DE LABORATOR Nr.3

TEMA: Polinomul de interpolare Lagrange

A efectuat:

st. gr. C-031 Bordeianu A.

A verificat:

lector Banta V.

Chiinu2004

Scopul lucrrii:
Pentru functia f:[a,b]R se cunosc valorile yi=f(xi),i=0,1,..,n in punctele distincte
a=x0,x1,.,xn=b.
1)Sa se construiasca polinomul de interpolare Lagrange Ln(x) ce aproximaza functia data .
2)Sa se calculeze valoarea functiei f(x) intr-un punct x=j utilizind polinomul de
interpolare Lagrange.
3)S se efectueze o analiza a rezultatelor obtinute,sa se compare si sa se explice
rezultatele.

Textul programului n limbajul C


#include<iostream.h>
#include<conio.h>
float X[10],Y[10],A[10],x1,y1;
int n,i;
void Lagrange()
{
int i,j,k,C[10],B[10];float r;
C[0]=1;
for(i=0;i<=n;i++)
{
C[i+1]=C[i];
for(j=i;j>=1;j--)C[j]=C[j-1]-C[j]*X[i];
C[0]=-C[0]*X[i];
}
for(i=0;i<=n;i++)A[i]=0;
B[n]=C[n+1];
for(i=0;i<=n;i++)
{
r=1;
for(j=0;j<=n;j++)if(i!=j)r=r*(X[i]-X[j]);
for(k=n-1;k>=0;k--)B[k]=C[k+1]+X[i]*B[k+1];
for(k=0;k<=n;k++)A[k]=A[k]+Y[i]*B[k]/r;
}
y1=A[n];
for(i=1;i<=n;i++)y1=x1*y1+A[n-i];
};
void main(void)
{
clrscr();
cout<<"
INTERPOLAREA FUNCTIILOR\n\n";
cout<<"Introdu numarul de noduri de interpolare : ";cin>>n;
cout<<"\nIntrodu elementele tablourilor X si Y dub forma de tabel :\n\n";
cout<<" x |\n\n";cout<<" y |";
for(i=0;i<n;i++)
{
gotoxy(10+9*i,7);cin>>X[i];
gotoxy(10+9*i,9);cin>>Y[i];
}
cout<<"\nIntrodu punctul de interpolare pentru calculul valorii functiei : ";
cin>>x1;
cout<<"\nPolinomul Lagrange construit este :\n\n";
Lagrange();

for(i=0;i<=n;i++)
{
cout.precision(4);
if((A[i]>0)&&(i!=0))cout<<'+'<<A[i]<<"*X^"<<n-i;
else cout<<A[i]<<"*X^"<<n-i;
}
cout<<"\n\nValoarea functiei in punctul "<<x1<<" este : "<<y1;
getch();
}

Datele la intrare:
INTERPOLAREA FUNCTIILOR
Introdu numarul de noduri de interpolare : 7
Introdu elementele tablourilor X si Y dub forma de tabel :
x | 1.345
y|

1.379

1.405

1.562

1.765

1.854

1.987

1.2648 1.1216 1.2689 1.2567 1.2456 1.2434 1.4537

Introdu punctul de interpolare pentru calculul valorii functiei : 1.3625


Polinomul Lagrange construit este :
-1.5664e+05*X^7-109013.0703*X^6-2.3212e+05*X^5+2.2356e+05*X^43.4973e+05*X^3+124
749.4922*X^2-29678.0723*X^1+5935.6167*X^0
Valoarea functiei in punctul 1.3625 este : -9.2824e+05

Concluzii:Efectuind lucrarea data ,am studiat interpolarea functiilor si am obtinut

urmatoarele rezultate:

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