Ряды Тейлора - C# (181706)
Формулировка задачи:
Здравствуйте! Помогите решить данную задачу. Заранее спасибо.
Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от xнач до xкон с шагом dx с точностью е. Таблицу снабдить заголовком и шапкой. Каждая строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряда.
Решение задачи: «Ряды Тейлора»
textual
Листинг программы
using System;
namespace CyberForum
{
public static class Program
{
public static void Main(string[] args)
{
Console.Write("Введите значение X нач: ");
double min = double.Parse(Console.ReadLine());
Console.Write("Введите значение X кон: ");
double max = double.Parse(Console.ReadLine());
Console.Write("Введите шаг приращения dx: ");
double delta = double.Parse(Console.ReadLine());
Console.Write("Введите точность e: ");
double epsilon = double.Parse(Console.ReadLine());
string headerFormat = " {0,10} | {1,10} | {2,10} |";
string header = string.Format(headerFormat, "x", "y", "count");
Console.WriteLine(header);
Console.WriteLine(new string('=', header.Length));
for (double argument = min; argument <= max; argument += delta)
{
int count;
double result = Functions.Arth(argument, epsilon, out count);
Console.WriteLine(" {0,10:F5} | {1,10:F5} | {2,10} |", argument, result, count);
}
}
}
public static class Functions
{
public static double Arth(double x, double epsilon, out int elementsCount)
{
if ((x < -1.0) || (x > 1.0))
{
throw new ArgumentOutOfRangeException("x", "Значение х должно находиться в границах (-1; 1)");
}
double result = 0.0; int count = 0;
double denominator = x;
double nominator = 1.0;
double division = 0.0;
do
{
division = denominator / nominator;
result += division;
denominator *= (x * x);
nominator += 2;
count++;
}
while (Math.Abs(division) >= epsilon);
elementsCount = count;
return result;
}
}
}