Advertisement
fqrmix

First Lab Work

Feb 18th, 2017
180
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 <iomanip>
  3. #include <math.h>
  4.  
  5. using namespace std;
  6.  
  7. double xx0, xx1; // промежуток в ответе шагового метода
  8. double a = 0.5, b = 1, h = 0.05, e = 0.001; // исходные данные
  9.  
  10. double F(double x)
  11. {
  12.     return (x + cos(pow(x, 0.5) + 2));
  13. }
  14. double F1(double x)
  15. {
  16.     return ((1 - sin(pow(x, 1. / 2.) + 2)) / pow(x, 1. / 2.));
  17. }
  18. double S(double x)
  19. {
  20.     return (-cos(pow(x, 0.5) + 2));
  21. }
  22.  
  23. void shag_metod() {
  24.     double x0 = a, x1 = x0 + h;
  25.     while (x1 <= b)
  26.     {
  27.         x1 = x0 + h;
  28.         if (F(x0)*F(x1)<0) {
  29.             cout << "x na intervale [" << x0 << "," << x1 << "]" << endl;
  30.             xx0 = x0;
  31.             xx1 = x1;
  32.         }
  33.         x0 = x1;
  34.     }
  35. }
  36. void pol_del() {
  37.     double x = xx0;
  38.     a = xx0;
  39.     b = xx1;
  40.     while (fabs(F(x))>e)
  41.     {
  42.         x = (a + b) / 2;
  43.         if (F(a)*F(x)<0) b = x;
  44.         else a = x;
  45.     }
  46.     cout << "METOD POLOVINNOGO DELENIA x=" << x << endl;
  47. }
  48. void nuton() {
  49.     double x2 = xx0;
  50.     while (fabs(F(x2))>e)
  51.     {
  52.         x2 = x2 - F(x2) / F1(x2);
  53.     }
  54.     cout << "METOD N'UTONA x=" << x2 << endl;
  55. }
  56. void pros_iter() {
  57.     double x3 = xx0;
  58.     while (fabs(F(x3))>e)
  59.     {
  60.         x3 = S(x3);
  61.  
  62.     }
  63.     cout << "METOD PROSTOI ITERACII x=" << x3 << endl;
  64. }
  65. int main()
  66. {
  67.     shag_metod();
  68.     pol_del();
  69.     nuton();
  70.     pros_iter();
  71.     system("pause");
  72.     return 0;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement