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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2010, 10:53   #1
JustImba
Новичок
Джуниор
 
Регистрация: 25.12.2010
Сообщений: 8
По умолчанию Сумма ряда

Ребят помогите доделать код программы, уже незнаю как это реализовать:
Вычислить значение функции ln(1+x)=x-(x^2)/2+(x^3)/3-(x^4)/4+... в точке x=x0. Сравнить полученное значение со значением соответствующей стандартной функции.
Код:
#include <conio.h>
#include <math.h>
#include <stdio.h>

void main()
{
	float s=0,x,i,j,z,y,f=1;
	printf ("vvedite x ");
	scanf ("%f",&x);
	y=x;
	z=log(1+y);
	printf ("      stand funk:              nestandart:\n");
	for (i=1,j=x,a=1;(s)<0.01;j*=j,i++,a=-a)
	{f=a*j/i;
	s+=f;
	printf ("\t%f           \t%f\n",z,s);}
    getch();
}

Последний раз редактировалось Stilet; 26.12.2010 в 11:41.
JustImba вне форума Ответить с цитированием
Старый 26.12.2010, 12:08   #2
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

А зачем Вы само значение ф-ии с точностью сравниваете?.. И j у Вас неправильно вычисляется. Быстрее растёт, чем нужно...
Vago вне форума Ответить с цитированием
Старый 26.12.2010, 13:43   #3
JustImba
Новичок
Джуниор
 
Регистрация: 25.12.2010
Сообщений: 8
По умолчанию

Да тут надо выход из цикла сделать при условии, если x-(x^2)/2 <0.01 или
(x^3)/3-(x^4)/4 <0.01 итд, то есть суммировать пока разность таких 2 членов не станет очень маленькой, вот не могу построить такой цикл
Вот и прошу помочи.
JustImba вне форума Ответить с цитированием
Старый 26.12.2010, 14:16   #4
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Цитата:
Сообщение от JustImba Посмотреть сообщение
суммировать пока разность таких 2 членов не станет очень маленькой
МОДУЛЬ разности.
Код:
#include <math.h>
#include <stdio.h>

void main() {

   double   x ,
            chlen ,           // Член ряда
            f ,               // Значение ф-ии
            num ,             // Числитель в выражении для члена ряда
            denom = 1.,       // Знаменатель в выражении для члена ряда
            eps = 0.001 ;     // Точность вычислений

   x = -.75 ;                 // Эдесь сделать ввод вместо присваивания!
   num = x ;
   f = num ;

   do {
      num = -num * x ;
      denom = denom + 1. ;
      chlen = num / denom ;
      f += chlen ;
//p      printf( "%.4g %.4g %.4g\n", chlen, denom, f ) ;
   } while ( fabs( chlen ) >= eps ) ;

   printf ("%.4g %.4g\n", f, log( 1. + x ) ) ;

}
Ввод уж сами сделайте. Ну и проверку принадлежности x интервалу сходимости ряда, конечно, обязательно добавьте...
Vago вне форума Ответить с цитированием
Старый 26.12.2010, 14:29   #5
JustImba
Новичок
Джуниор
 
Регистрация: 25.12.2010
Сообщений: 8
По умолчанию

Огромное спасибо!
JustImba вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сумма ряда Sova123456 Помощь студентам 8 11.06.2010 17:10
Сумма ряда alex_triton Общие вопросы C/C++ 6 11.06.2010 14:09
сумма ряда gector_sm Помощь студентам 0 30.05.2010 22:01
Сумма ряда eKStaSy Помощь студентам 4 25.10.2009 17:41