Форум программистов, компьютерный форум CyberForum.ru

ВЫчислить exp(-x) разложением в ряд - C++

Восстановить пароль Регистрация
 
artur963
0 / 0 / 0
Регистрация: 22.03.2013
Сообщений: 39
25.03.2014, 15:25     ВЫчислить exp(-x) разложением в ряд #1
№1 Дано натуральное число N. Вычислить
e^(-x)=∑_(n=0)^∞▒(〖(-1)〗^n x^n)/n!=1-x+x^2/2!-x^3/3!+x^4/4!-…. |x|<IFN

№2 Вычмслить формулу по заданию №1 с точностью до 0.001, определив количество проходов N.
Миниатюры
ВЫчислить exp(-x) разложением в ряд  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5946 / 5551 / 1784
Регистрация: 18.12.2011
Сообщений: 14,178
Завершенные тесты: 1
25.03.2014, 15:51     ВЫчислить exp(-x) разложением в ряд #2
См. например
е в степени x
aLarman
636 / 557 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
25.03.2014, 16:02     ВЫчислить exp(-x) разложением в ряд #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int N;
double x;
cin >> N;
cin >> x;
int sign = -1;
double ex = 1;
int i = 1;
int fact = 1;
double xi = x;
while(i <= N)
{
 ex += sign*xi / fact;;
 sign *=-1;
 xi*=x;
 fact*=(++i);
}
cout << "e^"<<x<<" = " << ex<<endl;
Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int N;
double x;
cin >> N;
cin >> x;
int sign = -1;
double e = 1;
double ex = 1;
int i = 1;
int fact = 1;
double xi = x;
while(e > 0.001)
{
 e = sign*xi / fact;
 ex +=e;
 sign *=-1;
 xi*=x;
 fact*=(++i);
}
cout << "N = " << i << endl;
cout << "e^"<<x<<" = " << ex<<endl;
zss
Модератор
Эксперт С++
 Аватар для zss
5946 / 5551 / 1784
Регистрация: 18.12.2011
Сообщений: 14,178
Завершенные тесты: 1
25.03.2014, 16:04     ВЫчислить exp(-x) разложением в ряд #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
double x,an,s,eps;
cin>>x;
eps=1e-10;
int i = 0;
s=0;
an=1;
while(fabs(an)>eps)
{
     s+=an;
     i++;
     an*=-x/i;
}
cout <<s<<" "<<exp(-x)<<endl;
artur963
0 / 0 / 0
Регистрация: 22.03.2013
Сообщений: 39
25.03.2014, 16:10  [ТС]     ВЫчислить exp(-x) разложением в ряд #5
Неработает
zss
Модератор
Эксперт С++
 Аватар для zss
5946 / 5551 / 1784
Регистрация: 18.12.2011
Сообщений: 14,178
Завершенные тесты: 1
25.03.2014, 16:20     ВЫчислить exp(-x) разложением в ряд #6
Что тут может не работать! Вот полный код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <cmath> 
using namespace std;
int main()
{
double x,an,s,eps;
cout<<"x=?";
cin>>x;
eps=1e-10;
int i = 0;
s=0;
an=1;
while(fabs(an)>eps)
{
     s+=an;
     i++;
     an*=-x/i;
}
cout <<s<<" "<<exp(-x)<<endl;
system("pause");
return 0;
}
Yandex
Объявления
25.03.2014, 16:20     ВЫчислить exp(-x) разложением в ряд
Ответ Создать тему
Опции темы

Текущее время: 00:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru