Advertisement
Jgug

Interpolyacsia obschego vida. POG

May 9th, 2012
507
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.99 KB | None | 0 0
  1. #include <iostream.h>
  2. #include <iomanip.h>
  3. #include <math.h>
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <conio.h>
  7.  
  8. int i,j,k, m;
  9. double P, Y[101], G[101][101], B[101], xT[101], yT[101], D[101];
  10.  
  11. void main(void)
  12. {
  13. //Sostavlenie matricsi G
  14. //---------------------------------------|
  15.     const a=4;
  16.     const b=7;
  17.     const m=4;
  18.     const n=4;
  19.     double x[101];
  20.     for (i=0; i<m; i++)
  21.     {
  22.         x[i]=a+i*(b-a)/(m-1);
  23.     }
  24.     for (i=0; i<m; i++)
  25.     {
  26.         for (j=0; j<m; j++)
  27.         {
  28.             G[i][j]=pow(x[i],j);
  29.         }
  30.     }
  31.     for (i=a; i<=b; i++)
  32.     {
  33.         B[i-4]=exp(i)/pow(i,3)-pow(sin(i),3);
  34.     }
  35. //---MG----------------------------------|
  36.     int size=m;
  37.     double koeff, koeff2, C[101];
  38.     for (i=0; i<size; i++)
  39.     {
  40.         for (j=i; j<size-1; j++)
  41.         {
  42.             koeff=G[j+1][i]/G[i][i];
  43.             B[j+1]-=B[i]*koeff;
  44.             for (k=i; k<size; k++)
  45.             {
  46.                 G[j+1][k]-=G[i][k]*koeff;
  47.             }
  48.         }
  49.     }  
  50.     for (i=size-1; i>=0; i--)
  51.     {
  52.         for (j=i-1; j>=0; j--)
  53.         {
  54.             koeff2=G[j][i]/G[i][i];
  55.             B[j]-=B[i]*koeff2;
  56.         }
  57.     }
  58.     for (i=size-1; i>0; i--)
  59.     {
  60.         for (int j=i-1; j>=0; j--)
  61.         {
  62.             G[j][i]=0;
  63.         }
  64.     }
  65.     for (i=0; i<size; i++)
  66.     {
  67.         C[i]=B[i]/G[i][i];
  68.     }
  69. //---POG---------------------------------|
  70.     for (i=0; i<31; i++)
  71.     {
  72.         xT[i]=a+i*(b-(double)a)/30;
  73.     }
  74.     int q=0;
  75.     double t;
  76.     for (t=4; t<=7; t=t+0.1)
  77.     {
  78.         yT[q]=exp(t)/pow(t,3)-pow(sin(t),3);
  79.         q++;
  80.     }
  81.     for (i=0; i<31; i++)
  82.     {
  83.             P=C[n-2]+xT[i]*C[n-1];
  84.             for (k=3; k<=n; k++)
  85.             {
  86.                 P=C[n-k]+xT[i]*P;
  87.             }
  88.             Y[i]=P;
  89.     }
  90.     for (i=0; i<31; i++)
  91.     {
  92.         D[i]=fabs(yT[i]-Y[i]);
  93.     }
  94. //---Vivod-tablicsi-rezyltatov-----------|
  95.     cout<<"F(x) = e^x / x^3 - (sin(x))^3"<<"   na intervalle  ["<<a<<","<<b<<"]"<<endl;
  96.     cout<<"_____________________________________________________________"<<endl;
  97.     cout<<"No#:     X:        Y:            Y.approx       Pogreshnost':"<<endl;
  98.     cout<<"_____________________________________________________________"<<endl;
  99.     for (i=0; i<31; i++)
  100.     {
  101.         printf("#%2d ---- %3.2f ---- %7.6f ---- %8.7f ---- %7.10f\n",i+1,xT[i],yT[i],Y[i],D[i]);
  102.     }
  103.     getch();
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement