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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2010, 23:56   #1
hasana
Пользователь
 
Регистрация: 09.05.2010
Сообщений: 43
Восклицание функции в ряду тейлора

помогите пожалуйста понять, почему у меня в программе не высчитывается натуральный логарифм.
Код:
#include<stdio.h> //библиотека ввода-вывода
#include<conio.h>
#include<math.h> // математические функции

float     y,      	   //выражение по тейлору
         st,          //стандартная функция ln()
         x,           //аргумент функции
         xn, xk,      //начальное, конечное значение аргумента
         xs, err,     //шаг изменения аргумента и ошибка
		 t;           //точность счёта
bool flag=true;       // флаг,для определения возможности
                      //расчёта функции
double ln(float x)
{ //ln(x)= (x-1)-(x-1)^2/2+(x-1)^3/3-(x-1)^4/4+...
float sum=0;                    //сумма членов ряда
int i=1;                        //степень элемента ряду
float member=1;                 //текущий элемент ряда
while (member<t)			    //пока текущий элемент превышает точность потоков
{
	member=pow((x-1),i)/i; //текущий элемент за формулою тейлора
	if (i%2==0) member*=-1;
	sum+=member;						//накопления суммы
	i++;
}		//переход до нового элемента ряду
return sum; //возвращаем значение экспоненты
}
///////////////////   основная функция  //////////////////////
int main()
{
puts("lab4: calculation ln function");
printf("\n input xn, xk, xs (-2 4 0.5)\n");
scanf("%f%f%f", &xn, &xk, &xs);
printf("\n input t \n");
scanf("%f", &t);
puts("===================================================");
printf("     x             y          standart        error \n");
puts("===================================================");
for ( x=xn;x<=xk;x+=xs) //цикл перебора значений аргумента функции
{ if (x>0&&x<2) 				//проверяем условие выбора
   {                                 
     y=ln(x)/ln(x-2);	   //определение функции
                                 // по формуле Тейлора
       st=(float)log(x)/log(x-2);	    //определение функции 
                                   //по стандартной формуле
       err=fabs(st - y);		    //разность между точным и
                                  //наближенными значениями
  }
else if (x>=2&&x<=4)
     { 
       y=ln(x/2);
       st=log(x/2);
       err=fabs(st-y);
}
else if (x<0)	flag =false;     // функция не определена
if ( flag)			  //если функция определена, то вывести её значение
                               
	 printf ("  %f     %f     %f      %f \n", x, y, st, err);
	 else    printf ("  %f     not define    \n", x );
               	             //функция не определена
  }
getch();
}
hasana вне форума Ответить с цитированием
Старый 07.12.2010, 00:57   #2
hasana
Пользователь
 
Регистрация: 09.05.2010
Сообщений: 43
По умолчанию

никаких идей?(((
hasana вне форума Ответить с цитированием
Старый 07.12.2010, 09:16   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
никаких идей?(((
У тебя что отладчик за неуплату отключили?
Цитата:
while (member<t) //пока текущий элемент превышает точность потоков
Не понял?? Пишешь насчет превышения а ставишь в условии <
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычисление функции с помощью ряда Тейлора Wast Общие вопросы C/C++ 6 25.12.2011 19:42
Разложение функции в ряд Тейлора (Pascal) berdeman Паскаль, Turbo Pascal, PascalABC.NET 3 04.05.2010 21:03
Разложение функции, Ряд Тейлора. Andrag Помощь студентам 6 22.01.2010 14:41
Одномерный массивы, разложение функции в ряд Тейлора...... lTIGRAl Помощь студентам 0 28.12.2009 15:30