Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
4 / 2 / 2
Регистрация: 13.12.2018
Сообщений: 30

Решения уравнения итерационным методом и вычисления суммы бесконечного ряда

13.12.2018, 20:52. Показов 1586. Ответов 2

Студворк — интернет-сервис помощи студентам
Задание: разработать программы решения уравнения итерационным методом и вычисления суммы бесконечного ряда. Решения уравнения итерационным методом x=(sgrt(a*x)+sqrt(b*x))/c для a>0, b>0, c>0, x0>0. Вычисления суммы бесконечных рядов за формулой ui=ui-1*x для х<1. Мой код считает неправильно. Что не так?



C++ (Qt)
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include <iostream>
#include <cmath>
#include <windows.h>
 
bool f1(double a, double b, double c, double xo);
double f2(double a, double b, double c, double x0, double eps);
double f3(double x0, double eps, bool result);
void f4(int i);
 
 
int main()
{
    int i = 0;
    while(true){
        std::cout<<"\n\n\n";
        std::cout<<"0.Exit\n";
        std::cout<<"1.Итерационная формула\n";
        std::cout<<"2.Бесконечный ряд\n";
        std::cout<<"Ваш выбор: ";
        std::cin>>i;
        if(i == 0){
            break;
        }
        f4(i);
    }
 
    return 0;
}
bool f1(double a, double b, double c, double xo){
    return a>0 && b>0 && c>0 && xo>0;
}
 
double f2(double a, double b, double c, double x0, double eps){ // Функция для итерац. формулы
    double xOld=x0;
    double xNew;
 
    do{
        xOld=xNew;
        xNew=(sqrt(a*xOld)+sqrt(b*xOld))/c;
        std::cout<< xNew<<"\n";
    }while(abs(xNew-xOld) > eps);
        return xNew;
}
 
 
 
double f3(double x, double eps, bool result){ //Функция для бесконечного ряда
    int i = 0;
    double res = 1;
    double ui = res;
 
 
    while(abs(ui) > eps){
        i ++;
        ui = ui*x;
        res += ui;
        if(result){
        std::cout<<res<<std::endl;
        }
 
    }
    return res;
}
 
void f4(int i){              //Вывод на консоль
    double x0, eps;
 
 
    std::cout<<"x=";
    std::cin>>x0;
 
    std::cout<<"eps=";
    std::cin>>eps;
 
    switch(i){
    case 0: break;
    case 1:{
        double a, b, c;
        std::cout<<"a=";
        std::cin>>a;
        std::cout<<"b=";
        std::cin>>b;
        std::cout<<"c=";
        std::cin>>c;
 
        if(f1(a,b,c,x0)){
            std::cout<<"\n Показать промежуточные результаты? \n 1-Да \n 0-Нет \n";  //Вывод промежуточных результатов
            bool xNew = false;
            std::cin>>xNew;
            std::cout<<"\n Результат: "<<f2(a, b,c,x0,eps);
        } else {
          std::cout<<"\n Неправильные параметры a>0, b>0, c>0, x0>0";
        }
 
    } break;
 
    case 2:{
        if(x0<1){
            std::cout<<"\n Показать промежуточные результаты? \n 1-Да \n 0-Нет \n";
            bool result = false;
            std::cin>>result;
            std::cout<<"\n Результат: "<<f3(x0,eps,result); //Этот результат должен = результату подсчета по формуле 1/(1-x)
 
        } else {
          std::cout<<"\n Неправильные параметры x0>1";
        }
        double otvet;
        otvet=1/(1-x0);
        std::cout<<"\n Результат подсчета по формуле 1/(1-x): "<<otvet<<std::endl; 
 
    } break;
    }
 
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.12.2018, 20:52
Ответы с готовыми решениями:

Решения уравнения итерационным методом
Решения уравнения итерационным методом x=(sgrt(a*x)+sqrt(b*x))/c для a&gt;0, b&gt;0, c&gt;0, x0&gt;0.

Рекурсивная функция вычисления суммы бесконечного ряда
Всем привет) Объясните кто нибудь как это можно сделать?)

Программа вычисления суммы членов бесконечного числового ряда
Здравствуйте. Нужна помощь в такой задаче. Не могу разобраться в ней. Составить программу вычисления суммы членов бесконечного числового...

2
4 / 2 / 2
Регистрация: 13.12.2018
Сообщений: 30
15.12.2018, 11:59  [ТС]
Помогите, пожалуйста!!! Очень надо!!!
0
2 / 1 / 1
Регистрация: 15.09.2018
Сообщений: 14
24.12.2018, 15:58
Лучший ответ Сообщение было отмечено Culfo как решение

Решение

Вот так правильно:
C++ (Qt)
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include <iostream>
#include <cmath>
using namespace std;
void lel();
double riv();
void iter_f();
int main()
{int i=0;
    while(true){
        cout<<"\nВиберiть один iз варiантiв:"<<endl;
        cout<<" 0. Завершити програму."<<endl;
        cout<<" 1. Iтерацiйний алгоритм."<<endl;
        cout<<" 2. Iтерацiйна формула з виведенням приближених значень."<<endl;
        cout<<" 3. Oбчислення  сум нескiнченних рядiв."<<endl;
        cout<<"Ваш вибiр: ";
        cin>>i;
        if(i==0)break;
        switch(i){
         case 1:riv();break;
         case 2:iter_f();break;
        case 3:lel();break;
        }
    }
    return 0;
}
void lel(){                        //Функцiя для нескiнченного ряду
double eps,u,result;double x;
int s=0;
cout<<"Введiть x (x<1) :"<<endl;
cin>>x;
while(x>=1){
    cout<<"Введiть x менше 1 : "<<endl;
    cin>>x;
}
    u=result=1;
 
    cout<<"Введiть eps:"<<endl;
    cin>>eps;
    cout<<"Чи бажаєте ввести наближення?"<<endl;
    cout<<"1.Так"<<endl;
    cout<<"2.Нi\n"<<endl;
    cin>>s;
    if(s==1){
 
while(abs(u)>eps){
 
   u=u*x;
   result+=u;
cout<<"Прoмiжне значення:"<<result<<endl;
}
 double otvet;
 otvet=1/(1-x);
 cout<<"\nРезультат:"<<result<<endl;
 cout<<"\nРезультат за формулою : 1/(1-x)="<<otvet<<endl;}
 
    else {  while(abs(u)>eps){
                u=u*x;
                result+=u;
           }
             cout<<"\nРезультат:"<<1/(1-x)<<endl;
            }
    }
 
double riv() {                         //Функцiя для iтерац формули
n:
double newx, oldx, a,b,c,eps;
cout<<"Введiть а:";
cin>>a;
cout<<"Введiть b:";
cin>>b;
cout<<"Введiть с:";
cin>>c;
cout<<"Введiть eps:";
cin>>eps;
if (!(a>0 && b>0 && c>0)){cout<<"Неправильнi параметри: a>0,b>0,c>0. \n"; goto n;}
newx=a;
do {
    oldx=newx;
    if (!(oldx>0)) break;
    newx=(sqrt(a*oldx)+sqrt(b*oldx))/c;
 
}while(abs(newx-oldx)>eps);
cout<<"\nРезультат:"<<newx<<endl;
}
 
void iter_f() {                      //Функцiя для iтерац формули з промiжними результатами
 
l:
double newx, oldx, a, b,c,eps;
cout<<"Ввеiдт а:";
cin>>a;
cout<<"Введiть b:";
cin>>b;
cout<<"Введiть с:";
cin>>c;
cout<<"Введiть eps:";
cin>>eps;
if (!(a>0 && b>0 && c>0 )){cout<<"Неправильнi параметри: a>0, b>0, c>0. \n"; goto l;}
newx=a;
do {
    oldx=newx;
    if (!(oldx>0)) break;
    newx=(sqrt(a*oldx)+sqrt(b*oldx))/c;
    cout<<"Значення:"<<newx<<endl;
}while(abs(newx-oldx)>eps);
cout<<"\nРезультат:"<<newx<<endl;
 
 
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.12.2018, 15:58
Помогаю со студенческими работами здесь

Программа вычисления суммы членов бесконечного числового ряда
Здравствуйте. Нужна помощь в такой задаче. Не могу разобраться в ней. Составить программу вычисления суммы членов бесконечного числового...

Составить программу вычисления суммы членов бесконечного числового ряда
Прошу помочь с решением задачи. 22. Составить программу вычисления суммы членов бесконечного числового ряда с погрешностью E=10-3 ....

Составить программу для вычисления суммы бесконечного ряда с погрешностью
Составить программу для вычисления суммы бесконечного ряда с погрешностью ε = 10-3 Задания надо переписывать. Редактор формул внизу...

Составить программу для вычисления суммы бесконечного ряда с погрешностью
Составить программу для вычисления суммы бесконечного ряда \sum_{k=1}^{\infty}u_k= \sum_{k=1}^{\infty}\frac{cos\,\frac{2\pi k}{3}}{k^2+1} с...

Составить программу вычисления значения суммы членов бесконечного ряда
Составить программу вычисления значения суммы членов бесконечного ряда с заданной точностью Е =0,000006 в интервале . На печать вывести...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru