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

Ряд Тэйлора. Где ошибка? - C++

Восстановить пароль Регистрация
 
nvans
Сообщений: n/a
06.05.2012, 09:10     Ряд Тэйлора. Где ошибка? #1
Вычислить значения функции из задания 2, где x-псевдослучайное число в интервале (-5.0,+5.5), за исключением |x| <= 1. Вычисления выполнить для 4-х значений точности e: 10^-6, 10^-7, 10^-8, 10^-9 Вычислить 20 значений функции F. Результаты оформить в виде таблицы.

Мой код выдаёт некорректные результаты. Где ошибка?

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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
float ryad_teil(float x, int k);
float random(float a, float b);
 
 
void main()
{
 //time_t t;
 //time(&t);
 srand(time(NULL));
 
float x,g, b=-5.0, c=5.5;
int i=0, k;
   clrscr();
 
//printf("%s\t%s\n",m,ctime(&t));
printf("|     x     |    e=1.e-6    |    e=1.e-7    |    e=1.e-8    |    e=1.e-9    |\n");
 
        while(i<20)
      {
         x=random(b,c);
 
         if ((x>=-1) && (x<=1)) continue;
           printf("| %+f |",x);
            k=6;
            for (int j=0; j<4; j++)
              {
                  printf(" %+e |",ryad_teil(x,k));
                  k++;
               }
               printf("\n");
               i++;
       }
       getch();
}
 
float ryad_teil(float x, int k)
{
 double T,sum=0.;
 float eps=pow(10.,-k);
 int n=0;
           while(fabs(T)>=eps)
              {
                T=1/(((2*n)+1)*pow(x,(2*n)+1.));
                sum=sum+T;
                n++;
              }
 return sum;
}
 
 
float random(float b, float c)
{
     float e = fabs(b)+fabs(c);
     float d = b + (e / (RAND_MAX + 1)) * rand();
     float rnd=d;
 
              while((e<b)&&(e>c)) continue;
 
 return rnd;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2012, 09:10     Ряд Тэйлора. Где ошибка?
Посмотрите здесь:

C++ Разложение sin(x) в ряд Тэйлора в C++
[C++] Ряд Тэйлора C++
ряд тэйлора C++
C++ Вывести на экран количество слов где первая и последняя буквы одинаковы (не понимаю где ошибка)
C++ Для х изменяющегося от a до b с шагом (b-a)/k, где (k=10), вычислить функцию f(x), используя ее разложение в степенной ряд
C++ Подскажите, где может быть ошибка (структуры)? (скорее всего где-то амперсенд нужен, все вроде проверил)
C++ Для х изменяющегося от a до b с шагом (b-a)/k, где (k=10), вычислить функцию f(x), используя ее разложение в степенной ряд
C++ Укажите где ошибка (ошибка во время выполнения программы)

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

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

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