Ряды Тейлора. Вычислить и вывести на экран в виде таблицы значения функции - C#
Формулировка задачи:
Код рабочий, но работает не совсем правильно, преподаватель дал подсказку, связанную с модулем, но я не понял зачем он, где он нужен и поможет ли это?
Помогите, пожалуйста!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace laba_3
{
class Program
{
static void Main(string[] args)
{
string Vib = "Y";
while (Vib == "Y")
{
try
{
Console.WriteLine("Задана Функция arctg(x)");
Console.Write("Введите значение начального аргумента x1, если x>1 : ");
double x1 = double.Parse(Console.ReadLine());
while ( x1 <= 1)
{
Console.Write("x не входит в область допустих значений.\nВведите x: ");
x1 = double.Parse(Console.ReadLine());
}
Console.Write("Введите значение конечного аргумента x1, если x>1 : ");
double x2 = double.Parse(Console.ReadLine());
while ( x2 <= 1)
{
Console.Write("x не входит в область допустих значений.\nВведите x: ");
x2 = double.Parse(Console.ReadLine());
}
Console.Write("Введите шаг для x: ");
double Shag = double.Parse(Console.ReadLine());
Console.Write("Введите погрешность измерения: ");
double Pog = double.Parse(Console.ReadLine());
Console.WriteLine("x " + "Точное значение " + "Приблизительное значение ");
for (double x = x1; x <= x2; x += Shag)
{
double z = Math.Atan(x);
int n = 0;
double S = Math.PI/2;
while (Math.Pow(-1, n + 1) / (Math.Pow(((2 * n + 1) * x),(2 * n + 1))) < Pog )
{
S += Math.Pow(-1, n + 1) / (Math.Pow(((2 * n + 1) * x), (2 * n + 1)));
n++;
}
Console.WriteLine(x + " " + z + " " + S);
}
}
catch
{
Console.WriteLine("Ошибка.");
}
Console.Write("Повторить программу?(Yes/No): ");
Vib = Console.ReadLine();
}
}
}
}Решение задачи: «Ряды Тейлора. Вычислить и вывести на экран в виде таблицы значения функции»
textual
Листинг программы
for (double x = x1; x <= x2; x += Shag)
{
double z = Math.Atan(x);
int n = 0;
double S=0, sl = Math.PI / 2;
while (Math.Abs(sl) > Pog)
{
S += sl;
sl = Math.Pow(-1, n + 1) / ((2 * n + 1) * Math.Pow(x, (2 * n + 1)));
n++;
}
Console.WriteLine(x + " " + z + " " + S);
}