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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.77
Kuanish
0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 24
#1

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

05.08.2012, 21:51. Просмотров 3882. Ответов 3
Метки нет (Все метки)

есть задача,в котором нужно рассчитать значение 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 это степень)
Посмотрите здесь:

this это адресс объекта, а *this это сам объект. я всё правельно понял? C++
C++ Как возвести дробное число в целую степень? К примеру 2,7 возвести в степень 2 на C++.
Расчет значения многочленов и их степень C++
C++ Расчет значения экспоненты
Расчет сумм в формуле и расчет xi должны быть оформлены в виде отдельных функций. C++
C++ как соединить b и с в число, если а это число, б это десятки перевернутого числа, с это единицы перевернутого числа вот в это строчке c=a+b,c;
Зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может больше 4 байт весить? C++
Факториал! Для кого-то это легко, а кто-то вообще это не знает! C++
Даны три действительные числа. Возвести в квадрат те из них, значения которых неотрицательны, и в четвертую степень - отрицательные C++
C++ Написать программу с функцией, вычисляющей целую степень дробного числа. Учесть,что степень может быть положительной, отрицательной, нулевой
C++ Извлечь значения из std::vector<char>, трактуя каждый символ, как разряд числа, сформировать это число
C++ Расчет значения функции по введенному значению и графику

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Catstail
Модератор
 Аватар для Catstail
21778 / 10502 / 1704
Регистрация: 12.02.2012
Сообщений: 17,502
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 это степень)
Ответ Создать тему
Опции темы

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