laborki cwiczenia 04 03 09


#include
#include

float lagr(float x[],float y[],int n1,float xx);

int main()
{
int n,n1,i;
float xp,xk,dx,xb,xx,yy;
float x[100],y[100];
FILE *plik1=fopen("dane.dat","w");
FILE *plik2=fopen("wynik.dat","w");

// generowanie wezlow interpolacji
printf(" podaj dane do generacji funkcji interpolowanej:\n");
printf(" podaj xp xk dx\n");
scanf("%f%f%f",&xp,&xk,&dx);
n=(xk-xp)/dx+1;
printf("ilosc wezlow interpolacji n=%d\n",n);
// if(n1>100) exit;
xb=xp;
for(i=1;i<=n;i++)
{
x[i]=xb;
y[i]=fabs(xb);
xb=xb+dx;
fprintf(plik1," %f %f\n",x[i],y[i]);
}
// interpolacja
printf(" podaj dane do interpolacji:\n");
printf(" podaj xp xk dx\n");
scanf("%f%f%f",&xp,&xk,&dx);
n1=(xk-xp)/dx+1;
xx=xp;
for(i=1;i<=n1;i++)
{
yy=lagr(x,y,n,xx);
fprintf(plik2," %f %f\n",xx,yy);

xx=xx+dx;
}



fclose(plik1);
fclose(plik2);
return 0;
}

float lagr(float x[],float y[],int n1,float xx)
{
float li,yy;
int i,j;
yy=0.;
for(i=1;i<=n1;i++)
{
li=1.;
for(j=1;j<=n1;j++) if(i!=j) li=li*(xx-x[j])/(x[i]-x[j]);
yy=yy+li*y[i];
}
return yy;
}



Wyszukiwarka

Podobne podstrony:
laborki cwiczenia  03 09
laborki cwiczenia  05 09
laborki cwiczenia 04 09
laborki cwiczenia  04 09
laborki cwiczenia 05 09
Środowa Audiencja Generalna Radio Maryja, 2011 03 09
TI 03 09 29 T B M pl
Cwiczenie 03
WSM 03 09 pl(2)
TI 03 09 25 T pl
Ćwiczenie 03
Strach być emerytem Nasz Dziennik, 2011 03 09

więcej podobnych podstron