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

Разложение в ряд. Не правильно считает - C++

Восстановить пароль Регистрация
 
sorento
0 / 0 / 0
Регистрация: 19.05.2013
Сообщений: 6
29.05.2013, 17:37     Разложение в ряд. Не правильно считает #1
Программа высчитывает значение функции и значение этой функции через ряд в данной точке.
Вроде все высчитывается. Но при х>6 ну или где то около этого начинают огромные числа выводится.
Вводил большую-маленькую точность. Уменьшал шаг. Все равно получается не то.
Посмотрите пожалуйста в чем ошибка.



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
// asd.cpp : main project file.
 
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
#define pi 3.1415
 
long faktorial(int n) // ------------------------
{
int i;
long p=1; // -------------------------------
for(i=1;i<=n;i++)
p*=i;
return p;
}
int main(){
double x0 = 0, xk = 6, Dx = 1, y_0, y_1,toch=0.1;
int  k, sdvig = 0;
double max, a;
double j, y;
for(j=x0; j<=xk; j+=0.1)
{
    y=cos(j);
    y_1=0.0;
    k=0.0;
     do   
    {
        if(k>10)
            break;
        y_0=pow(-1.0, k)*pow(j, 2*k)/faktorial(2*k);
        y_1+=y_0;
        k++; 
    }while(fabs(y_1-y)>=toch);
    printf("%f  %f  %i\n", y, y_1, k);
}
 
 
getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2013, 17:37     Разложение в ряд. Не правильно считает
Посмотрите здесь:

Разложение в ряд. C++
Разложение в ряд C++
C++ Разложение функции в ряд
Разложение в ряд C++
Разложение в ряд S(x) и Y(x) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igor921
Заблокирован
29.05.2013, 19:05     Разложение в ряд. Не правильно считает #2
Это потому, что тип лонг может вместить значение до 17 факториал если не ошибаюсь. У вас передаётся значение в функцию факториал 2*k и на последних шагах считается факториал 18 и более

Добавлено через 2 минуты
И вообще, какую функцию в ряд разлаживаете? Что-то уж слишком замудро
sorento
0 / 0 / 0
Регистрация: 19.05.2013
Сообщений: 6
29.05.2013, 19:44  [ТС]     Разложение в ряд. Не правильно считает #3
cos(x+a) , а в принципе можно не учитывать.
sorento
0 / 0 / 0
Регистрация: 19.05.2013
Сообщений: 6
29.05.2013, 19:47  [ТС]     Разложение в ряд. Не правильно считает #4
да и что толку. вот я ввел ограничение if(k>8) break;
так он все равно считает неправильно. выдает большие числа.
Миниатюры
Разложение в ряд. Не правильно считает  
sorento
0 / 0 / 0
Регистрация: 19.05.2013
Сообщений: 6
29.05.2013, 20:16  [ТС]     Разложение в ряд. Не правильно считает #5
поменял тип. но у меня теперь Winapi программа не запускается. точнее виснет...
Yandex
Объявления
29.05.2013, 20:16     Разложение в ряд. Не правильно считает
Ответ Создать тему
Опции темы

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