Решение нелинейного уравнения методом Ньютона. Переписать с Pascal на C#

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

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

Есть примерный алгоритм программы, нужно написать его на C# и доработать так, чтобы m менялось от -79.5 до 79.5 с шагом единица.
Листинг программы
  1. program Newton;
  2. function tg(x:real):real;
  3. begin
  4. tg := sin(x)/cos(x);
  5. end;
  6. function f(x:real):real;
  7. begin
  8. f := tg(x)-(1/x);
  9. end;
  10. function f1(x:real):real; {Первая производная функции}
  11. begin
  12. f1:= 1/(sqr(cos(x)))+(1/sqr(x));
  13. end;
  14. var a,b,x,eps,en:real;
  15. i:integer;
  16. begin
  17. writeln ('Решение нелинейного уравнения методом Ньютона');
  18. writeln ('tg(x)-((abs(m))/x)');
  19. write ('Введите требуемую точность решения:');
  20. read (eps);
  21. writeln ('Решение:');
  22. writeln ('Номер шага Значение X');
  23. a:= -2;
  24. b:= 1;
  25. en:= abs(a-b);
  26. x:= b;
  27. i:= 1;
  28. while (abs(en)>eps) do begin
  29. x:=x-f(x)/f1(x); {Шаг метода}
  30. writeln (i:10,x:14:3); {Вывод значения X с шагом i}
  31. en:=abs(x-b); {Новая точность}
  32. b:=x; {Значение границы для следующего шага}
  33. i:=i+1; {Номер шага}
  34. end;
  35. end.

Решение задачи: «Решение нелинейного уравнения методом Ньютона. Переписать с Pascal на C#»

textual
Листинг программы
  1. using System;
  2.  
  3. namespace Newton
  4. {
  5.     class Program
  6.     {
  7.         static double _a, _b, _x, _m, _eps, _en;
  8.    
  9.         static int _i;
  10.  
  11.         static void Main()
  12.         {
  13.             Console.WriteLine("Решение нелинейного уравнения методом Ньютона");
  14.             Console.WriteLine("tg(_x)-((abs(m))/_x)");
  15.             Console.Write("Введите требуемую точность решения: ");
  16.             _eps = double.Parse(Console.ReadLine());
  17.             Console.WriteLine("Решение:");
  18.             Console.WriteLine("Номер шага      Значение X");
  19.             Console.WriteLine();
  20.             for (_m = -79.5; _m <= 79.5; _m++)
  21.             {
  22.                 _a = -2;
  23.                 _b = 1;
  24.                 _en = Math.Abs(_a - _b);
  25.                 _x = _b;
  26.                 _i = 1;
  27.                 Console.WriteLine("m = {0}", _m);
  28.                 while (Math.Abs(_en) > _eps)
  29.                 {
  30.                     _x = _x - f(_x, _m) / f1(_x);
  31.                     Console.WriteLine("     {0}        {1}", _i++, _x);
  32.                     _en = Math.Abs(_x - _b);
  33.                     _b = _x;
  34.                 }
  35.                 Console.ReadKey();
  36.                 Console.WriteLine();
  37.             }
  38.            
  39.             Console.ReadKey();
  40.         }
  41.  
  42.         private static double f(double x, double m)
  43.         {
  44.             return Math.Tan(x) - (m/x);
  45.         }
  46.  
  47.         private static double f1(double x)
  48.         {
  49.             return 1/(Math.Sqrt(Math.Cos(x)) + 1/Math.Sqrt(x));
  50.         }
  51.     }
  52. }

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


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

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

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

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

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

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