Ряды Тейлора - 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;
        }
    }
}

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


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

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

5   голосов , оценка 4 из 5
Похожие ответы