Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2020, 13:39   #1
Banki
 
Регистрация: 13.11.2020
Сообщений: 9
По умолчанию Вычислить значение суммы бесконечного ряда с заданной точностью Си

Что то это дело считает, но при проверке естесно значения не сходятся...

Код:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define EPS 1e-4

unsigned long long int fact(unsigned long long int a)
{
    if (a == 0 || a == 1) return 1;

    return fact(a-1) * a;

}


int main ()
{
    double x, a, s, t, f; // x, a - аргументы, получаемые с клавиатуры. s - искомая сумма, t - слагаемое ряда, f - значение функции
    int n = 0; // изначальное значение индекса n

    printf ("x = ");
    scanf ("%lf", &x);

    printf ("a = ");
    scanf ("%lf", &a);

    t = 1.0;
    s = 1.0 + t;

    if ( 0.1<=x<=1 )
    {
        while (fabs(t) > EPS)
        {
            n++;
            t *= (x * log(a)) / fact(n);
            s+=t;
            printf("n=%d t=%lf s=%lf\n", n, t, s);
        }

        printf ("S = %lf\nf = %lf\n", s, f = a * x);
    }
    else
    {
        printf("x не попадает в область определения 0.1<=x<=1");
    }
    return 0;
}
Изображения
Тип файла: jpg Безымянный.jpg (24.4 Кб, 4 просмотров)
Banki вне форума Ответить с цитированием
Старый 26.11.2020, 13:49   #2
FrosyaZZ
Форумчанин
 
Регистрация: 16.11.2020
Сообщений: 243
По умолчанию

Код:
    t = 1.0;
    s = 1.0 + t;
Сумма начинается не с 2.

Код:
if ( 0.1<=x<=1 )
Это не так работает, как вы думаете. Объединяйте условия через логические операторы.

Код:
t *= (x * log(a)) / fact(n);
1! * 2! * 3! * 4! * ... n! != n!
FrosyaZZ вне форума Ответить с цитированием
Старый 26.11.2020, 14:00   #3
Banki
 
Регистрация: 13.11.2020
Сообщений: 9
По умолчанию

Ну если я правильно понял...
Как надо работать не стало(
Код:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define EPS 1e-4

int main ()
{
    double x, a, s, t, f; // x, a - аргументы, получаемые с клавиатуры. s - искомая сумма, t - слагаемое ряда, f - значение функции
    int n = 0; // изначальное значение индекса n

    printf ("x = ");
    scanf ("%lf", &x);

    printf ("a = ");
    scanf ("%lf", &a);

    t = 1.0;
    s = 0 + t;

    if ( 0.1<=x && x<=1 )
    {
        while (fabs(t) > EPS)
        {
            n++;
            t *= (x * log(a)) / (n+1);
            s+=t;
            printf("n=%d t=%lf s=%lf\n", n, t, s);
        }

        printf ("S = %lf\nf = %lf\n", s, f = a * x);
    }
    else
    {
        printf("x не попадает в область определения 0.1<=x<=1");
    }
    return 0;
}
Banki вне форума Ответить с цитированием
Старый 26.11.2020, 14:54   #4
FrosyaZZ
Форумчанин
 
Регистрация: 16.11.2020
Сообщений: 243
По умолчанию

1. У вас ошибка в условии. Это ряд для функции a^x
2. Не (n+1), а n
FrosyaZZ вне форума Ответить с цитированием
Старый 26.11.2020, 15:23   #5
Banki
 
Регистрация: 13.11.2020
Сообщений: 9
По умолчанию

Banki вне форума Ответить с цитированием
Старый 26.11.2020, 15:33   #6
FrosyaZZ
Форумчанин
 
Регистрация: 16.11.2020
Сообщений: 243
По умолчанию

https://www.wolframalpha.com/input/?...at+x%3D0+a%5Ex
FrosyaZZ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Cоставте программу нахождения суммы бесконечного ряда с заданной точностью на Turbo Basic Fayst85 Помощь студентам 6 19.05.2020 12:38
Вычислить сумму бесконечного ряда с заданной точностью Alex95 Помощь студентам 1 27.12.2015 08:10
Вычислить значение суммы S знакочередующегося ряда с точностью е = 0,0001. spod32 Паскаль, Turbo Pascal, PascalABC.NET 3 21.03.2013 21:26
Вычислить с заданной точностью значение функции, представленной в виде бесконечного ряда _ROBERT_ Помощь студентам 7 30.10.2012 21:57
Подсчет суммы бесконечного ряда с точностью Е. dekuk Помощь студентам 21 24.09.2011 11:24