Advertisement
Zorikto

lab3ASA

Oct 12th, 2021 (edited)
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.27 KB | None | 0 0
  1. #include <iostream>
  2. #include <math.h>
  3.  
  4. using namespace std;
  5.  
  6. double f1(double x){
  7.     double res = 1/pow(3*atan(x), 1.0/3);
  8.     return res;
  9. }
  10.  
  11. double f2(double x){
  12.     double res = atan(x) - 1/ (3*pow(x,3));
  13.     return res;
  14. }
  15.  
  16. int main()
  17. {
  18.     setlocale(LC_ALL, "rus");
  19.     cout << "1 метод" << endl;
  20.     double x = 0.76;
  21.     double eps = 1e-3;
  22.     double prev_res = f1(x);
  23.     double curr_res;
  24.     while(abs(prev_res - f1(prev_res)) > eps ){
  25.         cout<<prev_res<<endl;
  26.         prev_res = f1(prev_res);
  27.         curr_res = f1(prev_res);
  28.     }
  29.     cout<<curr_res<<' ';
  30.  
  31.  
  32.     cout << "\n\n" << "2 метод" << endl;
  33.     double a = 0, b = 1;
  34.     double prev_x = (a + b) / 2;
  35.     if((f2(a) * f2(prev_x)) < 0){
  36.       b = prev_x;
  37.     }
  38.     else{
  39.      a = prev_x;
  40.     }
  41.     double curr_x = (a + b) / 2;
  42.     while(abs(prev_x - curr_x) > eps){
  43.        prev_x = curr_x;
  44.        if(f2(a) * f2(prev_x) < 0){
  45.           b = prev_x;
  46.        }
  47.        else{
  48.          a = prev_x;
  49.        }
  50.        curr_x = (a + b) / 2;
  51.  
  52.        cout<<prev_x<<' ';
  53.        cout<<f2(a) * f2(prev_x) << ' ';
  54.        cout << f2(b) * f2(prev_x) << endl;
  55.     }
  56.     cout<<curr_x<<' ';
  57.     cout<<f2(a) * f2(curr_x) << ' ';
  58.     cout << f2(b) * f2(curr_x) << endl;
  59.  
  60.     return 0;
  61. }
  62.  
  63.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement