Скачиваний:
15
Добавлен:
01.05.2014
Размер:
2.95 Кб
Скачать
#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