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

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

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

Здравствуйте. Пытаюсь отсеить корни в следующем задании: sin(x) = 2006 * x. Насколько я понял должно быть 3 корня, это: -2.59426 2.59426 0
Листинг программы
  1. double x = -3, y1, y2, p;
  2. p = 0.00001;
  3. string st1, st2;
  4. while (x <= 3)
  5. {
  6. y1 = Math.Sin(x);
  7. y2 = 0.2006 * x;
  8. st1 = y1.ToString();
  9. st2 = y2.ToString();
  10.  
  11. string st3 = st1.Substring(1, 5);
  12. string st4 = st2.Substring(1, 5);
  13. if (st3 == st4)
  14. {
  15. Console.WriteLine("Y1 = {0}, X = {1}", y1, x);
  16. x += p;
  17. }
  18. else
  19. x += p;
  20. }
  21. Console.ReadKey();
Заранее благодарен.

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

textual
Листинг программы
  1. class Program
  2. {
  3.     private static double F(double x)
  4.     {
  5.         return Math.Sin(x) - 0.2006 * x;
  6.     }
  7.     private static double Newton(double x0, double eps, double dx)
  8.     {
  9.         double x1 = x0;
  10.         double dif = Math.Round(F(x1) / F(x1 + dx), 5);
  11.         double alpha = -1.0 / dif;
  12.         do
  13.         {
  14.             x0 = x1;
  15.             x1 += Math.Round(alpha * F(x0), 4);
  16.         } while (Math.Abs(x1 - x0) > eps);
  17.         return x1;
  18.     }
  19.     public static void Main()
  20.     {
  21.         const double eps = 0.00001;
  22.         const double dx = 0.1;
  23.          double x0 = 1.0;
  24.         Console.WriteLine(Newton(x0, eps, dx));
  25.         x0 = 2.5;
  26.         Console.WriteLine(Newton(x0, eps, dx));
  27.         x0 = -2.65;
  28.         Console.WriteLine(Newton(x0, eps, dx));
  29.  
  30.         Console.ReadKey();
  31.      }
  32. }

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


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

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

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

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

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

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