Advertisement
Guest User

Untitled

a guest
Nov 9th, 2021
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.84 KB | None | 0 0
  1. using System;
  2. namespace ConsoleApp6
  3. {
  4.     class Program
  5.     {
  6.         static double foo(double x)
  7.         {
  8.             return x * x - 2 * x - 2 * Math.Cos(x);
  9.         }
  10.         static void Main(string[] args)
  11.         {
  12.             double masheps = 1;
  13.             while (1 + masheps > 1)
  14.                 masheps = masheps / 2;
  15.             masheps = Math.Sqrt(masheps);
  16.  
  17.             double a = -0.5;
  18.             double b = 1;
  19.             double L = b - a;
  20.             // Шаг 2
  21.             double x0 = (foo(a) - foo(b) + L * (a + b)) / (2 * L);
  22.             double y0 = (foo(a) + foo(b) + L * (a - b)) / 2;
  23.             double phiMin = y0;
  24.             // Шаг 3
  25.             var i = 0;
  26.             double x1L = 0;
  27.             double x1R = 0;
  28.             double phi = 0;
  29.             double delta = (foo(x0) - phiMin) / (2 * L);
  30.             do
  31.             { // Шаг 4
  32.                 if ((2 * L * delta) < masheps)
  33.                 {
  34.                     Console.WriteLine(x0);
  35.                     Console.WriteLine(foo(x0));
  36.                     Console.WriteLine($"{i} - i");
  37.                 }
  38.                 else
  39.                 {
  40.                     //шаг 5
  41.                     x1L = x0 - delta;
  42.                     x1R = x0 + delta;
  43.                     phi = (foo(x0) + phiMin) / 2;
  44.                     //шаг 6
  45.                     if (foo(x1L) < foo(x1R))
  46.                     {
  47.                         x0 = x1L;
  48.                     }
  49.                     else
  50.                     {
  51.                         x0 = x1R;
  52.                     }
  53.                     phiMin = phi;
  54.                     i++;
  55.                 }
  56.             } while (i<28);
  57.             Console.WriteLine($"{i} - i");
  58.             Console.WriteLine(x0);
  59.             Console.WriteLine(foo(x0));
  60.             Console.ReadKey();
  61.  
  62.         }
  63.     }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement