Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.73/26: Рейтинг темы: голосов - 26, средняя оценка - 4.73
1 / 1 / 0
Регистрация: 28.11.2024
Сообщений: 53

Вычислить значения функций заданных разложением в ряд Тейлора

29.12.2024, 02:06. Показов 6969. Ответов 88
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Помогите составить код функции с факториалом и экспонентой программированием в С++, не используя готовые математические функции.
Составить функцию в C++,
вывести на экран таблицу значений этой функции для x, изменяющегося от а до b с шагом h = (b-a)/10, если а = 0,1, b= 1,0 и k = 120. Готовые математические функции не использовать. Для вычисления факториала и экспоненты составить отдельные функции:

N!= 1 * 2 * 3*…*N , ⅇ^x=1+x+x^2/2!+x^3/3!+x^4/4!+⋯+x^n/n!+⋯+

Название: Screenshot_4.png
Просмотров: 305

Размер: 2.4 Кб

У меня код такой. Но я не уверена в его правильности
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
#include <iostream>
#include <iomanip>
#include <cmath>
 
// Функция для вычисления факториала
double factorial(int n) {
    double result = 1.0; // Используем double для избежания переполнения
    for (int i = 1; i <= n; ++i) {
        result *= i;
    }
    return result;
}
 
// Функция для вычисления экспоненты
double exponential(double x, int terms) {
    double result = 1.0; // Начальное значение для e^x
    double term = 1.0;   // Текущий член ряда
    for (int n = 1; n <= terms; ++n) {
        term *= x / n;   // Вычисляем n-й член
        result += term;  // Добавляем к результату
    }
    return result;
}
 
// Функция для вычисления y(x, k)
double y(double x, int k) {
    double sum = 0.0;
    double e_neg_x = exponential(x, k); // e^(x)
    for (int n = 0; n <= k; ++n) {
        sum += (pow(2, n) * pow(e_neg_x, n)) / factorial(n);
    }
    return sum;
}
 
int main() {
    double a = 0.1;
    double b = 1.0;
    int k = 120;
    double h = (b - a) / 10;
 
    std::cout << std::fixed << std::setprecision(6);
    std::cout << "x\t\t y(x, " << k << ")\n";
    std::cout << "-------------------------\n";
 
    for (double x = a; x <= b; x += h) {
        std::cout << x << "\t " << y(x, k) << "\n";
    }
 
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.12.2024, 02:06
Ответы с готовыми решениями:

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

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

Вычислить значения функции, заданной разложением в ряд Тейлора
Формулы и задачу надо ПЕРЕПИСЫВАТЬ! Редактор формул внизу страницы

88
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6700 / 3113 / 1064
Регистрация: 01.06.2021
Сообщений: 12,024
29.12.2024, 18:40
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Verevkin Посмотреть сообщение
©
мог и не ставить этот знак, и так заметно, кто автор
0
Злостный нарушитель
 Аватар для Verevkin
10919 / 5847 / 1289
Регистрация: 12.03.2015
Сообщений: 26,955
29.12.2024, 18:45
Цитата Сообщение от Royal_X Посмотреть сообщение
мог и не ставить этот знак, и так заметно, кто автор
Ну, все люди разные. Не все знают авторов-классиков.

Название: images.jpg
Просмотров: 88

Размер: 8.4 Кб
0
 Аватар для abit
870 / 529 / 149
Регистрация: 03.02.2013
Сообщений: 1,884
29.12.2024, 18:50
Цитата Сообщение от Verevkin Посмотреть сообщение
Попробуешь написать функцию вычисления факториала, чтобы она работала вот так?
сложно придумать задачу проще
Haskell
1
2
3
4
5
6
fac n = product [1..n]
 
main :: IO ()
main = do
  let x = fac 1200
  putStrLn (show x)
0
Злостный нарушитель
 Аватар для Verevkin
10919 / 5847 / 1289
Регистрация: 12.03.2015
Сообщений: 26,955
29.12.2024, 18:54
Цитата Сообщение от abit Посмотреть сообщение
сложно придумать задачу проще
Ну да. На удаве (или на чём-то ещё таком, я не узнаю).
Но тема в разделе С++.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6700 / 3113 / 1064
Регистрация: 01.06.2021
Сообщений: 12,024
29.12.2024, 18:56
Цитата Сообщение от Verevkin Посмотреть сообщение
На удаве.
это Haskell. И кстати, впервые вижу код на Haskell в тегах Haskell.
Обычно теги Haskell используют на форуме, когда нет тегов для того или иного языка
А вот твой удав
Python
1
2
from math import factorial
print(factorial(1200))
0
Злостный нарушитель
 Аватар для Verevkin
10919 / 5847 / 1289
Регистрация: 12.03.2015
Сообщений: 26,955
29.12.2024, 18:58
Цитата Сообщение от Royal_X Посмотреть сообщение
А вот твой удав
Он не мой.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6700 / 3113 / 1064
Регистрация: 01.06.2021
Сообщений: 12,024
29.12.2024, 19:00
Цитата Сообщение от Verevkin Посмотреть сообщение
Но тема в разделе С++.
вот
0
29.12.2024, 19:01

Не по теме:

Цитата Сообщение от Verevkin Посмотреть сообщение
Он не мой.
так задуши его, если не нужен

0
Злостный нарушитель
 Аватар для Verevkin
10919 / 5847 / 1289
Регистрация: 12.03.2015
Сообщений: 26,955
29.12.2024, 19:06
Цитата Сообщение от Royal_X Посмотреть сообщение
вот
Ну додедай тогда лабу авторке и разойдёмся готовиться к новогоднему нажиралову.
0
29.12.2024, 19:08

Не по теме:

Цитата Сообщение от Verevkin Посмотреть сообщение
Ну додедай тогда лабу
ты же знаешь, как я отвечу) а главное, у кого я научился так говорить

0
1 / 1 / 0
Регистрация: 28.11.2024
Сообщений: 53
29.12.2024, 19:20  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение

Не по теме:


ты же знаешь, как я отвечу) а главное, у кого я научился так говорить

Я была бы очень вам благодарна!!!!
0
 Аватар для abit
870 / 529 / 149
Регистрация: 03.02.2013
Сообщений: 1,884
29.12.2024, 19:23
Verevkin, в С/С++ есть gmp, без неё у меня даже gcc не собирается, нечего изобретать велосипед
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6700 / 3113 / 1064
Регистрация: 01.06.2021
Сообщений: 12,024
29.12.2024, 21:22
Цитата Сообщение от Nelli Matveeva Посмотреть сообщение
Я была бы очень вам благодарна!!!!
раз я сказал тут в теме, что даже если сделать отдельную функцию для факториала, то необязательно вычислять факториал для каждого члена ряда, написал вам код для факториала

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
double* generateFactorials(int upperLimit)
{
    double* arr = new double[upperLimit + 1];
    arr[0] = 1.;
    for (int i = 1; i <= upperLimit; ++i)
        arr[i] = i * arr[i - 1];
    return arr;
}
 
int main()
{
    constexpr int k{ 120 };
    
    auto factorial = generateFactorials(k);
 
    
    std::cout << factorial[120];
 
 
    delete[] factorial;
}
1
29.12.2024, 21:39

Не по теме:

Цитата Сообщение от Royal_X Посмотреть сообщение
ты же знаешь, как я отвечу) а главное, у кого я научился так говорить
У меня тоже лапки, но ими я щас повесил себе в ванную прекрасную полочку с подсветкой. :p

0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6700 / 3113 / 1064
Регистрация: 01.06.2021
Сообщений: 12,024
29.12.2024, 21:44
Цитата Сообщение от gunslinger Посмотреть сообщение
Код для проверки результатов:
да, тоже так вышло

0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6700 / 3113 / 1064
Регистрация: 01.06.2021
Сообщений: 12,024
29.12.2024, 21:50
Nelli Matveeva, ИИ написал такой код. Готовые мат. функции не используются. Результат правильный. Для сдал и забыл сойдет.

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
#include <iostream>
using namespace std;
 
// Функция для вычисления exp(x) через ряд Тейлора
double calculate_exp(double x, int terms = 100) {
    double result = 1.0; // Первое слагаемое ряда
    double term = 1.0;   // Текущее слагаемое
 
    for (int i = 1; i < terms; ++i) {
        term *= x / i; // Вычисляем следующее слагаемое
        result += term;
    }
 
    return result;
}
 
double func(double x, int k = 120) {
    double tmp = -calculate_exp(x); // Используем нашу реализацию exp(x)
    double memb = 1.0, sum = memb;
 
    for (int n = 1; n <= k; ++n) {
        memb *= 2 * tmp / n;
        sum += memb;
    }
 
    return sum;
}
 
int main() {
    double x, a = 0.1, b = 1.0, h = (b - a) / 10.0;
 
    cout << "x\ty\n";
    for (x = a; x <= b; x += h) {
        cout << x << "\t" << func(x) << endl;
    }
 
    return 0;
}

C++
1
2
3
4
5
6
7
8
9
10
11
12
x       y
0.1     0.109663
0.19    0.0890552
0.28    0.070916
0.37    0.0552731
0.46    0.0420815
0.55    0.0312259
0.64    0.0225288
0.73    0.0157619
0.82    0.0106627
0.91    0.00695256
1       0.00435442
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13235 / 6867 / 1827
Регистрация: 18.10.2014
Сообщений: 17,407
29.12.2024, 22:55
Цитата Сообщение от Royal_X Посмотреть сообщение
Для сдал и забыл сойдет.
Не соответствует условию.
0
Злостный нарушитель
 Аватар для Verevkin
10919 / 5847 / 1289
Регистрация: 12.03.2015
Сообщений: 26,955
29.12.2024, 23:04
Цитата Сообщение от Royal_X Посмотреть сообщение
Для сдал и забыл сойдет.
Ну и ладно....



Я сам был студентом, я всё понимаю. Когда идёт зачётная неделя, очень важно посдавать все лабы и зачёты. Иначе к экзаменам не допустят и праздник может быть омрачён этим. Мне всегда удавалось перейти в новый год без хвостов, хотя бывало, что набирал я их много.

Эх, молодость........
0
 Аватар для abit
870 / 529 / 149
Регистрация: 03.02.2013
Сообщений: 1,884
29.12.2024, 23:08
Цитата Сообщение от Verevkin Посмотреть сообщение
Мне всегда удавалось перейти в новый год без хвостов
жаль, я бы вам зачёт не поставил
0
Злостный нарушитель
 Аватар для Verevkin
10919 / 5847 / 1289
Регистрация: 12.03.2015
Сообщений: 26,955
29.12.2024, 23:12
Цитата Сообщение от abit Посмотреть сообщение
жаль, я бы вам зачёт не поставил
А по какому предмету?
-----------
Когда я учился, в нашем универе ещё не было преподов с нетрадиционной ориентацией. Повезло мне, наверное. Это уже потом развели всякую толерантность или как это там в "нормальных-то странах" называется...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.12.2024, 23:12

Вычислить значения функции заданной разложением в ряд Тейлора
Вычислить и вывести на экран значения функции в виде таблицы, заданной с помощью ряда Тейлора, на интервале от Хнач до Хкон с шагом dx и...

Вычислить значения функции заданной разложением в ряд Тейлора
Для каждого х, изменяющегося от а до b с шагом h, найти значения функции Y(x), суммы S(x) и Y(x)-S(x) и вывести в виде таблицы. Значения...

Вычисление функций разложением в ряд Тейлора
Формулы надо переписывать! Редактор внизу страницы

Вычисление функций разложением в ряд Тейлора
1. Напишите программу для вычисления значения функции, заданной с помощью ряда Тейлора, в точке Х с заданной точностью. 2. В дополнение...

Вычисление функций разложением в ряд Тейлора
. Написать функцию 1, которая для любого заданного Х вычисляет с заданной точностью e значение Y как сумму членов бесконечного ряда....


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru