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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2023, 17:18   #1
JohnyWinchester
Новичок
Джуниор
 
Регистрация: 14.10.2023
Сообщений: 3
По умолчанию Дано действительное число x. Вычислить значение y с помощью стандартной функции и с помощью ряда с точностью 0,0001:

Помогите пожалуйста, возможно ошибка в формуле расчёта очередного члена ряда, но я не пойму(

#include <stdio.h>
#include <math.h>
#define E 1e-04 // точность вычисления

int main()
{
float x, // аргумент функции
y; // сумма ряда
float a; // очередной член ряда
int n; // номер итерацииjn

printf("x=");
scanf_s("%f", &x);

y = 0; a = x; n = 0;
while (fabs(a) >= E)
{
y = y + a;
n++;
a = -a * pow((x - 1),n) / n * pow(x,n); /* вычисление очередного члена
ряда через предыдущий */
}
printf("y=%f\n", y);
printf("lnx=%f\n", log10(x));
return 0;
}
Изображения
Тип файла: png Формула.png (13.7 Кб, 0 просмотров)
JohnyWinchester вне форума Ответить с цитированием
Старый 15.10.2023, 18:08   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

У вас же в ряде знак не меняется, зачем -? Зачем вы на а умножаете, если считаете член полностью? Если умножать, то там что-то типа (n-1)(x-1)/(nx) должно быть.
p51x вне форума Ответить с цитированием
Старый 15.10.2023, 18:47   #3
JohnyWinchester
Новичок
Джуниор
 
Регистрация: 14.10.2023
Сообщений: 3
По умолчанию

p51x, a = pow((x - 1),n) /pow(x,n) * n вроде вот так сделал, вроде получилось) Спасибо, но я не уверен, что правильно))))
JohnyWinchester вне форума Ответить с цитированием
Старый 15.10.2023, 19:18   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

JohnyWinchester, не забывайте про скобки, а то у вас n в числителе, а не в знаменателе. А еще у вас первый член ряда x, а на картинке (x-1)/x.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 18.10.2023, 11:43   #5
JohnyWinchester
Новичок
Джуниор
 
Регистрация: 14.10.2023
Сообщений: 3
По умолчанию

BDA, спасибо большое, исправил)))
JohnyWinchester вне форума Ответить с цитированием
Старый 18.10.2023, 13:58   #6
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 736
По умолчанию

Код:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define eps 1e-4  //точность вычисления

int main()
{
    double x, s, an;
    int n;

    /*
    printf("x = ");
    scanf_s("%lf", &x);
    */
    //Debug
    x = 0.8;

    an = (x-1)/x;
    s = an;
    n = 2;
    while(fabs(an) > eps)
    {
        an *= (x-1)*(n-1)/(n*x);
        s += an;
        n++;
    }
    printf("s = %lf\n", s);
    printf("ln = %lf\n", log(x));
    return 0;
}
Cuprum5 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дано действительное число x. Вычислить значение y с помощью стандартной функции и с помощью ряда с точностью 0,0001: Rifa2k Помощь студентам 3 15.01.2023 10:25
вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от Xнач до Xкон с шагом dx с точностью е Yaliguda C# (си шарп) 0 29.01.2020 20:55
Дано действительное число x, вычислить значение у Stixon Общие вопросы C/C++ 0 04.10.2016 20:55
Вычислить значение функции заданной с помощью ряда тейлора (Delphi,C#) Neostat Помощь студентам 2 11.03.2015 22:01
Вычислить значение суммы S знакочередующегося ряда с точностью е = 0,0001. spod32 Паскаль, Turbo Pascal, PascalABC.NET 3 21.03.2013 21:26