SHARE
TWEET

Untitled

a guest Dec 14th, 2019 90 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <cmath>
  4. using namespace std;
  5.  
  6. double f(double x, int k)
  7. {
  8.     return (x - k * cos(x));
  9. }
  10.  
  11.  
  12.  
  13. double pr(double x, int k)
  14. {
  15.     return (1 + k * sin(x));
  16. }
  17.  
  18.  
  19. double pd(double a, double b, double eps, int k)
  20. {
  21.     double c, x;
  22.     int i;
  23.     i = 0;
  24.     while (abs(a - b) > eps)
  25.     {
  26.         c = (a + b) / 2;
  27.         if ((f(a, k) * f(c, k)) < 0)
  28.         {
  29.             b = c;
  30.         }
  31.         else
  32.         {
  33.             a = c;
  34.         }
  35.         i++;
  36.     }
  37.     x = (a + b) / 2;
  38.     cout << i << " iterrations" << endl;
  39.     return x;
  40. }
  41.  
  42.  
  43. double newton(double a, double eps, int k)
  44. {
  45.     double x1, xn;
  46.     int i;
  47.     i = 0;
  48.     x1 = a;
  49.     xn = x1 - f(x1, k) / pr(x1, k);
  50.     while (abs(xn - x1) > eps)
  51.     {
  52.         x1 = xn;
  53.         xn = x1 - f(x1, k) / pr(x1, k);
  54.         i++;
  55.     }
  56.     cout << i << " iterrations" << endl;
  57.     return xn;
  58. }
  59.  
  60. double iterration(double a, double eps, int k)
  61. {
  62.     double x1, xn;
  63.     int i;
  64.     i = 0;
  65.     x1 = a;
  66.     xn = k * cos(x1);
  67.     while (abs(xn - x1) > eps)
  68.     {
  69.         x1 = xn;
  70.         xn = k * cos(x1);
  71.         i++;
  72.         if (i > 100000)
  73.             break;
  74.     }
  75.  
  76.     cout << i << " iterrations" << endl;
  77.     return xn;
  78. }
  79. #include <iostream>
  80. #include <cmath>
  81. #include <iomanip>
  82. #include "прототипы.h"
  83. using namespace std;
  84.  
  85. int main(){
  86.     setlocale(LC_ALL, "rus");
  87.     double a, b, kor;
  88.  
  89.     cin >> a;
  90.     cin >> b;
  91.     cout << endl;
  92.     cout << "x-cos(x)"<< endl;
  93.  
  94.     kor = pd(a, b, 0.000001, 1);
  95.     cout <<" метод половинное деление " << kor <<  endl;
  96.     cout << endl;
  97.  
  98.     kor = newton(a, 0.000001, 1);
  99.     cout <<"метод Ньютона "<< kor <<  endl;
  100.     cout << endl;
  101.  
  102.     kor = iterration(a, 0.000001, 1);
  103.     cout <<"метод итерации " <<kor <<  endl;
  104.     cout << endl;
  105.  
  106.     cout << "x-cos(x)" << endl;
  107.  
  108.     kor = pd(a, b, 0.00000001, 1);
  109.     cout << fixed << setprecision(8)<< "метод половинное деление " << kor << endl;
  110.     cout << endl;
  111.  
  112.     kor = newton(a, 0.00000001, 1);
  113.     cout << fixed << setprecision(8) << "метод Ньютона " << kor << endl;
  114.     cout << endl;
  115.  
  116.     kor = iterration(a, 0.00000001, 1);
  117.     cout <<fixed << setprecision(8)<< "метод итерации " << kor << endl;
  118.     cout << endl;
  119.  
  120.     cout << "x-10cos(x)" << endl;
  121.  
  122.     kor = pd(a, b, 0.000001, 10);
  123.     cout << "метод половинное деление " << kor <<  endl;
  124.     cout << endl;
  125.  
  126.     kor = newton(a, 0.000001, 10);
  127.     cout << "метод Ньютона " << kor << endl;
  128.     cout << endl;
  129.  
  130.     kor = iterration(a, 0.000001, 10);
  131.     cout << "метод итерации " << kor <<  endl;
  132.  
  133.     system("pause");
  134.     return 0;
  135. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top