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

Рекурсия, разложение в ряд Тейлора функции cosx не работает - C++

Восстановить пароль Регистрация
 
Bull
Сообщений: n/a
13.11.2012, 04:19     Рекурсия, разложение в ряд Тейлора функции cosx не работает #1
Помогите, пожалуйста, ничего не понимаю, как факториал рекурсивно считать понял, а cos x через ряд Тейлора рекурсивно не доходит. Полазил по форуму, но ни работающего кода, ни доступных объяснений не нашёл. Прошло 2 месяца учёбы, я всё рекурсию написать не могу. Скоро зачёт, ай нид хелп!
Вот что-то накидал, но, как мне кажется, это бред, выдаёт чёрти что, знак второй и последующий разы менять не хочет, может дело в while?

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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
// Recurse.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <conio.h>
#include <math.h>
#include <locale.h>
#include <windows.h>
#include <string.h>
 
extern float END = 0.000001;
 
double teylor();
void logo ();
float inputvalue();
void manager();
float x, result, coef, coefbef;
float n, VAL, LASTVAL;
float z, i;
float summ;
float d;
 
int main()
{
    setlocale( LC_ALL,"Russian" );
    logo();
    inputvalue();
    manager();
}
 
void logo ()
{
    printf("Рекурсия. Ряд Тейлора. Косинус.\n");
}
float inputvalue()
{
    printf("Введите икс, от которого будет посчитан косинус.\n");
    scanf("%f", &x);
    return x;
}
float teylor(float x, float summ, float n)
 {
    
    n=1;
    
    d=(-1);
    summ=1;
    z=(x*x)/(n*(n+1));
    LASTVAL=1;
    VAL=LASTVAL*z;
    while ((fabsf(VAL-LASTVAL))>END)
        VAL=LASTVAL;
        coefbef=coef;
        summ=summ+coef*n;
        n=n+2;
        
        coef=z*d*(x*x)/((n)*(n+1));
        VAL=LASTVAL*z;
        return teylor(x, summ+coef*z, n+2);
    
}
 
 void manager ()
 {
    result=teylor(x, summ, n+2);
    printf("%f %f %f", VAL, LASTVAL, result);
 }
Буду очень признателен тем, кто поможет!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2012, 04:19     Рекурсия, разложение в ряд Тейлора функции cosx не работает
Посмотрите здесь:

C++ Как вычислить значение функции используя разложение cos в ряд Тейлора???
Дано разложение функции y (x) в ряд Тейлора. Составить программу, вычисляющую для значения x и точности Eps C++
Разложение функции в ряд Тейлора C++
C++ Вычислить и вывести значение функции через разложение в ряд Тейлора
Рекурсия. Найти значение функции через разложение в ряд Тейлора C++
Разложение функции в ряд Тейлора C++
C++ Разложение функции в ряд Тейлора
C++ Ошибка "stack overflow". Разложение функции в ряд Тейлора

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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