Advertisement
KuriGohanAndKamehaX2

sem 1

Dec 4th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.34 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. double phi(double);
  5. double psi(double);
  6. double lamda(double);
  7. double lamda_der(double);
  8. double F(double, double);
  9. double F_der(double, double);
  10. double calculate(double, double);
  11. void out(int, double);
  12. int n_in();
  13. double eps_in();
  14.  
  15. int main()
  16. {
  17. out(n_in(), eps_in());
  18.  
  19. return 0;
  20. }
  21.  
  22. double eps_in()
  23. {
  24. double eps;
  25.  
  26. std::cout << "enter eps: ";
  27. std::cin >> eps;
  28.  
  29. return eps;
  30. }
  31.  
  32. int n_in()
  33. {
  34. int n;
  35.  
  36. std::cout << "enter n: ";
  37. std::cin >> n;
  38.  
  39. return n;
  40. }
  41.  
  42. double phi(double x)
  43. {
  44. return .8*x*x - 3*x + 1.7;
  45. }
  46.  
  47. double psi(double x)
  48. {
  49. return (.3*x - 1)/sqrt(1 + x + x*x);
  50. }
  51.  
  52. double lamda(double y)
  53. {
  54. return y + log(1 + y*y);
  55. }
  56.  
  57. double lamda_der(double y)
  58. {
  59. return 1 + 2*y/(1 + y*y);
  60. }
  61.  
  62. double F(double x, double y)
  63. {
  64. return y*phi(x) + psi(x) + lamda(y);
  65. }
  66.  
  67. double F_der(double x, double y)
  68. {
  69. return psi(x) + lamda_der(y);
  70. }
  71.  
  72. double calculate(double x, double eps)
  73. {
  74. double y_n, y_n_1 = -psi(x)/phi(x);
  75.  
  76. do
  77. {
  78. y_n = y_n_1 - F(x, y_n_1)/F_der(x, y_n_1);
  79. y_n_1 = y_n;
  80. } while (abs(y_n - y_n_1) > eps);
  81.  
  82. return y_n;
  83. }
  84.  
  85. void out(int n, double eps)
  86. {
  87. std::cout << "enter x[i], 0 <= i < n\n\n";
  88.  
  89. for (int i = 0; i < n; i++)
  90. {
  91. double x;
  92. std::cin >> x;
  93.  
  94. std::cout << "( " << x << ", " << calculate(x, eps) << " )\n";
  95. }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement