Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы 9_10 / INTER10
.CPP#include<iostream.h>
#include<fstream.h>
#include<iomanip.h>
#include<conio.h>
#include<stdio.h>
#include<math.h>
#define kolvo 11
double intNew_v(double x);
double intNew_n(double x);
double intSt(double x);
double X[kolvo];
double Y[kolvo];
void main()
{
clrscr();
int i;
double x,y;
ifstream dannye("dano10.txt");
for (i=0; i<kolvo; i++)
{
dannye>>X[i];
dannye>>Y[i];
}
dannye.close();
cout<<"‚ўҐ¤ЁвҐ § 票Ґ x:"<<endl;
cout<<"x=";
cin>>x;
y=intNew_v(x);
cout<<"€вҐаЇ®«пжЁ® п д®а¬г« Ќмов® _ўЇҐаҐ¤:"<<endl;
cout<<"y="<<y<<endl;
y=intNew_n(x);
cout<<"€вҐаЇ®«пжЁ® п д®а¬г« Ќмов® _ § ¤:"<<endl;
cout<<"Y="<<y<<endl;
y=intSt(x);
cout<<"€вҐаЇ®«пжЁ® п д®а¬г« ‘вЁа«ЁЈ :"<<endl;
cout<<"Y="<<y<<endl;
getch();
}
double intNew_v(double x)
//€вҐаЇ®«пжЁ®л© ¬®Ј®з«Ґ Ќмов® ¤«п ЁвҐаЇ®«пжЁЁ ўЇҐаҐ¤;
{
double b,a;
double h,q;
double f[kolvo][kolvo];
int i,j,k;
h=X[1]-X[0];
q=(x-X[0])/h;
for (i=0; i<kolvo; i++)
f[i][0]=Y[i];
for (j=1; j<kolvo; j++)
{
for (i=0;i<kolvo-j;i++)
f[i][j]=f[i+1][j-1]-f[i][j-1];
}
b=0;
for (i=0;i<kolvo;i++)
{
a=1;
for (j=0; j<i; j++)
a=a*(q-j)/(j+1);
b=b+f[0][i]*a;
}
return (b);
}
double intNew_n(double x)
//€вҐаЇ®«пжЁ®л© ¬®Ј®з«Ґ Ќмов® ¤«п ЁвҐаЇ®«пжЁЁ § ¤;
{
double b,a;
double h,q;
double f[kolvo][kolvo];
int i,j,k;
h=X[kolvo-1]-X[kolvo-2];
q=(x-X[kolvo-1])/h;
for (i=0; i<kolvo; i++)
f[i][0]=Y[kolvo-i-1];
for (j=1; j<kolvo; j++)
{
for (i=0; i<kolvo-j; i++)
f[i][j]=f[i][j-1]-f[i+1][j-1];
}
b=0;
for (i=0; i<kolvo; i++)
{
a=1;
for (j=0;j<i;j++)
a=a*(q+j)/(j+1);
b=b+f[0][i]*a;
}
return (b);
}
double intSt(double x)
//”®а¬г« ‘вЁа«ЁЈ
{
double b,a;
int n;
int kolv1;
double h,q;
double f[kolvo][kolvo];
int i,j,k;
int ost;
ost=kolvo%2;
if (ost==0) kolv1=kolvo-1;
else kolv1=kolvo;
for (i=0; i<kolv1; i++)
f[i][0]=Y[i];
for (j=1;j<kolv1;j++)
{
for (i=0; i<kolv1-j; i++)
f[i][j]=f[i+1][j-1]-f[i][j-1];
}
n=(kolv1-1)/2;
h=X[1]-X[0];
q=(x-X[n])/h;
double kvadr;
double fakt;
b=f[n][0];
int par1=0,par2=1;
for (i=1; i<kolv1; i++)
{
if(i%2==1)
{
fakt=1;
kvadr=1;
a=q;
for (j=1; j<i; j++)
fakt=fakt*(j+1);
for (j=1; j<=i/2; j++)
kvadr=kvadr*(q-j)*(q+j);
a=a*kvadr/fakt;
b=b+(f[n-par1][i]+f[n-par1-1][i])*a/2;
par1++;
}
else
{
fakt=1;
kvadr=1;
a=1;
for (j=1; j<i; j++)
fakt=fakt*(j+1);
for (j=0; j<i/2; j++)
kvadr=kvadr*(q-j)*(q+j);
a=a*kvadr/fakt;
b=b+f[n-par2][i]*a;
par2++;
}
}
return (b);
}
Соседние файлы в папке Лабораторные работы 9_10