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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 37, средняя оценка - 4.62
_nik_
0 / 0 / 0
Регистрация: 10.12.2010
Сообщений: 4
#1

рекуррентная формула - C++

10.12.2010, 21:16. Просмотров 5283. Ответов 6
Метки нет (Все метки)

Здравствуйте.
Необходимо Вычислить и вывести на экран в виде таблицы значение функции, заданной с помощью ряда Тейлора, на интервале от Хнач до Хкон с шагом dX с точностью ε. Таблицу снабдить заголовком и шапкой. Каждая строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряда. Для вычисления последующего члена ряда использовать рекуррентную формулу.


Вот, что у меня получилось:
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
68
69
70
71
//Подключение библиотеки стандартного ввода и вывода
#include<stdio.h>
//Подключение библиотеки математических функций
#include<math.h>
 
int main()
{
    //Объявление и инициализация
    //переменных программы
    double e, eps=0.0001, x, sum = 0, fact=1;
    int j, i, xk, xn, dx, count=0;
    bool flag = false;
 
    do
    {
        //Приглашение к вводу x нач
        printf("xn = ");
        //Ввод значения 
        scanf("%d",&xn);
 
        //Приглашение к вводу x кон
        printf("xk = ");
        //Ввод значения
        scanf("%d",&xk);
 
        if(xn > xk)
        {
            printf("xn doljno bit' < xk!\n");
        }else
        {
            flag = true;
        }
    }while (!flag);
 
    //Приглашение к вводу dx
    printf("dx = ");
    //Ввод значения
    scanf("%d",&dx);
 
    //Приглашение к вводу x
    printf("x = ");
    //Ввод значения
    scanf("%lf",&x);
 
    //Выводим шапку на экран
    printf("+-----------------------------------------------------------------------+\n");
    printf("| znachenie argumenta\t| znachenie funkcii\t| kol-vo prosumm el-tov\t|\n");
    printf("+-----------------------------------------------------------------------+\n");
 
    //Рассчитываем значения функции
    for(i = xn; i <= xk > eps; i+=dx)
    {
        fact = 1;
        //Цикл вычисления значения факториала числа
        for(j=2;j<=i;j++) 
            fact*=(double)j;
 
        e = (pow((-1), i) * pow(x, 2*i)) / fact;
        
        sum += e;
        count++;
 
        printf("|\t   %d \t\t|\t%lf \t|\t  %d  \t\t|\n", i, e, count);
 
    }
 
    printf("+-----------------------------------------------------------------------+\n\n");
    printf("e^-%.1lf^2 = %.3lf\n", x, sum);
 
    return 0;
}
а вот, что не понравилось преподавателю :
Для вычисления последующего члена ряда использовать рекуррентную формулу. С точностью ε(не учтена в коде)

помогите пожалуйста.
Миниатюры
рекуррентная формула  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2010, 21:16     рекуррентная формула
Посмотрите здесь:

Рекуррентная формула - C++
Составьте, пожалуйста, рекуррентную формулу:

рекуррентная формула - C++
Здравствуйте. Необходимо Вычислить значение функции, на интервале от Хнач до Хкон с шагом dX с точностью ε. Для вычисления последующего...

Рекуррентная формула - C++
Составить программу суммирования начальных членов бесконечного ряда, пока абсолютная величина члена ряда не станет меньше 0,0001. Вычислить...

Рекуррентная формула - C++
Помогите пожалуйста написать рекуррентную формулу для программы, желательно с пояснениями.

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

Рекуррентная формула - C++
Задачка: Дано начальное значение a0=2 и рекуррентная формула {a}_{i}=(2+({a}_{i-1})^2)/2*{a}_{i-1} . Найти номер первого элемента,...

Рекуррентная формула - C++
Добрый вечер. Нужна помощь в нахождении рекуррентной формулы Вот \sum_{k=2}^{\infty}(-1)^k\;\frac{cos\, kx}{k^2-1}

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
_nik_
0 / 0 / 0
Регистрация: 10.12.2010
Сообщений: 4
11.12.2010, 09:58  [ТС]     рекуррентная формула #2
подскажите пожалуйста, что делать с точностью, куда её вставить если ряд вычисляется на интервале
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
11.12.2010, 10:01     рекуррентная формула #3
Точность должна быть в условии while, т.е. цикл выполняется пока не достигнута заданая точность.
_nik_
0 / 0 / 0
Регистрация: 10.12.2010
Сообщений: 4
11.12.2010, 10:21  [ТС]     рекуррентная формула #4
это я понимаю, если я вставляю while внутрь цикла for программа зацикливается потому что не изменяется значение функции
моя проблема в том, что я не могу совместить интервал с точностью
kazak
3033 / 2354 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
11.12.2010, 10:40     рекуррентная формула #5
Цитата Сообщение от _nik_ Посмотреть сообщение
Для вычисления последующего члена ряда использовать рекуррентную формулу.
C
1
2
3
4
5
6
7
8
9
10
11
double sum, iter, x; /*sum - сумма ряд, iter - член ряда, x - аргумент функции*/
int n;/*номер вычисляемого члена ряда*/
/*Вычисление функции*/
sum = iter = 1.;
n = 1;
do
{
   iter *= (-1.)*x*x/n;
   sum += iter;
   n++;
}while (fabs(iter) > eps);
Аналитическая формула n-го члена
http://www.cyberforum.ru/cgi-bin/latex.cgi?A_n=\frac {{(-1)}^n\,x^{2n}}{n!}
Рекурентная формула
http://www.cyberforum.ru/cgi-bin/latex.cgi?A_n =\begin{cases}<br />
 1&, \,n=0 \\<br />
 A_{n-1}\,\cdot\,(-\frac{x^2}{n})&, \,n \g 0<br />
\end{cases}

Добавлено через 3 минуты
Цитата Сообщение от _nik_ Посмотреть сообщение
for(i = xn; i <= xk > eps; i+=dx)
Интересное условие)
_nik_
0 / 0 / 0
Регистрация: 10.12.2010
Сообщений: 4
11.12.2010, 10:46  [ТС]     рекуррентная формула #6
Добавлено через 3 минуты

Интересное условие)
это я очепятка
for(i = xn; i <= xk; i+=dx)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2010, 10:55     рекуррентная формула
Еще ссылки по теме:

Рекуррентная формула - C++
Помогите с выводом рекуррентной формулы, пожалуйста. Значения m, Y0 , Y1, Y2 вводятся с клавиатуры, а Yi вычисляется по формуле Yi=...

Рекуррентная формула и итерационный цикл - C++
Написать программу, которая вычисляет частичную сумму ряда \sum_{k=1}^{besk}\ln \left(\left( k\times k\pm 3\right)\div k\times k \right)...

Рекуррентная формула - найти ошибку - C++
Помогите составить формулу или найти ошибку! #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;cmath&gt; using namespace std; ...

Формула на с++ - C++
Как записать эту формулу для расчёта на с++ (x-1)корень из x делённо на корень 4x в 3 степени

Формула! - C++
Помогите написать формулу , не пойму как , просто новичек =) w=|cosx-cosy|^(1+2sin^2y)(1+z+z^2/2+z^3/3+z^4/3) моя запись этой...


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

Или воспользуйтесь поиском по форуму:
kazak
3033 / 2354 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
11.12.2010, 10:55     рекуррентная формула #7
Цитата Сообщение от _nik_ Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
for(i = xn; i <= xk > eps; i+=dx)
{
   fact = 1;
   //Цикл вычисления значения факториала числа
   for(j=2;j<=i;j++) 
      fact*=(double)j;
   e = (pow((-1), i) * pow(x, 2*i)) / fact;
   sum += e;
   count++;
   printf("|\t %d \t\t|\t%lf \t|\t %d \t\t|\n", i, e, count);
}
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//Рассчитываем значения функции
for(i = xn; i <= xk; i+=dx)
{
   x = (double)i;
   sum = iter = 1.;
   n = 1;
   do
   {
      iter *= (-1.)*x*x/n;
      sum += iter;
      n++;
   }while (fabs(iter) > eps);
 
    printf("|\t   %lf \t\t|\t%lf \t|\t  %d  \t\t|\n", x, sum, n);
 }
Yandex
Объявления
11.12.2010, 10:55     рекуррентная формула
Ответ Создать тему
Опции темы

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