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

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

Войти
Регистрация
Восстановить пароль
 
Bull
Сообщений: n/a
#1

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

13.11.2012, 04:19. Просмотров 1105. Ответов 0
Метки нет (Все метки)

Помогите, пожалуйста, ничего не понимаю, как факториал рекурсивно считать понял, а 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++):

Рекурсия. Найти значение функции через разложение в ряд Тейлора - C++
Собственно, сабж. Есть функция cos^2(x), которую я хочу разложить в ряд Тейлора. Вот отрывок кода с функцией: double func(double...

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

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

Разложение функции в ряд Тейлора - C++
Дано вещественное число X(|X|&lt;1) и целое число N(N&gt;0). Найти значение выражения: 1 + x/2 - (1*x^3)/(2*3) + (1*3*x^5)/(2*4*5) + ... +...

Разложение функции в ряд Тейлора - C++
Дано разложение функции y(x) в ряд Тейлора. Составить программу, вычисляющую для значения x и точности Eps: - точное значение функции...

Дано разложение функции в ряд Тейлора. Вычислить для значения x и точности Eps точное значение функции - C++
Дано разложение функции y(x) в ряд Тейлора. Составить программу, вычисляющую для значения x и точности Eps: • точное значение функции...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2012, 04:19
Привет! Вот еще темы с ответами:

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

Вычислить значение функции exp(x) с точностью 0.001 (разложение в ряд Тейлора) - C++
вычислить значение функции exp(x) с точностью 0.001, разложив функцию в ряд Тейлора где ошибка не подскажите? вычисляет не верно.......

Как вычислить значение функции используя разложение cos в ряд Тейлора??? - C++
Вычислить значение функции y, разложив cos(x) в ряд Тейлора. Аргумент х изменяется от -2 до 2 с шагом 0,5. Определить погрешность. ...

разложение функции y (x) в ряд Тейлора. Составить программу, вычисляющую для значения x и точности Eps - C++
Б) Дано разложение функции y(x) в ряд Тейлора. Составить программу, вычисляющую для значения x и точности Eps: * точное значение...


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

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

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