0 / 0 / 0
Регистрация: 15.05.2020
Сообщений: 59
1

Вычислить значение функции sinh(x), разложенной в ряд и сходящейся в указанной области

19.04.2022, 12:39. Показов 1552. Ответов 32
Метки нет (Все метки)

Помогите написать код.
Вычислить значение функции F(x), разложенной в ряд и сходящейся в указанной области.
Вычислить значение функции sinh(x), разложенной в ряд и сходящейся в указанной области
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.04.2022, 12:39
Ответы с готовыми решениями:

Вычислить значение функции F(x), разложенной в ряд и сходящейся в указанной области
Надо решить тремя способами: 1) с точностью eps; 2) известно количество элементов ряда; 3) и по...

Вычислить значение функции F(x), разложенной в ряд и сходящейся в указанной области
Составить программу вычисления функции F(x), разложенной в ряд, сходящийся в заданной области....

Вычислить значение функции разложенной в ряд и сходящейся в указанной области
Всем привет! Есть одна задача, решить не получается от слова совсем. Текст приведен на скриншоте....

Вычислить значение функции, разложенной в ряд и сходящейся в указанной области
Вычислить значение функции F(x), разложенной в ряд и сходящейся в указанной области. Помогите...

32
Диссидент
Эксперт C
26836 / 16744 / 3667
Регистрация: 24.12.2010
Сообщений: 37,481
19.04.2022, 13:06 2
sansan, Собственные попытки были? И какие возникли сложности?
0
0 / 0 / 0
Регистрация: 15.05.2020
Сообщений: 59
19.04.2022, 14:25  [ТС] 3
Не ясна сама математика вычисления, а именно вычислить значение этой функции в точке x с заданной точностью E
Глядя на сам код мне проще понять, чем глядя на формулу

Добавлено через 13 минут
Нашел аналогичную задачу и решение
Вычислить значение функции F(x), разложенной в ряд и сходящейся в указанной области
попробую сделать по ней. Вопрос временно снят
0
Эксперт CЭксперт С++
3446 / 2029 / 1110
Регистрация: 14.12.2018
Сообщений: 3,987
Записей в блоге: 1
19.04.2022, 14:41 4
Лучший ответ Сообщение было отмечено sansan как решение

Решение

Цитата Сообщение от sansan Посмотреть сообщение
Нашел аналогичную задачу и решение
Ну это Паскаль, а не Си++ !

Вот программу я предлагаю вам:
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
#include <iostream>
double SH(double x, double eps)
{
    double t = x*x, u = x, res = x;
    int n = 0;
    while (u < -eps || eps < u)
    {
        n++;
        u *= t / (2 * n*(2 * n + 1));
        res += u;
    }
    return res;
}
int main()
{
    double x;
    do
    {
        std::cout << "x = ";
        std::cin >> x;
    } while (x <= -1.0 || 1.0 <= x);
 
    double eps;
    do
    {
        std::cout << "eps = ";
        std::cin >> eps;
    } while (eps <= 0.0);
 
    std::cout << "sh(" << x << ") = " << SH(x, eps);
    return 0;
}
1
0 / 0 / 0
Регистрация: 15.05.2020
Сообщений: 59
19.04.2022, 15:01  [ТС] 5
Спасибо! Да, я понял что в примере по ссылке, паскаль. Но я немного понимаю код на паскале.
Правильно ли я понимаю, что строку: 6 вашего кода, можно заменить на abs(u)?

while (u < -eps || eps < u)
на
while (abs(u))
0
Эксперт CЭксперт С++
3446 / 2029 / 1110
Регистрация: 14.12.2018
Сообщений: 3,987
Записей в блоге: 1
19.04.2022, 15:06 6
Цитата Сообщение от sansan Посмотреть сообщение
можно заменить на abs(u)?
Да. Это именно такое условие !

Добавлено через 29 секунд
C++
1
while (abs(u) > eps)
0
0 / 0 / 0
Регистрация: 15.05.2020
Сообщений: 59
23.05.2022, 06:21  [ТС] 7
А можно привести пример решения этой задачи по аналитической формуле?
0
случайный прохожий
2078 / 1346 / 461
Регистрация: 20.07.2013
Сообщений: 3,760
23.05.2022, 08:43 8
Используй функцию sinh(). Если требуется, подключи "математическую библиотеку" (math, math.h или подобное).
0
0 / 0 / 0
Регистрация: 15.05.2020
Сообщений: 59
23.05.2022, 08:50  [ТС] 9
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream> 
#include <cmath>
 
int main()
{
  double param = log(2.0);
 
  std::cout << "Гиперболический синус "
            << param << " = "
            << sinh(param) << std::endl;  // вычисляем гиперболический синус
  return 0;
}
если можно разъясните что в строках кода. Наример что делает log? И др. строки
0
случайный прохожий
2078 / 1346 / 461
Регистрация: 20.07.2013
Сообщений: 3,760
23.05.2022, 09:09 10
Там, откуда этот код взят, разве не объясняют?
log - это натуральный логарифм (по основанию e).
Далее выводятся значения param и sinh(param).
По-моему, это "детский сад, штаны на лямках" (остается только еще алфавит начать учить).
1
1 / 2 / 0
Регистрация: 09.05.2022
Сообщений: 53
23.05.2022, 09:28 11
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream> 
#include <cmath>
 
int main()
{
  double param = log(2.0); //param хранит логарифм (показатель степени) числа 2 по основанию 10
 
  std::cout << "Гиперболический синус "
            << param << " = "
            << sinh(param) << std::endl;  // гиперболический синус от log(2.0)
  return 0;
}
Формула гиперболического синуса
https://www.cyberforum.ru/cgi-bin/latex.cgi?sh(x)=(e^x-1/e^x)/2
на выводе будет значение param вместо x, которое будет вычислено по формуле гиперболического синуса
1
0 / 0 / 0
Регистрация: 15.05.2020
Сообщений: 59
23.05.2022, 09:38  [ТС] 12
Там, откуда этот код взят, разве не объясняют?
нет
log - это натуральный логарифм (по основанию e).
Далее выводятся значения param и sinh(param).
Результат работы этого кода при log(0.9) "Гиперболический синус -0.105361 = -0.105556"
если воспользоваться например онлайн сервисом вычисления, то результат 1.03
По-моему, это "детский сад, штаны на лямках" (остается только еще алфавит начать учить).
Ну как бы все когда то учились ходить есть кашу и читать. Или сразу после рождения за томик Достоевского за чашкой кофе в соседнем кафе. Тем более раздел "С++ для начинающих".
0
17 / 15 / 3
Регистрация: 11.04.2022
Сообщений: 73
23.05.2022, 10:38 13
сделал для себя более понятным
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
#include <iostream>
 
using namespace std;
 
int rec(int x,int n)
{
    if (n > 0)
        return rec(x*n, n - 1);
    return x;
}
 
double f(double x, double eps)
{
    double result = 0;
    double u;
    double n = 1;
    do
    {
        u= pow(x, 2*n-1)/rec(1,2*n-1);
        n++;
        result += u;
    } while (abs(u) > eps);
    return result;
}
 
int main()
{
    double x;
    cout << " Enter x: ";
    cin >> x;
    if (abs(x) > 1)
    {
        cout << "Incorrect input";
        return -1;
    }
    cin.clear();
    double eps;
    cout << "Enter eps: ";
    cin >> eps;
    cin.clear();
    cout <<"F("<<x<< ") = " << f(x, eps);
    return 0;
}
1
случайный прохожий
2078 / 1346 / 461
Регистрация: 20.07.2013
Сообщений: 3,760
23.05.2022, 12:07 14
Цитата Сообщение от sansan Посмотреть сообщение
Результат работы этого кода при log(0.9) "Гиперболический синус -0.105361 = -0.105556"
если воспользоваться например онлайн сервисом вычисления, то результат 1.03
Что за сервис?

Насчет "детского сада" - ну это слишком просто, даже для начинающих. Когда интернет везде - за информацией даже руку тянуть не надо.
И я бы посмотрел, как ты с нуля начал работу в каком-нибудь билдере 6 (с пиратского диска за 50-100 рублей) без легкодоступного (по скорости и цене) интернета и всяких форумов, используя только встроенную справку (правда, качественно сделанную, но на английском языке), имея лишь опыт написания простых консольных приложений.
Когда спросить не у кого и надеяться можно только на себя. Зато стимул какой был.

Добавлено через 17 минут
Цитата Сообщение от karlhildekruger Посмотреть сообщение
логарифм (показатель степени) числа 2 по основанию 10
Ты путаешь log с log10. В математике и C++ названия / обозначения разные: ln = log, lg = log10. Это нужно просто знать / запомнить.
1
0 / 0 / 0
Регистрация: 15.05.2020
Сообщений: 59
23.05.2022, 13:30  [ТС] 15
да любой из первых в запросе в гугле, например hostciti.нет

И я бы посмотрел, как ты с нуля начал работу в каком-нибудь билдере 6 (с пиратского диска за 50-100 рублей)
Так и начинал. Последний раз код писал в 2002 году и то не был C
0
случайный прохожий
2078 / 1346 / 461
Регистрация: 20.07.2013
Сообщений: 3,760
23.05.2022, 13:46 16
Лучше проверить ответ тем же "виндовым" калькулятором (раз сайт выдает такой результат):

Вычислить значение функции sinh(x), разложенной в ряд и сходящейся в указанной области
1
Эксперт CЭксперт С++
3446 / 2029 / 1110
Регистрация: 14.12.2018
Сообщений: 3,987
Записей в блоге: 1
23.05.2022, 16:32 17
Цитата Сообщение от sansan Посмотреть сообщение
А можно привести пример решения этой задачи по аналитической формуле?
Вот (подключить к cmath и добавить строчку 32):
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
#include <iostream>
#include <cmath>
double SH(double x, double eps)
{
    double t = x * x, u = x, res = x;
    int n = 0;
    while (u < -eps || eps < u)
    {
        n++;
        u *= t / (2 * n * (2 * n + 1));
        res += u;
    }
    return res;
}
int main()
{
    double x;
    do
    {
        std::cout << "x = ";
        std::cin >> x;
    } while (x <= -1.0 || 1.0 <= x);
 
    double eps;
    do
    {
        std::cout << "eps = ";
        std::cin >> eps;
    } while (eps <= 0.0);
 
    std::cout << "sh(" << x << ") = " << SH(x, eps) << std::endl;
    std::cout << "sinh(" << x << ") = " << sinh(x) << std::endl;
    return 0;
}
Тест:
Код
x = 0.6
eps = 0.00001
sh(0.6) = 0.636654
sinh(0.6) = 0.636654
1
0 / 0 / 0
Регистрация: 15.05.2020
Сообщений: 59
14.09.2022, 08:54  [ТС] 18
Задачу я так и не смог решить. Вариант возведения в степень через pow не принимается преподом. Требует как в методичке.
Методичку прикладываю. Моя формула (которую нужно реализовать) в первом сообщении. В методичке формула отличается.
metod.doc
Помогите пожалуйста разобраться.
0
0 / 0 / 0
Регистрация: 15.05.2020
Сообщений: 59
14.09.2022, 09:10  [ТС] 19
Цитата Сообщение от Volga_ Посмотреть сообщение
n++;
u *= t / (2 * n*(2 * n + 1));
res += u;
(2 * n*(2 * n + 1)); не могу разобраться, ...n+1... Это у вас опечатка в знаке + или все верно?
0
Модератор
Эксперт С++
12094 / 9768 / 5907
Регистрация: 18.12.2011
Сообщений: 26,221
14.09.2022, 09:18 20
sansan, см.
Вычисление функций разложением в ряд Тейлора
Смысл в том, чтобы n+1 -й член ряда выразить через n-й:
https://www.cyberforum.ru/cgi-bin/latex.cgi?{a}_{n+1}=\frac{{a}_{n}x*x}{(2n)(2n+1)}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.09.2022, 09:18
Помогаю со студенческими работами здесь

Вычислить значение функции F(x), разложенной в ряд и сходящейся в указанной области
Помогите написать программу в Pascal Вычислить значение функции F(x), разложенной в ряд и...

Вычислить значение функции F(x), разложенной в ряд и сходящейся в указанной области
Вычислить значение функции F(x), разложенной в ряд и сходящейся в указанной области.

Вычислить значение функции F(x), разложенной в ряд и сходящейся в указанной области
Здравствуйте,помогите пожалуйста с этой задачкой. Вычислить значение функции F(x), разложенной в...

Вычислить значение функции F(x), разложенной в ряд и сходящейся в указанной области
Вычислить значение функции F(x), разложенной в ряд и сходящейся в указанной области.

Вычислить значение функции, разложенной в ряд и сходящейся в указанной области
Помогите пожалуйста разобраться с задачей, не особо понимаю как ее делать

Вычислить значение функции F(x), разложенном в ряд и сходящейся в указанной области
Вычислить значение функции F(x), разложенном в ряд и сходящейся в указанной области Функция: ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru