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

Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.91
faLek
99 / 100 / 7
Регистрация: 06.03.2012
Сообщений: 478
10.01.2013, 21:18     Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора #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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include "stdafx.h"
#include <clocale>
#include <cmath>
#include <iostream>
 
 
using namespace std;
 
int fact (float n);
 
int main()
 
{
    setlocale(LC_ALL,"Russian");
 
    const int Xn = -5,Xk = 5;
        double dx,eps,x,n = 0,sum,asum = 1;
 
    cout<<"Введите шаг dx: \n";
        cin>>dx;
    cout<<"Введите точность eps: \n";
        cin>>eps;
    
       for (x = Xn;x<Xk;x += dx)
       {
         for(sum = 1 ;fabs(sum)>eps;n++)
        {
            asum = ((pow(-1,n)) * (pow(x,n)))/fact(n);
            sum += asum;
      
         }
 
         cout<<"Шаг: "<<x<<";Сумма: "<<sum<<";Аргумент: "<<exp(-x)<<";Колличество "<<n<<endl;
       };
    
    system("pause");
 return 0;
}
 
 
int fact(float n)
{
    double f = 1;
        
        for (float i = 2;i<n;i++)
        {
            f *=i;
        }
    return f;
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2013, 21:18     Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора
Посмотрите здесь:

C++ Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора
вычислить и вывести на экран в виде таблицы значения функции,заданной с помощью ряда Тейлора C++
C++ Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда тейлора
C++ Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора
C++ Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
10.01.2013, 21:30     Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора #2
факториал нерационально считается. Что за задача то?
faLek
99 / 100 / 7
Регистрация: 06.03.2012
Сообщений: 478
10.01.2013, 21:41  [ТС]     Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора #3
Сейчас,почему не рационально?
Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от XНАЧ до xкон с шагом dx с точностью ε. Каждая строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряд

Миниатюры
Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора  
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
10.01.2013, 22:33     Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора #4
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
36
37
38
39
40
41
42
#include "stdafx.h"
#include "iostream"
#include "cmath"
using namespace std;
 
unsigned long factorial(int n)
{
    unsigned long f = 1;
 
    for (int i=2; i<=n; i++)
        f = f * i;
 
    return f;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
    
    const double xn=-5, xk=+5;
    double eps, dx, x;
    double sum=0, argument;
    int n;
 
    cout << "Введите точность eps: ";  cin >> eps;
    cout << "Введите шаг dx:       ";  cin >> dx;
 
    n = 0;
    x = xn;
    while ( (argument = (pow(-1.0, n) * pow(x,n)) / factorial(n)) >= eps )
    {
        sum = sum + argument;
 
        cout << "Шаг: " << x << "; Сумма: " << sum << "; Аргумент: " << argument << "; Количество: " << n << endl;
 
        x += dx;
        n++;
    }
 
    system("pause");
    return 0;
}
faLek
99 / 100 / 7
Регистрация: 06.03.2012
Сообщений: 478
10.01.2013, 22:37  [ТС]     Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора #5
v.a.l.i.d, с факториалом понятно,вы можете рассказать в чём косяк в моей проге?
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
10.01.2013, 22:43     Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора #6
Цитата Сообщение от faLek Посмотреть сообщение
с факториалом понятно,вы можете рассказать в чём косяк в моей проге?
Да я даже не знаю. тут в этой строчке косяк
Цитата Сообщение от faLek Посмотреть сообщение
asum = ((pow(-1,n)) * (pow(x,n)))/fact(n);
В функцию pow надо аргументы double передавать

Добавлено через 1 минуту
Насчет своей программы не уверен. Мне кажется что я неправильно ее сделал
faLek
99 / 100 / 7
Регистрация: 06.03.2012
Сообщений: 478
10.01.2013, 22:45  [ТС]     Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора #7
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include "stdafx.h"
#include <clocale>
#include <cmath>
#include <iostream>
 
 
using namespace std;
 
unsigned long fact (int n);
 
int main()
 
{
    setlocale(LC_ALL,"Russian");
 
    const int Xn = -5,Xk = 5;
        double dx,eps,x,n = 0,sum,asum = 1;
 
    cout<<"Введите шаг dx: \n";
        cin>>dx;
    cout<<"Введите точность eps: \n";
        cin>>eps;
    
       for (x = Xn,sum =1;x<Xk && fabs(sum)>eps;x += dx,n++)
       {
         
        
            asum = ((pow(-1,n)) * (pow(x,n)))/fact(n);
            sum += asum;
      
         
 
         cout<<"Шаг: "<<x<<";Сумма: "<<sum<<";Аргумент: "<<exp(-x)<<";Колличество "<<n<<endl;
       };
    
    system("pause");
 return 0;
}
 
 
unsigned long fact(int n)
{
    unsigned long f = 1;
        
        for (int i = 2;i<n;i++)
        {
            f *=i;
        }
    return f;
 
}
v.a.l.i.d,нет аргументы не нужно передавать,получается у меня цикл считал не так=),а вот факториал ,почему int тип он плохо считатет,можете объяснить?
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
10.01.2013, 22:51     Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора #8
Факториал очень быстро возрастает при увеличении чисел
Например

20! = 2432902008176640000 (не влезит в int)

Вот поэтому int он плохо считает)
faLek
99 / 100 / 7
Регистрация: 06.03.2012
Сообщений: 478
10.01.2013, 23:01  [ТС]     Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора #9
v.a.l.i.d, а точно же ,диапазон,спасибо=)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2013, 23:55     Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора
Еще ссылки по теме:

Вычислить и вывести на экран в виде таблицы значения функции заданной с помощью ряда Тейлора C++
Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора C++
C++ Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора

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

Или воспользуйтесь поиском по форуму:
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
10.01.2013, 23:55     Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора #10
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
#include "stdafx.h"
#include <clocale>
#include <iostream>
using namespace std;
int main(){
    setlocale(LC_ALL,"Russian");
    const int Xn = -5,Xk = 5;
    double dx,eps,x,
              n,
              sum,
              asum;
    cout<<"Введите шаг dx: \n";
        cin>>dx;
    cout<<"Введите точность eps: \n";
        cin>>eps; 
       for (x = Xn;x<Xk;x += dx){
         for(asum = 1, sum=0, n = 1; fabs(asum)>eps;n++){
            asum = -asum *x/n;
            sum += asum;
         }
         cout<<"Шаг: "<<x<<";Сумма: "<<sum<<";Аргумент: "<<exp(-x)<<";Колличество "<<n<<endl;
       }
    system("pause");
 return 0;
}
Yandex
Объявления
10.01.2013, 23:55     Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора
Ответ Создать тему
Опции темы

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