Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 12.10.2020
Сообщений: 36

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

29.11.2020, 23:33. Показов 1888. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дано задание (прикрепил фото). Написал такой код. Но при компиляции вместо результата появляется not(ind)(скрин так же прикрепляю).Так же при вводе x<1.Программа вообще останавливается (скрин2).Возможно, что ошибка в самой рекуррентной формуле. Если кто-то разбирается, помогите...

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
53
54
55
56
57
58
59
60
61
62
63
#include <iostream>
#include <conio.h>
#include <math.h>//математические функции
#include <iostream>//input output
#include <stdlib.h>
 
using namespace std;
 
 
 
int main()
{
 
setlocale( LC_ALL, "ru");
double x, E;
 cout << "  \tВведите значение х:  " << endl;
 cin >> x;
 do
 {
     cout << "\tВведите значение точности Е. \n\tЕ существует в следующих пределах:(0<Е<1)" << endl;
     cin >> E;
     if (E >= 1 || E <= 0)cout << "Прочтите условия существования Е" << endl;
 }   while (E >= 1 || E<=0);
 
 
 
 int i = 1, zn1=1,zn2=2;
 double slog, sum = 0;
 long double mn;
 
 
 
 do
 {
     x = pow(x, 2 * i);
     zn1 = zn1 * (zn1 + 1);
     zn2 = zn2 * (zn2 + 1);
     mn = (double)((1 / zn1) + (1 / zn2));
     slog = -1*x * mn;
     sum += slog;
     i++;
 } while (abs(slog) <= E);
 
 
 
    
 double f, absol, otn;
 
    f = 2 - (1 / exp(pow(x, 2))) - cos(x);   
    absol = abs(sum - f);
    otn = absol / f;
    
    cout << "\tСумма ряда : "<<sum << endl;
    cout << "\tЗначение контрольной формулы : "<<f << endl;
    cout << "\tОтносительная погрешность : " <<otn << endl;
    cout << "\tАбсолютная погрешность : " <<absol<< endl;
 
 
 
    
 
 
}
Миниатюры
Вычисление значения функции заданной разложением в ряд Тейлора   Вычисление значения функции заданной разложением в ряд Тейлора   Вычисление значения функции заданной разложением в ряд Тейлора  

0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.11.2020, 23:33
Ответы с готовыми решениями:

Вычисление значения функции заданной разложением в ряд Тейлора
есть сумма ln(3+x)=x-(x^2/2)+(x^3/3)-(x^4/4)+... x= как через while найти эту сумму? очень желательно объяснить,как-то не пойму...

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

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

5
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38171 / 21106 / 4307
Регистрация: 12.02.2012
Сообщений: 34,699
Записей в блоге: 14
30.11.2020, 00:30
У тебя каждое слагаемое должно умножаться на x2n. Но получится не так... Первое умножится на x2, второе - уже на x8, а третье - на x24. Что за фигню ты написал в стр. 35?
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
30.11.2020, 03:25
332244, для небольших значений x (примерно |x|<=5):
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
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{    
    int n=1;
    double x, eps, p1=1., p2=1., a=-1., an=1., S=0., Y;      
    cout << "x="; cin >> x;
    cout << "eps="; cin >> eps;
     
    while(fabs(an)>eps)    
    {                
        p1/=n;
        p2/=2.*n*(2.*n-1.);
        a*=-x*x;
        an=a*(p1+p2);
        S+=an;
        n++;
    }    
    
    Y=2.-exp(-x*x)-cos(x);
    
    cout << "S=" << S << "  Y=" << Y << "\n";  
    
system("pause");
return 0;
}
1
0 / 0 / 0
Регистрация: 12.10.2020
Сообщений: 36
30.11.2020, 08:40  [ТС]
Написал что с каждой итерацией цикла х возводится в степень 2*i.
i сначала 1 . x=x^2
i потом 2. x=x^4
i потом 3. x=x^6
Что не так?

Добавлено через 12 минут
Подскажите, почему при увелечении x , например до 8 ряд not(ind)?. Я сделаю ограничение на вводимый х , но всё же интересно. Ведь ОДЗ для это функции соответствует всем числам. Либо же считать cos можно только от -1 до 1?
0
0 / 0 / 0
Регистрация: 12.10.2020
Сообщений: 36
30.11.2020, 15:40  [ТС]
Подскажите, почему при увелечении x , например до 8 ряд not(ind)?. Я сделаю ограничение на вводимый х , но всё же интересно. Ведь ОДЗ для это функции соответствует всем числам. Либо же считать cos можно только от -1 до 1?
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
30.11.2020, 17:27
Лучший ответ Сообщение было отмечено 332244 как решение

Решение

Цитата Сообщение от 332244 Посмотреть сообщение
Написал что с каждой итерацией цикла х возводится в степень 2*i
Что не так?
Вам же уже ответили выше. на первой итерации Вы получаете x2, на второй возводите это полученное значение
в степень 4, получаете x8 и т.д.
Цитата Сообщение от 332244 Посмотреть сообщение
Либо же считать cos можно только от -1 до 1?
не совсем так. смотрите. вычисление cos:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{    
    int n=0;
    double x=0.8, eps=1e-3, an=1.0, S=1.0, Y=cos(x);      
     
    while(fabs(an)>eps)    
    {          
        n++;
        an*=-x*x/(2*n*(2*n-1));
        S+=an;
    }
    cout <<"n="<<n<<"  S="<<S<<"  Y="<<Y<<"  |S-Y|="<<fabs(S-Y)<<endl;  
    
system("pause");
return 0;
}
считает правильно тоже для небольших x (примерно до |x|<50)
это можно исправить, если перед циклом добавить строку x=x-int(x/2/M_PI)*2*M_PI; в механизме ограничения пока разобраться не получилось. если Вам на самом деле интересно попытайтесь разделить переменные (для exp и для cos).
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.11.2020, 17:27
Помогаю со студенческими работами здесь

Вычисление значения функции заданной разложением в ряд Тейлора
Очень много времени ломаю голову, пока кое-как получилось вот такое: double i,j,n, x, eps = 0.0000001, ...

Вычисление значения функции заданной разложением в ряд Тейлора
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; int sum(double x, int n); int main() { int a; int b; cout &lt;&lt;...

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru