С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 31.03.2019
Сообщений: 2
1

Сумма ряда и значение проверочной функции сходятся при использовании цикла for, но не сходятся с do-while

31.03.2019, 17:45. Показов 1737. Ответов 2

Author24 — интернет-сервис помощи студентам
Есть значит вот такая программа , работает отлично.
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
#include <stdio.h> 
#include <iostream>
#include <stdlib.h>  
#include<math.h> 
#include <iomanip>
 
using namespace std;
 
int main() 
{
 
     double stepx;
     double x = -1;
     double sum;
     double iter = 0;
     int eps = 1e-10;
 
     do {
 
         stepx = x*x*x;
 
         sum = stepx;
 
         for (int n = 2; n <= 100; n++) 
         {
             stepx *= x*x*x;
             sum += stepx / n;
             iter++;
         }
    
         sum = -sum;
 
         printf("---------------------------------------------------------------------------------------------\n");
         cout << "|| x is   " << x <<"\t|| sum is   "<< setprecision(6)<< sum << "\t"<< "||   function is   " << log(1 - x * x*x) <<"\t|| iterations  " << iter << "||" << endl;
 
         x += 0.05;
     } while (x <= 1);
 
    system("pause");
    return 0;
}
Добавляю проверку на эпсилон и заменяю цикл for на цикл do-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
#include <stdio.h> //У програмі використовуються функції printf, scanf   
#include <iostream>
#include <stdlib.h> //У програмі використовуються функції system   
#include<math.h> //У програмі використовуються функції log  
#include <iomanip>
 
using namespace std;
 
int main()
{
 
    double stepx;
    double x = -1;
    double sum;
    double iter = 0;
    double eps = 1e-10;
    double n = 1;
    double epsilon;
 
    do {
 
        stepx = x * x * x;
 
        sum = stepx;
 
        epsilon = stepx;
 
        do
        {
            n++;
 
            stepx *= x * x * x;
 
            sum += stepx / n;
 
            iter++;
            
        
            
        } while (fabs(sum - epsilon) < eps && n <= 100);
 
        sum = -sum;
 
        printf("---------------------------------------------------------------------------------------------\n");
        cout << "|| x is   " << x << "\t|| sum is   " << setprecision(6) << sum << "\t" << "||   function is   " << log(1 - (x * x * x)) << "\t|| iterations  " << iter << "||" << endl;
 
        x += 0.05;
    } while (x < 1.05);
 
    system("pause");
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.03.2019, 17:45
Ответы с готовыми решениями:

Проверить: 1) выполняется ли необходимый признак сходимости ряда 2) сходятся ли ряды?
1) n=1;2..... \frac{n}{(n+1)^3} 2) n=1;2..... \frac{(n+3)!}{3^n\cdot(n+2)!} Помогите...

Определить область сходимости функционального ряда. Доказать, что данные ряды равномерно сходятся
1) Определить область сходимости функционального ряда: \sum_{n=1}^{\infty }...

Предел. Не сходятся ответы при переходе по 2му замечательному
В общем в исходном виде такой предел: \lim {x-&gt;0}{\frac{1+xcosx-sqrt(1+2x)}{ln(1+x^2)-x^3}}...

Не сходятся ответы при реализации двух разных алгоритмов
Что-то не сходятся ответы, кто может посмотреть, может ошибся где? Алгоритм программы для решения...

2
Мозгоправ
1745 / 1039 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
01.04.2019, 00:34 2
Лучший ответ Сообщение было отмечено Romaniy как решение

Решение

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
#include <iostream>
#include <iomanip>
#include <cstdlib> //У програмі використовуються функції system   
#include <cmath> //У програмі використовуються функції log  
 
using namespace std;
 
int main() {
 
    const double eps = 1e-10;
 
    double x = -1.0;
    double sum;
    int n = 1;
    double t;
    double sign;
    double stepx;
 
    do {
        t = x * x * x;
        sum = 0.0;
        n = 0;
        stepx = 1.0;
 
        do {
            ++n;
            stepx *= t;
            sum += stepx / n;
        } while (fabs(stepx / n) > eps && n < 100000);
 
        sum = -sum;
 
        printf("----------------------------------------------------------------------------------------------\n");
        cout << "|| x is   " << setw(5) << (fabs(x) < eps ? 0.0 : x) 
            << " || sum is   " << setw(12) << setprecision(6) << (fabs(sum) < eps ? 0.0 : sum) 
            << " || function is   " << setw(12) << log(1 - (x * x * x))
            << " || iterations  " << setw(6) << n << "||" << endl;
 
        x += 0.05;
    } while (x < 1.05);
 
    //system("pause");
    return 0;
}
1
0 / 0 / 0
Регистрация: 31.03.2019
Сообщений: 2
01.04.2019, 22:46  [ТС] 3
Спасибо большое , все отлично работает!
0
01.04.2019, 22:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.04.2019, 22:46
Помогаю со студенческими работами здесь

Найти сумму ряда при использовании бесконечного цикла
Будьте добры помогите пожалуйста! Цикл c использованием конструкции Do While – Loop, или Do –...

Не сходятся ответы
Всем доброго времени суток. Подскажите пожалуйста почему не сходятся ответы, если значения...

Не сходятся ответы
Не сходятся ответы

Не сходятся значения
Не совпадают ответы,не знаю почему,вроде во время трассировки всё верно,а ответы и близко не похожи


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru