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

расчет значения e^x(x это степень) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.77
Kuanish
0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 24
05.08.2012, 21:51     расчет значения e^x(x это степень) #1
есть задача,в котором нужно рассчитать значение e^x. Проблема в том что я даже понятие не имею что это такое это экспоненто в степени x. Но, недавно написал программу которая высчитывает экспоненту по факториалу. Вот сама программа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// программа для высчитывания мат. константы - е
#include <iostream>
#include <locale.h>
 
using namespace std;
 
int main()
{   
    setlocale(LC_ALL, "RUS");
 
    int n = 1, f;
    float e = 1;
 
    while (n != 10)
    {
        
        float summa = 0;
 
        f = n;
 
        for (int a = 1; a < n; a++)
            f *= (n - a);
 
        summa = (float)1/f;
        e += summa;
        cout << e << endl;
        n++;
    }
 
    cout << "значение мат. константы е = " << e <<endl;
    
    system("pause");
    
    return 0;
}
Просьба: помогите, пожалуйста, написать программу которая высчитывает значение экспоненты в степени х. ОГРОМНАЯ просьба: "исправьте", пожалуйста, мою программу, без огромных изменений, а то боюсь что не пойму другую совсем новую программу )
p.s. во вложений сама программа.
Миниатюры
расчет значения e^x(x это степень)  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.08.2012, 21:51     расчет значения e^x(x это степень)
Посмотрите здесь:

C++ Как возвести дробное число в целую степень? К примеру 2,7 возвести в степень 2 на C++.
Расчет значения многочленов и их степень C++
C++ Расчет значения экспоненты
Расчет сумм в формуле и расчет xi должны быть оформлены в виде отдельных функций. C++
C++ как соединить b и с в число, если а это число, б это десятки перевернутого числа, с это единицы перевернутого числа вот в это строчке c=a+b,c;
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Catstail
Модератор
 Аватар для Catstail
21486 / 10239 / 1668
Регистрация: 12.02.2012
Сообщений: 17,120
05.08.2012, 22:10     расчет значения e^x(x это степень) #2
Твоя программа "не лечится"... Давай разберемся: ex - это сумма бесконечного ряда вот такого вида: 1+x+x2/2+x3/(2*3)+x4/(2*3*4)+...

n-й член этой бесконечной суммы это xn/(n!) n!=1*2*3*...*n - произведение чисел от 1 до n.

Что значит "сумма бесконечного ряда"? Абсолютно точно ее вычислить нельзя (т.к. нужно будет бесконечное время). Но если ряд сходится, то можно остановить суммирование, когда очередной член ряда не станет меньше наперед заданного числа. Это и будет результатом.

Теперь о том, как считать. Обрати внимание,что если разделить (n+1)-й член ряда на n-й, то получится
x/(n+1). Теперь правильный программный код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include "iostream.h"
#include "math.h"
 
double exp_(double x,double eps) // расчет e^x с точностью eps
{
    double s=1;  // сумма ряда
    double n=1; // нач. n
    double a=1; // первый член ряда
    while (1)     // беск. цикл
    {
        a=a*x/n;  // вычисляем следующий член ряда
        if (fabs(a) <= eps) break; // если точность достигнута - выход
        s=s+a;     // прибавим к сумме очередной член
        n++;        // увеличим n
    }
    return s; // когда вышли из цикла - вернем результат
}
 
int main(int argc, char* argv[])
{
    double x;
        cout.precision(13); // точность при печати
    cout << "Enter x "; // просим ввести x
    cin >> x;              // вводим
    cout << "exp(" << x << ")=" << exp_(x,1e-14) << endl; // вычисляем и печатаем
    return 0;
}
-=ЮрА=-
Заблокирован
Автор FAQ
05.08.2012, 22:12     расчет значения e^x(x это степень) #3
Итератор
http://www.cyberforum.ru/cgi-bin/latex.cgi?{a}_{n} = \frac{{x}^{n}}{n!}
http://www.cyberforum.ru/cgi-bin/latex.cgi?{a}_{n + 1} = \frac{{x}^{n + 1}}{(n + 1)!}
http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{{a}_{n + 1}}{{a}_{n}} =\frac{ \frac{{x}^{n + 1}}{(n + 1)!}}{ \frac{{x}^{n}}{n!}} = \frac{x}{n + 1}
Сам код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <cmath>   //Будем испоользовать для проверки наших подсчётов
#include <iomanip>
#include <iostream>
using namespace std;
 
double Texp(double x, double eps)
{
    double sum = 1;
    double an  = x;
    for(double n = 1; eps < fabs(an); n = n + 1)
    {
        sum += an;
        an  *= x/(n + 1);
    }
    return sum;
}
 
int main()
{
    double xn, xk, dx;//Пределы и шаг аргумента
    double eps;//Погрешность вычислений
    cout<<"xn = ";cin>>xn;
    cout<<"xk = ";cin>>xk;
    cout<<"dx = ";cin>>dx;
    cout<<"eps= ";cin>>eps;
    cout<<"   x\t| Texp(x)\t| cmath\n";
    for(double x = xn; x <= xk; x = x + dx)
        cout<<x<<"\t| "
            <<setprecision(6)<<Texp(x, eps)<<"\t| "
            <<setprecision(6)<<exp(x)<<endl;
    return 0;
}
Миниатюры
расчет значения e^x(x это степень)  
-=ЮрА=-
Заблокирован
Автор FAQ
05.08.2012, 22:14     расчет значения e^x(x это степень) #4
Kuanish, чтобы было понятно о чём речь почитай этот раздел
http://www.cyberforum.ru/faq/thread4...ml#post2452211
Yandex
Объявления
05.08.2012, 22:14     расчет значения e^x(x это степень)
Ответ Создать тему
Опции темы

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