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

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

Войти
Регистрация
Восстановить пароль
 
sorento
0 / 0 / 0
Регистрация: 19.05.2013
Сообщений: 6
#1

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

29.05.2013, 17:37. Просмотров 255. Ответов 4
Метки нет (Все метки)

Программа высчитывает значение функции и значение этой функции через ряд в данной точке.
Вроде все высчитывается. Но при х>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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2013, 17:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разложение в ряд. Не правильно считает (C++):

Разложение в ряд Тейлора (неверно считает) - C++
Задача: Вычислить и вывести на экран в виде таблицы значения функции F(x) на интервале с шагом dx с точностью до Eps. Каждая строка...

Вычисление функции через разложение в ряд (Ряд Тейлора) - C++
Привет всем. Задание такого плана: Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора,...

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

Разложение в ряд. - C++
Нужна помощь.Вычисление логарифма по основанию два вещественного числа...дан ряд n(x+1)=x-x^2/2+x^3/3-.....x^n/n - разложение натурального...

Разложение в ряд - C++
Помогите пожалуйста Функция Разложение в ряд Область сходимости

Разложение в ряд S(x) и Y(x) - C++
Всем привет! Необходимо вывести на экран таблицу значений функции Y(x) и ее разложения в ряд S(x) для x изменяющихся от xn до xk с...

4
igor921
Заблокирован
29.05.2013, 19:05 #2
Это потому, что тип лонг может вместить значение до 17 факториал если не ошибаюсь. У вас передаётся значение в функцию факториал 2*k и на последних шагах считается факториал 18 и более

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

Разложение в ряд - C++
#include &lt;stdio.h&gt; #include &lt;math.h&gt; int main () { double a,b,x,k; //k - to4noe printf(&quot;BBegute x\n&quot;); scanf(&quot;%lf&quot;,&amp;x); ...

Разложение функции в ряд - C++
Найти сумму ряда с точностью до члена ряда, меньшего 0.0001 для заданного значения и сравнить эту сумму с функцией контроля. Для...

Разложение в ряд Фурье - C++
Помогите с задачкой) 7.txt находиться здесь http://www.cyberforum.ru/cpp-beginners/thread1014644.html

Разложение в ряд Тейлора - C++
Есть функция log(x); Нужно ее разложить в ряд и найти сумму для заданной точность е=0.0001 Считаю х от 0 до 6.0, для того чтобы...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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