Advertisement
Guest User

Untitled

a guest
Apr 21st, 2015
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.58 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.         //f(x)=1/x
  8.         int a, b;
  9.         cout<<"Podaj zakres a: "<<endl;
  10.         cin>>a;
  11.         cout<<"Podaj zakres b: "<<endl;
  12.         cin>>b;
  13.  
  14.         int k;
  15.         int wybor;
  16.         cout<<"Podaj, ktora calke chcesz obliczyc 1:f(x)=1/x   2:f(x)=x^3+3x^2-2x+1)"<<endl;
  17.         cin>>wybor;
  18.         if(wybor==1)
  19.         {
  20.         cout<<"2 - dla kwadratury dwuzwezlowej 4 - dla kwadratury czterowezlowej"<<endl;
  21.         cout<<"Podaj wielkosc tablicy: "<<endl;
  22.         cout<<endl;
  23.  
  24.         cin>>k;
  25.  
  26.         if(k==2)
  27.         {
  28.         double *x = new double [k];
  29.         double *t = new double [k];
  30.         double *f = new double  [k];
  31.         double Q=0;
  32.         double s=0;
  33.  
  34.         int n=2;
  35.  
  36.         x[0]=0.577350;
  37.         x[1]=-0.577350;
  38.  
  39.         for (int i=0; i<n; i++)
  40.         {
  41.                 t[i]=a+b;
  42.                 t[i]+= (b-a)*x[i];
  43.                 t[i]/=2;
  44.         }
  45.         double *A = new double [k];
  46.         A[0]=1;
  47.         A[1]=1;
  48.         //obliczenia f(t)
  49.         for(int i=0;i<n;i++)
  50.         {
  51.                 f[i]=1/t[i];
  52.         }
  53.         //obliczanie kwadratury
  54.         for(int i=0;i<n;i++)
  55.         {
  56.                 s=A[i]*f[i]+s;
  57.         }
  58.         Q=b-a;
  59.         Q=Q/2;
  60.         Q=Q*s;
  61.         cout<<"Kwadratura dwuwezlowa dla calki f(x)=1/x w zakresie ["<<a<<","<<b<<"] wynosi: "<<Q<<endl;
  62. }
  63.         if(k==4)
  64.         {
  65.         double *x = new double [k];
  66.         double *t = new double [k];
  67.         double *f = new double [k];
  68.         double Q=0;
  69.         double s=0; //zmienna pomocnicza
  70.         int n=4;
  71.                
  72.         x[0]=-0.861136;
  73.         x[1]=-0.339981;
  74.         x[2]=0.339981;
  75.         x[3]=0.861136;
  76.  
  77.         for (int i=0; i<n; i++)
  78.         {
  79.                 t[i]=a+b;
  80.                 t[i]+= (b-a)*x[i];
  81.                 t[i]/=2;
  82.         }
  83.         double *A = new double [k];
  84.         A[0]= 0.347855;
  85.         A[1]= 0.652145;
  86.         A[2]= 0.652145;
  87.         A[3]= 0.347855;
  88.  
  89.         //obliczenia f(t)
  90.         for(int i=0;i<n;i++)
  91.         {
  92.                 f[i]=1/t[i];
  93.         }
  94.         //obliczanie kwadratury
  95.         for(int i=0;i<n;i++)
  96.         {
  97.                 s=A[i]*f[i]+s;
  98.         }
  99.         Q=b-a;
  100.         Q=Q/2;
  101.         Q=Q*s;
  102.         cout<<"Kwadratura czterowezlowa dla calki f(x)=1/x w zakresie ["<<a<<","<<b<<"] wynosi: "<<Q<<endl;
  103.         }
  104.         }
  105.  
  106.         //f(x)=x^3+3x^2-2x+1)
  107.  
  108.         if(wybor==2)
  109.         {
  110.             cout<<"Kocham"<<endl;
  111.             cout<<"2 - dla kwadratury dwuzwezlowej 4 - dla kwadratury czterowezlowej"<<endl;
  112.         cout<<"Podaj wielkosc tablicy: "<<endl;
  113.         cout<<endl;
  114.  
  115.         cin>>k;
  116.  
  117.         if(k==2)
  118.         {
  119.         double *x = new double [k];
  120.         double *t = new double [k];
  121.         double *f = new double  [k];
  122.         double Q=0;
  123.         double s=0;
  124.  
  125.         int n=2;
  126.  
  127.         x[0]=0.577350;
  128.         x[1]=-0.577350;
  129.  
  130.         for (int i=0; i<n; i++)
  131.         {
  132.                 t[i]=a+b;
  133.                 t[i]+= (b-a)*x[i];
  134.                 t[i]/=2;
  135.         }
  136.         double *A = new double [k];
  137.         A[0]=1;
  138.         A[1]=1;
  139.         //obliczenia f(t)
  140.         for(int i=0;i<n;i++)
  141.         {
  142.             //f(x)=x^3+3x^2-2x+1)
  143.                 f[i]=t[i]*t[i]*t[i]+3*t[i]*t[i]-2*t[i]+1;
  144.         }
  145.         //obliczanie kwadratury
  146.         for(int i=0;i<n;i++)
  147.         {
  148.                 s=A[i]*f[i]+s;
  149.         }
  150.         Q=b-a;
  151.         Q=Q/2;
  152.         Q=Q*s;
  153.         cout<<"Kwadratura dwuwezlowa dla calki f(x)=x^3+3x^2-2x+1 w zakresie ["<<a<<","<<b<<"] wynosi: \n"<<Q<<endl;
  154. }
  155.         if(k==4)
  156.         {
  157.         double *x = new double [k];
  158.         double *t = new double [k];
  159.         double *f = new double [k];
  160.         double Q=0;
  161.         double s=0; //zmienna pomocnicza
  162.         int n=4;
  163.                
  164.         x[0]=-0.861136;
  165.         x[1]=-0.339981;
  166.         x[2]=0.339981;
  167.         x[3]=0.861136;
  168.  
  169.         for (int i=0; i<n; i++)
  170.         {
  171.                 t[i]=a+b;
  172.                 t[i]+= (b-a)*x[i];
  173.                 t[i]/=2;
  174.         }
  175.         double *A = new double [k];
  176.         A[0]= 0.347855;
  177.         A[1]= 0.652145;
  178.         A[2]= 0.652145;
  179.         A[3]= 0.347855;
  180.  
  181.         //obliczenia f(t)
  182.         for(int i=0;i<n;i++)
  183.         {
  184.                 int x=t[i]*t[i]*t[i];
  185.                 f[i]=x*3*t[i]*t[i];
  186.                 f[i]-=2*t[i]+1;
  187.         }
  188.         //obliczanie kwadratury
  189.         for(int i=0;i<n;i++)
  190.         {
  191.                 s=A[i]*f[i]+s;
  192.         }
  193.         Q=b-a;
  194.         Q=Q/2;
  195.         Q=Q*s;
  196.         cout<<"Kwadratura czterowezlowa dla calki f(x)=x^3+3x^2-2x+1 w zakresie ["<<a<<","<<b<<"] wynosi: \n"<<Q<<endl;
  197.         }
  198.         }
  199. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement