Вычислить сумму ряда с точностью 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;
- }
Объяснение кода листинга программы
В этом коде:
- Сначала определяют функцию myLn(x, eps), которая вычисляет ряд для значения x с точностью eps.
- В функции main() считывают значения x и eps с помощью функции scanf().
- Вызывают функцию myLn(x, eps) и выводят результат на экран.
- Также в функции main() вычисляют приближенное значение функции ln(1+x) с помощью функции log() из библиотеки math.h и выводят его на экран.
- В функции myLn(x, eps) используется цикл do-while для вычисления ряда с точностью eps.
- Значение переменной an инициализируется как -1.0, а переменная i как 0.
- В цикле do-while значение an обновляется как произведение -x и i, а затем прибавляется к сумме sum.
- Цикл продолжается, пока абсолютное значение an не станет меньше eps.
- В конце функция возвращает сумму ряда.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д