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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2014, 01:56   #1
Marily
 
Регистрация: 10.01.2014
Сообщений: 9
По умолчанию Ряд Тейлора, С++

Помогите найти ошибку
Для заданного целого x используя свойство разложения функции е^-x
на ряд Тейлора найти значение у с заданной точностью

Код:
#include "stdafx.h"
#include <math.h>
#include <stdio.h>
#include <iostream>
using namespace std;

int Fact(int);
float Esp(int, float);
float Y(int, float);

int _tmain(int argc, _TCHAR* argv[])
{int x;
float e;
	cout<<"x="; cin>>x;
	cout<<"e="; cin>>e;
	cout<<"y="<<  Y(x,e);
	system("pause");
	
}

int Fact(int n)
{
	int i, F;
	if (n==0||n==1) F=1;
    else {for (i=1, F=1; i<=n; i++)
		F=F*i;}
    return F;
}

float Esp(int x, float e)
{
	float Rank=1;
	int i=1, I;
	do {I=Fact(i); 
		Rank=Rank+pow(-1.0,i)*( pow((float) x,i)/I);
		i++;
	}
	while ( (pow((float) x,i)/I)>e);
       return Rank;
}

float Y(int x, float e)
{float y;
	if (x>=0 && x<=2)
		y=Esp(x,e)+Esp(2*x,e);
    else y=1/(Esp(x+5,e))-Esp(x+2, e);
	return y;
}
Marily вне форума Ответить с цитированием
Старый 12.01.2014, 02:44   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Кстати, факториал всего от 13:
13! = 6227020800
Уже не влезет в int.
Так что лучше без факториалов, а вычислять последующее слагаемое через предыдущее.
Код:
#include <iostream>
#include <math.h>
using namespace std;
float expTaylor(int x,float e)
{   float s=0,t=1;
     int i=1;
     while(fabs(t)>e)
	{ s+=t;
	  t=-x*t/i;	
	  i++;  } 
     return s;    }
	
int main()
{   int x;
     float e;
     cout<<"x="; cin>>x;
     cout<<"e="; cin>>e; 
     cout << expTaylor(x,e);
     return 0;    }

Последний раз редактировалось type_Oleg; 12.01.2014 в 03:22.
type_Oleg вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ряд тейлора. boomboom Общие вопросы C/C++ 7 19.04.2013 15:09
вычислить функцию с по-щью разложения в ряд.(Ряд Тейлора) feelstor Помощь студентам 2 26.12.2011 03:44
ряд тейлора likol07 Паскаль, Turbo Pascal, PascalABC.NET 1 07.12.2011 19:56
Ряд Тейлора PROkaZZZniK Помощь студентам 2 24.11.2011 09:51
Ряд Тейлора siriusz Общие вопросы C/C++ 6 06.02.2009 20:26