Решение нелинейного уравнения методом Ньютона. Переписать с Pascal на C#
Формулировка задачи:
Есть примерный алгоритм программы, нужно написать его на C# и доработать так, чтобы m менялось от -79.5 до 79.5 с шагом единица.
program Newton; function tg(x:real):real; begin tg := sin(x)/cos(x); end; function f(x:real):real; begin f := tg(x)-(1/x); end; function f1(x:real):real; {Первая производная функции} begin f1:= 1/(sqr(cos(x)))+(1/sqr(x)); end; var a,b,x,eps,en:real; i:integer; begin writeln ('Решение нелинейного уравнения методом Ньютона'); writeln ('tg(x)-((abs(m))/x)'); write ('Введите требуемую точность решения:'); read (eps); writeln ('Решение:'); writeln ('Номер шага Значение X'); a:= -2; b:= 1; en:= abs(a-b); x:= b; i:= 1; while (abs(en)>eps) do begin x:=x-f(x)/f1(x); {Шаг метода} writeln (i:10,x:14:3); {Вывод значения X с шагом i} en:=abs(x-b); {Новая точность} b:=x; {Значение границы для следующего шага} i:=i+1; {Номер шага} end; end.
Решение задачи: «Решение нелинейного уравнения методом Ньютона. Переписать с Pascal на C#»
textual
Листинг программы
using System; namespace Newton { class Program { static double _a, _b, _x, _m, _eps, _en; static int _i; static void Main() { Console.WriteLine("Решение нелинейного уравнения методом Ньютона"); Console.WriteLine("tg(_x)-((abs(m))/_x)"); Console.Write("Введите требуемую точность решения: "); _eps = double.Parse(Console.ReadLine()); Console.WriteLine("Решение:"); Console.WriteLine("Номер шага Значение X"); Console.WriteLine(); for (_m = -79.5; _m <= 79.5; _m++) { _a = -2; _b = 1; _en = Math.Abs(_a - _b); _x = _b; _i = 1; Console.WriteLine("m = {0}", _m); while (Math.Abs(_en) > _eps) { _x = _x - f(_x, _m) / f1(_x); Console.WriteLine(" {0} {1}", _i++, _x); _en = Math.Abs(_x - _b); _b = _x; } Console.ReadKey(); Console.WriteLine(); } Console.ReadKey(); } private static double f(double x, double m) { return Math.Tan(x) - (m/x); } private static double f1(double x) { return 1/(Math.Sqrt(Math.Cos(x)) + 1/Math.Sqrt(x)); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д