Составить программу для приближённого вычисления заданной функции у(х) - C#

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

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

Составить и отладить программу для приближённого вычисления заданной функции у(х) путём суммирования членов заданного её ряда s(x) см. таблицу 4.2. Суммирование членов ряда проводить до члена ряда, значение которого по абсолютной величине не будет превышать 10^(-6). Вычислить сумму ряда s(x) и непосредственно функцию у(х) при указанных в таблице 4.2 контрольных значениях аргументаx. Сравнить и проанализировать полученные значения. Пытался делать по примеру, но не смог. Помогите! -------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication8
{
class Program
{
public static void Main(string[] args)
{
// Используем информативные идентификаторы
int point = 3;//число точек в которых следует вычислить функцию
double exp = 1.0e-6;
// Применим массив, хотя, конечно можно обойтись без него
double[] argument = { 0.2, 0.6, 0.9 };
//Цикл по расчетным точкам
for (int i = 0; i < point; i++)
{
// Заранее вычислим "точное" значение данной функции
double exactly = 1/Math.Pow((1+ argument),2);
// Вычисление частичной суммы ряда
int srok = 1;//число членов разложения
double S = 1.0;//частичная сумма ряда
double delta = S - exactly;
//
double s = 1.0,
p = 2.0; //множители числителя
while (Math.Abs(delta) > exp)
{
//Будем по очереди умножать и делить на 
//множители числителя и знаменателя
s *= p;
 
if (srok > 1)
p += 2.0;
 
s *= argument;// Домножение элемента ряда на аргумент
if ((srok % 2) == 0) S -= s;
else S += s;
delta = S - exactly;
srok++;
}
// Печать результатов
Console.WriteLine("X[" + i + "] = " + argument + ";");
Console.WriteLine("F(X[" + i + "]) = " + exactly + ";");
Console.WriteLine("S(X[" + i + "]) = " + S + ";");
Console.WriteLine("S(x) - F(x) = " + delta + ";");
Console.WriteLine("N srok = " + srok + ";");
//Как выяснилось данный ряд расходится при x > 1
if (Double.NaN.Equals(S))
Console.WriteLine("--------------------------------------");
}

Console.ReadKey(true);
}
}
}

Решение задачи: «Составить программу для приближённого вычисления заданной функции у(х)»

textual
Листинг программы
public static void Main(string[] args)
{
    // Используем информативные идентификаторы
    int point = 3; //число точек в которых следует вычислить функцию
    double exp = 1e-6;
    // Применим массив, хотя, конечно можно обойтись без него
    double[] argument = { 0.2, 0.6, 0.9 };
    //Цикл по расчетным точкам
    for (int i = 0; i < point; i++)
    {
        // Заранее вычислим "точное" значение данной функции
        double exactly = 1 / Math.Pow((1 + argument[i]), 2);
 
        // Вычисление частичной суммы ряда
        int srok = 1; //число членов разложения
        double sum = 1.0; //Cумма ряда
        double arg = 1.0; // Член ряда
        double x = 1;
        while (Math.Abs(arg) > exp)
        {
            srok++;
            x *= argument[i];
            arg = srok * x;
            if (srok % 2 == 0)
            {
                arg = -arg;
            }
            sum += arg;
        }
        // Печать результатов
        Console.WriteLine("X[" + i + "] = " + argument[i] + ";");
        Console.WriteLine("F(X[" + i + "]) = " + exactly + ";");
        Console.WriteLine("S(X[" + i + "]) = " + sum + ";");
        Console.WriteLine("S(x) - F(x) = " + (sum - exactly) + ";");
        Console.WriteLine("N srok = " + srok + ";");
        //Как выяснилось данный ряд расходится при x > 1
        if (Double.NaN.Equals(sum))
            Console.WriteLine("--------------------------------------");
    }
 
    Console.ReadKey(true);
}

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


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

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

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