Advertisement
Dambosin

int 1

May 13th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.21 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3. #include <iomanip>
  4. #include <math.h>
  5. using namespace std;
  6.  
  7. double function(double x) {
  8. return 4 * x - 7 * sin(x);
  9. }
  10.  
  11. double CalcIntegral(double a, double b, int n)
  12. {
  13. int i;
  14. double result, h;
  15.  
  16. result = 0;
  17. h = (b - a) / n; //Шаг сетки
  18.  
  19. for (i = 0; i < n; i++)
  20. {
  21. result += function(a + h * (i + 0.5)); //Вычисляем в средней точке и добавляем в сумму
  22. }
  23.  
  24. result *= h;
  25.  
  26. return result;
  27. }
  28. int main(void)
  29. {
  30. setlocale(LC_ALL, "Russian");
  31. cout << "a=";
  32. double a;
  33. cin >> a;
  34. cout << "b=";
  35. double b;
  36. cin >> b;
  37. double x[20];
  38. double y[20];
  39. double h = (b - a) / 10.;
  40. int k = (b - a) / h;
  41. for (int i = 0; i <= k + 1; i++)
  42. {
  43. x[i] = a + i * h;
  44. y[i] = function(x[i]);
  45. }
  46. double dy[20];
  47. dy[0] = (4 * y[1] - y[2] - 3 * y[0]) / (2 * h);//первое приближенное значение произвоодной
  48. dy[k] = (4 * y[k - 1] - y[k - 2] - 3 * y[k]) / (2 * h);//последнее прибл. значение произвоодной
  49. for (int i = 1; i < k; i++) dy[i] = (y[i + 1] - y[i - 1]) / (2 * h);//остальные прибл. значения
  50. double Dy[20];
  51. for (int i = 0; i <= k; i++)Dy[i] = -7*cos(x[i])+4;//прямые значения производной
  52. double d2y[20];
  53. d2y[0] = (y[0] - 2 * y[1] + y[2]) / pow(h, 2);//первое приближенное значение второй произвоодной
  54. d2y[k] = (y[k - 2] - 2 * y[k - 1] + y[k]) / pow(h, 2);//последнее прибл. значение второй произвоодной
  55. for (int i = 1; i < k; i++)d2y[i] = (y[i - 1] - 2 * y[i] + y[i + 1]);//остальные прибл. второй значения
  56. double D2y[20];
  57. for (int i = 0; i <= k; i++)D2y[i] = 7*sin(x[i]);//прямые значения второй производной
  58. cout << setw(5) << "X" << setw(10) << "Y" << setw(10) << "dY" << setw(10) << "DY" << setw(10) << "d2Y" << setw(10) << "D2Y" << endl;
  59. for (int i = 0; i <= k; i++)
  60. cout << setw(5) << x[i] << setw(10) << y[i] << setw(10) << dy[i] << setw(10) << Dy[i] << setw(10) << d2y[i] << setw(10) << D2y[i] << endl;
  61. cout << CalcIntegral(a, b, k);
  62. return 0;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement