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

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

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

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

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

textual
Листинг программы
using System;
 
namespace ConsoleApplicationTest
{
    internal class Program
    {
        private static void Main()
        {
            // Точность.
            double accuracy = 1e-8;
            // Интервал поиска.
            double min = 0;
            double max = Math.PI / 2;
            // Длина интервала.
            var length = max - min;
            // Начальная ошибка.
            var err = length;
            // Корень.
            double x = 0;
            while (err > accuracy && F(x) !=0)
            {
                // Вычисляем середину интервала.
                x = (min + max) / 2;
                // Найдём новый интервал, в котором функция меняет знак.
                if (F(min) * F(x) < 0)
                {
                    max = x;
                }
                else if (F(x) * F(max) < 0)
                {
                    min = x;
                }
                // Вычисляем новую ошибку.
                err = (max - min) / length;
            }
 
            Console.WriteLine(x);
            Console.ReadKey();
        }
 
        // Функция.
        public static double F(double x)
        {
            return Math.Cos(x) - x;
        }
    }
}

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


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

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

6   голосов , оценка 3.833 из 5
Похожие ответы