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

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

12.12.2019, 18:26. Показов 3992. Ответов 7
Метки нет (Все метки)

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

Я в душе не знаю как это делать. Не понимаю зачем тут Xнач, Xкон и шаг. Точность, наверно, - это с какой точностью должен выводиться arctg.

Я,конечно, понимаю, что это и близко не решение. Та и после последних правок она вообще не запускается...
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
#include <iostream>
#include <cmath>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
 
int main(int argc, char** argv) {
double pi=3.14;
 
double k=0;
double x1,x2,dx,e;
double x;
cout<<"vvedite Xnach."<<endl;
cin>>x1;
cout<<"vvedite Xkon."<<endl;
cin>>x2;
cout<<"vvedite shag dx."<<endl;
cin>>dx;
cout<<"vvedite tochonst'";
cin>>e;
 
for(int i=0;i<200000000;i++){  //200000000 просто чтоб попробовать. Как я понял бесконечности в c++ нет..
    k+=((pow(-1,i+1))/(2i+1)*pow(x,2i+1));
}
atan(x)==pi/2+k;
cout<<atan(x);
cout<<k;
return 0;
//help
}
P.S. я читал про ряд Тейлора и если бы всё понял, то эту тему не создал
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.12.2019, 18:26
Ответы с готовыми решениями:

Вывести таблицу значений функции заданной разложением в ряд Тейлора
Даны действительные числа x, ε (x≠0, ε &gt;0). Вычислить с -3, -4, -5, -6, точностью ε (ε =10, 10, 10, 10) сумма ряда и указать количество...

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

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

7
0 / 0 / 0
Регистрация: 12.10.2019
Сообщений: 29
12.12.2019, 18:29  [ТС]
Не нашёл, где вставка скрина в редактировании
Миниатюры
Вывести таблицу значений функции заданной разложением в ряд Тейлора  
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
13.12.2019, 04:28
Лучший ответ Сообщение было отмечено justhelppls как решение

Решение

Цитата Сообщение от justhelppls Посмотреть сообщение
я читал про ряд Тейлора
почитайте ещё здесь
Вычисление функций разложением в ряд Тейлора
не применяйте pow, при вычислении очередного слагаемого ряда используйте рекуррентные соотношения - каждое последующее слагаемое выражайте через предыдущее
Цитата Сообщение от justhelppls Посмотреть сообщение
Не понимаю зачем тут Xнач, Xкон и шаг
нужно вычислить не в одной точке, а в нескольких на промежутке [xнач,xкон] c шагом dx (первая точка xнач, вторая xнач+dx, третья xнач+2*dx и т.д.)

вывел ещё кроме того, что требуется по условию значение функции arctg(x) для проверки
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
#define _USE_MATH_DEFINES
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
 
int main()
{    
    int n;    
    double xstart, xend, dx, an, S, e;
    
    cout << "xstart="; cin >> xstart;
    cout << "xend="; cin >> xend;
    cout << "dx="; cin >> dx;    
    cout << "e="; cin >> e;
    
    cout <<" x     S(x)   arctg(x)  n\n";
    for (double x=xstart; x<=xend+dx/2.; x+=dx)
    {
        n=0;
        an=-1./x;
        S=M_PI_2;
        while(fabs(an)>=e)
        {
           S+=an;
           n++;
           an*=-1./(x*x*(2*n+1))*(2*n-1);                      
        }    
    cout << x << "  " << "  " << S << "  " << atan(x) << "  " << n+1 << "\n";
    }   
    
system("pause");
return 0;
}
1
0 / 0 / 0
Регистрация: 12.10.2019
Сообщений: 29
14.12.2019, 10:54  [ТС]
Есть ряд вопросов:
1) Почему при разных заданных входных данных результаты одинаковые? Или, например, задаю Xнач=-1, Xкон=19, dx=1, e=3. Выводит только X=-2,-1
2) Точки после цифр-зачем?
3)Остальное закомментировал
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
#define _USE_MATH_DEFINES
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
 
int main()
{    
    int n;    
    double xstart, xend, dx, an, S, e;
    
    cout << "xstart="; cin >> xstart;
    cout << "xend="; cin >> xend;
    cout << "dx="; cin >> dx;    
    cout << "e="; cin >> e;
    
    cout <<" x     S(x)   arctg(x)  n\n";
    for (double x=xstart; x<=xend+dx/2.; x+=dx)  //Почему x<=xend+dx/2, а не x<=xend?
    {
        n=0;
        an=-1./x; //Почему? Откуда? an есть n-ый член ряда,так? Разве он не должен расти от 0 до бесконечности?
        S=M_PI_2;
        while(fabs(an)>=e) // Я вообще думал, что е-это типа кол-во знаков после запятой...
                                     // Тут разве не строго > должно быть?
        {
           S+=an;
           n++;
           an*=-1./(x*x*(2*n+1))*(2*n-1);   //Это,вроде, не похоже на формулу из условия..        
        }    
    cout << x << "  " << "  " << S << "  " << atan(x) << "  " << n+1 << "\n"; //n-это кол-во суммированных членов ряда?
                                                                                                                    //Если да,то почему всегда n=1?
    }   
    
system("pause");
return 0;
}
Вроде ничего не забыл
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,532
Записей в блоге: 1
14.12.2019, 11:24
justhelppls, А ЗАЧЕМ ТЫ ВВОДИШЬ E=3? Ты вообще понимаешь что вводишь или от балды циферки?
Чему ты ожидал увидеть равным арктангенс? Ты похоже забыл как в пятом классе все рисовали график арктангенса? Он вообще-то примерно равен 1,5 для положительных чисел, -1,5 для отрицательных, а все промежуточные значения собрались где-то в районе нуля
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
14.12.2019, 18:56
Цитата Сообщение от justhelppls Посмотреть сообщение
Почему при разных заданных входных данных результаты одинаковые? Или, например, задаю Xнач=-1, Xкон=19, dx=1, e=3. Выводит только X=-2,-1
Цитата Сообщение от justhelppls Посмотреть сообщение
думал, что е-это типа кол-во знаков после запятой...
e - это точность, небольшое число, например e=0.01 или e=0.001
Цитата Сообщение от justhelppls Посмотреть сообщение
Точки после цифр-зачем?
если после числа стоит точка - это число типа double. ставится чтобы не заставлять компилятор неявно преобразовывать тип int в double
Цитата Сообщение от justhelppls Посмотреть сообщение
Почему x<=xend+dx/2, а не x<=xend?
из-за особенностей представления в памяти вещественных чисел. если цикл по числам типа double последнее значение xend может не сработать. чтобы таких ситуаций избежать достаточно прибавить небольшое число.
Цитата Сообщение от justhelppls Посмотреть сообщение
an=-1./x; Почему? Откуда?
второе слагаемое ряда
Цитата Сообщение от justhelppls Посмотреть сообщение
Тут разве не строго > должно быть?
не принципиально - Вы всё равно не попадёте на 'е'. можете и строго больше поставить
Цитата Сообщение от justhelppls Посмотреть сообщение
Это,вроде, не похоже на формулу из условия..
уже сообщал:
Цитата Сообщение от Yetty Посмотреть сообщение
при вычислении очередного слагаемого ряда используйте рекуррентные соотношения - каждое последующее слагаемое выражайте через предыдущее
Вы заходили в тему по ссылке ?
0
0 / 0 / 0
Регистрация: 12.10.2019
Сообщений: 29
16.12.2019, 15:05  [ТС]
Вроде бы всё понял. Да, в тему по ссылке заходил. Нашёл её ещё до создания этой темы, просто не сразу всё понял.
Сейчас надо немного про эти рекуррентные соотношения почитать
Большое спасибо!

Добавлено через 20 минут
А нет. Насчёт n остался вопрос.
C++
1
2
 cout << x << "  " << "  " << S << "  " << atan(x) << "  " << n+1 << "\n"; //n-это кол-во суммированных членов ряда,так?
                                                   //
При разных X значение n повторяется, т.е для того, чтобы достичь точности потребовалось одинаковое количество n(количество действий)?
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
16.12.2019, 17:29
justhelppls, Вычисление суммы ряда с определенной точностью eps означает, что сумма ряда вычисляется до тех пор, пока модуль очередного слагаемого больше eps (есть ещё и другое определение)
Цитата Сообщение от justhelppls Посмотреть сообщение
При разных X значение n повторяется, т.е для того, чтобы достичь точности потребовалось одинаковое количество n(количество действий)?
вполне возможно, особенно если значения x не сильно отличаются
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.12.2019, 17:29
Помогаю со студенческими работами здесь

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

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

Вывести таблицу значений функции заданной разложением в ряд Тейлора
Вывести на экран таблицу значений функции Y(x) и ее разложения в ряд S(x) для x, изменяющегося от a до b с шагом h = (b – a)/10,

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

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


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

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