Advertisement
Guest User

Untitled

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