Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2021, 13:46   #1
Niki1
Новичок
Джуниор
 
Регистрация: 24.11.2021
Сообщений: 7
Сообщение Доброго времени суток!Нужна помощь в решении задачи.

Вроде бы все работает нормально но иногда возникает ошибка и не считаются значения крайнего интервала это возможно как-нибудь исправить?
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
double sx = 0; double const eps = 1e-4; double d = 0.5;
double Iter_func(double x) {
double r = x / 2, s = 1 + x / 2, sx = x, d = 0.5;
double a = 1, b = 4;
do {
d *= a / b;
x = x * -sx;
r = d * x;
a += 2;
b += 2;
s += r;
} while (fabs(r) >= eps);
return s;
}
double rec_func(double x, double a = 1, double b = 4) {
if (a == 1) {
sx = x;
x *= -sx;
}
d *= a / b;
double r = x * d;
if (fabs(r) <= eps) {
d = 0.5; return r + 1 + sx / 2;
}
return r + rec_func(x * -sx, a + 2, b + 2);
}
double Std_func(double x) {
return sqrt(x + 1);
}
void tabula(double a, double b, double n, double(*func) (double)) {
double h = (b - a) / (n-1);
for (double x = a; x <= b; x += h) {
cout << setprecision(5) << setw(8) << x << setw(16) << (*func)(x) << endl;
}
}
void tabula(double a, double b, double n, double(*func) (double, double, double)) {
double h = (b - a) / (n - 1);
for (double x = a; x <= b; x += h) {
cout << setprecision(5) << setw(8)<< x << setw(16) << (*func)(x, 1, 4) << endl;
}
}
int main() {
double a, b, n;
cout << "a, b, n ";
cin >> a >> b >> n;
if (fabs(a) > 1 || fabs(b) > 1 || n <= 0) {
cout << "Помилка";
}
cout << "std" << endl;
tabula(a, b, n, Std_func);
cout << "iter" << endl;
tabula(a, b, n, Iter_func);
cout << "rec" << endl;
tabula(a, b, n, rec_func);
}
Начиная с n=10 в любом промежутке для b не выдает значение

Последний раз редактировалось Niki1; 24.11.2021 в 14:07.
Niki1 вне форума Ответить с цитированием
Старый 24.11.2021, 13:47   #2
Niki1
Новичок
Джуниор
 
Регистрация: 24.11.2021
Сообщений: 7
По умолчанию Вот сама функция

Это функция значения x которой нужно вывестм
Изображения
Тип файла: jpg Снимок экрана 2021-11-24 в 01.15.51.jpg (13.1 Кб, 4 просмотров)
Niki1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доброго времени суток!Нужна помощь в решении задачи. Niki1 Помощь студентам 3 24.11.2021 10:20
доброго времени суток, программисты! ВикторияА Microsoft Office Excel 6 28.12.2015 15:27