Нахождение корней уравнения - C#

Узнай цену своей работы

Формулировка задачи:

Вопрос скорее математический. Это программа нахождения корней уравнения cos(x) = x Объясните пожалуйста логику. Я не понимаю как таким способом можно найти x? И калькулятор не подтверждает, что программа работает.
Листинг программы
  1. class Program
  2. {
  3. static void Main(string[] args)
  4. {
  5. double x, left = 0, right = 1;
  6. do
  7. {
  8. x = (left + right) / 2;
  9. if ((Math.Cos(x) - x) * (Math.Cos(left) - left) < 0)
  10. right = x;
  11. else left = x;
  12. } while (Math.Abs(right - left) < 1e-4);
  13. Console.WriteLine("Корень равен = " + x);
  14. }
  15. }

Решение задачи: «Нахождение корней уравнения»

textual
Листинг программы
  1. using System;
  2.  
  3. namespace ConsoleApplicationTest
  4. {
  5.     internal class Program
  6.     {
  7.         private static void Main()
  8.         {
  9.             // Точность.
  10.             double accuracy = 1e-8;
  11.             // Интервал поиска.
  12.             double min = 0;
  13.             double max = Math.PI / 2;
  14.             // Длина интервала.
  15.             var length = max - min;
  16.             // Начальная ошибка.
  17.             var err = length;
  18.             // Корень.
  19.             double x = 0;
  20.             while (err > accuracy && F(x) !=0)
  21.             {
  22.                 // Вычисляем середину интервала.
  23.                 x = (min + max) / 2;
  24.                 // Найдём новый интервал, в котором функция меняет знак.
  25.                 if (F(min) * F(x) < 0)
  26.                 {
  27.                     max = x;
  28.                 }
  29.                 else if (F(x) * F(max) < 0)
  30.                 {
  31.                     min = x;
  32.                 }
  33.                 // Вычисляем новую ошибку.
  34.                 err = (max - min) / length;
  35.             }
  36.  
  37.             Console.WriteLine(x);
  38.             Console.ReadKey();
  39.         }
  40.  
  41.         // Функция.
  42.         public static double F(double x)
  43.         {
  44.             return Math.Cos(x) - x;
  45.         }
  46.     }
  47. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы