isotonicq

metody

Oct 13th, 2016
113
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. Metody Numeryczne zadanie nr 6
  3. Przygotował: Dawid Grzeszuk
  4. Kierunek: Informatyka 3 semestr
  5. Środowisko: Visual Studio 2015
  6. Język programowania: C++
  7. */
  8.  
  9. #include <iostream>
  10. #include <cstdlib>
  11. #include <math.h>
  12.  
  13. using namespace std;
  14.  
  15. double eps = 1.e-6;
  16.  
  17. class Funkcja
  18. {
  19. private:
  20.     double x, x0, x1;
  21.     int liczba_krokow;
  22.  
  23. public:
  24.     Funkcja(double zmienna_x0, double zmienna_x1)
  25.     {
  26.         this->x = 0;
  27.         this->x0 = zmienna_x0;
  28.         this->x1 = zmienna_x1;
  29.         this->liczba_krokow = 0;
  30.     }
  31.  
  32.     double liczenie_funkcji(double x)
  33.     {
  34.         return(x-2*exp(-x));
  35.     }
  36.  
  37.     double liczenie_siecznej()
  38.     {
  39.         do
  40.         {
  41.             //wykonywanie funkcji
  42.             x = x1 - liczenie_funkcji(x1)*(x1 - x0) / (liczenie_funkcji(x1) - liczenie_funkcji(x0));
  43.             //zamiana wartosci
  44.             x0 = x1;
  45.             x1 = x;
  46.  
  47.             //zwiekszanie liczby krokow
  48.             liczba_krokow++;
  49.  
  50.         } while (!(fabs(liczenie_funkcji(x)) < eps));
  51.  
  52.         return x;
  53.     }
  54.  
  55.     int zwroc_liczbe_krokow()
  56.     {
  57.         return liczba_krokow;
  58.     }
  59.  
  60. };
  61.  
  62. int main()
  63. {
  64.     double x0 = 0;
  65.     double x1 = 0;
  66.  
  67.     cout << ("prosze podaj x0: ");
  68.     cin >> x0;
  69.    
  70.     cout << ("prosze podaj x1: ");
  71.     cin >> x1;
  72.  
  73.     cout << ("podaj dokladnosc: ");
  74.     cin >> eps;
  75.    
  76.     Funkcja *obiekt = new Funkcja(x0, x1);
  77.     cout << endl << ("wynik to: ") << obiekt->liczenie_siecznej() << endl;
  78.     cout << ("wynik wyliczono w ") << obiekt->zwroc_liczbe_krokow() << (" krokach") << endl;
  79.     cout << ("wynik uzyskano z dokladnoscia: ") << eps << endl;
  80.  
  81.     delete obiekt;
  82.  
  83.     return 0;
  84. }
RAW Paste Data