frustration

DONE. ряд Тейлора. вариант 12. функция.

Apr 19th, 2019
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.46 KB | None | 0 0
  1. /*вариант 12 вычислить и вывести на экран в виде таблицы значения функции, заданнй с помощью ряда Тейлора, на интервале от xn до xk с шагом dx с точностью е
  2. arctg x =-pi/2 - 1/x+1/3*x^3- 1/5x^5+...) x<-1*/
  3.  
  4. #include <iostream>
  5. #include <iomanip>
  6. #include <cmath>
  7. #include <conio.h>
  8.  
  9.  
  10. using namespace std;
  11.  
  12. float TaylorExpansion(float x, int &n, int &flag){
  13.     float e = 0.00001;
  14.     float sum = -3.141592 / 2;
  15.     float s = -1 / x;
  16.     sum += s;
  17.  
  18.     while (fabs(s) >= e)
  19.     {
  20.  
  21.         flag = 0;
  22.         s *= -(2 * n - 1) / (x*x*(2 * n + 1));
  23.         sum += s;
  24.         n++;
  25.         if (n == 1000){
  26.             flag = 1;
  27.             break;
  28.         }
  29.     }
  30.  
  31.     return sum;
  32.  
  33. }
  34.  
  35. void Table(float xn, float xk, float dx){
  36.     float x, f;
  37.     cout << "---------------------------------------------\n";
  38.     cout << "|   x   |      f      |   arctg(x)  |    n   |\n";
  39.     cout << "---------------------------------------------" << endl;
  40.  
  41.     int n, flag;
  42.     for (x = xn; x <= xk; x += dx)
  43.     {
  44.         n = 1;
  45.         flag = 0;
  46.         f = TaylorExpansion(x, n, flag);
  47.  
  48.         if (flag == 0)
  49.             printf("|%6.2f |  %8.5f   |  %8.5f   |%6d  |\n", x, f, atan(x), n);
  50.         else
  51.             printf("|%6.2f |      -      |       -     |%6d  |\n", x, n);
  52.  
  53.     }
  54.     cout << "----------------------------------------------\n";
  55. }
  56.  
  57. int main()
  58. {
  59.     float xn, xk, dx;
  60.     cout << "Enter xn, xk, dx: \n";
  61.     cin >> xn >> xk >> dx;
  62.     Table(xn, xk, dx);
  63.     _getch();
  64.     return 0;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment