Вычислить сумму ряда с точностью eps - C (СИ) (79229)

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

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

Помогите решить задачу: Вычислить сумму ряда (приближенное значение функции ln для |x|<1) с точностью eps. Значения x и eps вводятся с клавиатуры. Полученный результат и значение библиотечной функции ln вывести на экран. Что-то написал, но похоже неправильно и не работает(( помогите. если возможно, без pow
int main(int argc, char *argv[])
{
    double eps,i,x,S,ln,a,X,q,w;
    printf("vvedite tochnost'\n");
    scanf("%lf",&eps);
    printf("vvedite x\n");
    scanf("%lf",&x); 
    S=0;
    a=-1;
    for(i=0;S>eps;i++){
            q=pow(a,i);
            w=pow(x,i+1);
            X=q*w/(i+1);        
            S+=X;
        }
    ln=log(x+1);
    printf("%.10lf\n",S);
    printf("ln=%.10lf\n",ln);
    return 0;
}

Решение задачи: «Вычислить сумму ряда с точностью eps»

textual
Листинг программы
#include <stdio.h>
#include <math.h>
 
double myLn(double x, double eps);
 
int main()
{
    double x;
    double eps;
 
    printf("Input x: ");
    scanf("%lf", &x);
    printf("Input eps: ");
    scanf("%lf", &eps);
 
    printf("myLn(%lf, %lf) = %lf\n", x, eps, myLn(x, eps));
    printf("libLn(1 + %lf) = %lf", x, log(1.0 + x));
 
    getch();
    return 0;
}
 
double myLn(double x, double eps)
{
    double sum;
    double an;
    int i;
 
    sum = 0.0;
    an = -1.0;
    i = 0;
 
    do
    {
        an *= -x / ++i;
        sum += an;
    }
    while (fabs(an) > eps);
 
    return sum;
}

Объяснение кода листинга программы

В этом коде:

  1. Сначала определяют функцию myLn(x, eps), которая вычисляет ряд для значения x с точностью eps.
  2. В функции main() считывают значения x и eps с помощью функции scanf().
  3. Вызывают функцию myLn(x, eps) и выводят результат на экран.
  4. Также в функции main() вычисляют приближенное значение функции ln(1+x) с помощью функции log() из библиотеки math.h и выводят его на экран.
  5. В функции myLn(x, eps) используется цикл do-while для вычисления ряда с точностью eps.
  6. Значение переменной an инициализируется как -1.0, а переменная i как 0.
  7. В цикле do-while значение an обновляется как произведение -x и i, а затем прибавляется к сумме sum.
  8. Цикл продолжается, пока абсолютное значение an не станет меньше eps.
  9. В конце функция возвращает сумму ряда.

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


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

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

6   голосов , оценка 4.333 из 5