Найти корни уравнения - C# (186220)

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

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

Здравствуйте. Пытаюсь отсеить корни в следующем задании: sin(x) = 2006 * x. Насколько я понял должно быть 3 корня, это: -2.59426 2.59426 0
            double x = -3, y1, y2, p;
            p = 0.00001;
            string st1, st2;
           
            while (x <= 3)
            {
                y1 = Math.Sin(x);
                y2 = 0.2006 * x;
 
                st1 = y1.ToString();
                st2 = y2.ToString();

                string st3 = st1.Substring(1, 5);
                string st4 = st2.Substring(1, 5);
 
                if (st3 == st4)
                {
                    Console.WriteLine("Y1 = {0}, X = {1}", y1, x);
                    x += p;
 
                }
                else
                    x += p;
            }
 
            Console.ReadKey();
Заранее благодарен.

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

textual
Листинг программы
class Program
{
    private static double F(double x)
    {
        return Math.Sin(x) - 0.2006 * x;
    }
    private static double Newton(double x0, double eps, double dx)
    {
        double x1 = x0;
        double dif = Math.Round(F(x1) / F(x1 + dx), 5);
        double alpha = -1.0 / dif;
        do
        {
            x0 = x1;
            x1 += Math.Round(alpha * F(x0), 4);
        } while (Math.Abs(x1 - x0) > eps);
        return x1;
    }
    public static void Main()
    {
        const double eps = 0.00001;
        const double dx = 0.1;
         double x0 = 1.0;
        Console.WriteLine(Newton(x0, eps, dx));
        x0 = 2.5;
        Console.WriteLine(Newton(x0, eps, dx));
        x0 = -2.65;
        Console.WriteLine(Newton(x0, eps, dx));
 
        Console.ReadKey();
     }
}

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


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

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

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