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

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

06.02.2017, 20:37. Показов 1266. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Для каждого x, изменяющегося от a до b с шагом h, найти значения функции Y(x), суммы S(x) и |Y(x)–S(x)| и вывести в виде таблицы. Значения a, b, h и n вводятся с клавиатуры. Так как значение S(x) является рядом разложения функции Y(x), при правильном решении значения S и Y для заданного аргумента x (для тестовых значений исходных данных) должны совпадать в целой части и в первых двух-четырех позициях после десятичной точки.
Работу программы проверить для a = 0,1; b = 1,0; h = 0,1; значение параметра n выбрать в зависимости от задания.
Миниатюры
Вычисление значений функции разложением в ряд Тейлора  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.02.2017, 20:37
Ответы с готовыми решениями:

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

Вычисление значений функции разложением в ряд Тейлора
Дано вещественное число X (|X| < 1) и целое число N > 0. Написать функцию для вычисления суммы Σ = x - x2/2 + x3/3 - ... +...

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

13
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
06.02.2017, 20:56
Что за n? Что такое a, b, h, разве это не k и n на рисунках? Причём тут Y(x) и что за таблица? Объясните подробно чтобы я понял что от меня требуется
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
06.02.2017, 21:32
Y(x) - это функция, заданная аналитически. S(x) - это ее приближение с помощью частичной суммы ряда Тейлора. Их значения должны быть близки с точностью до 0.01 - 0.0001
a, b - границы интервала, h - шаг вычислений (т.е надо вычислить обе функции в точках a, a+h, a+2h ... b)
k - номер члена ряда, n - количество членов ряда
Стандартная задача по вычислительному анализу. И обозначения все стандартные.
1
63 / 63 / 39
Регистрация: 18.11.2016
Сообщений: 562
06.02.2017, 21:41
Соглашусь, вопрос поставлен не очень корректно.
Но все же, если я правильно понял, вы хотите получить код первой производной.
Ну что же, давайте попробуем (сразу скажу, не проверял работоспособность. Поздно, спать хочу)
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
#include <iostream>
#include <cmath>
    using namespace std;
 
        int func1 (int *f1, int *f2, int *f3); // Пока оставим здесь.
 
 
        int main (){
 
            double x (12), // Данная переменная отвечает за введенное число пользователем.
            double k (1), n (3); // Переменные отвечают за нижний и верхний предел алгебраической суммы.
            double r (0), e(0), d(0), r(1); // Временные переменные.
            
            /*
                Далее идет выражение, где индекс "к", будет возраста от нижнего предела до заданного пользователем верхнего предела.
             func1 (&x, &k, &n); Передаем параметры функции выше. Кстати, как правильно её называть? */
 
            // Создаем цикл.
            for (int i(0); i!=n; i++){
            
                d = pow((-1),(k+i)); // Возводим слагаемое в степень.
                e = pow((2*x),(k+i)); // Возводим числитель в степень.
                d = 2*(k+i); // находим факториал.
 
                // Создаем новый цикл для поиска факториала числа.
                for (int i(1); i<=d; i++){
                    r *= i; // Знаменатель
                }
            // Выводим полученный результат.
                cout << "Значение функции: " << d *(e/r) << endl;
 
            }
    
            system ("pause");
            return 0;
 
        }
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
06.02.2017, 21:44
Photofenix, Так и не понял, какое отношение ваш текст и код имеют к поставленной задаче.
0
63 / 63 / 39
Регистрация: 18.11.2016
Сообщений: 562
06.02.2017, 21:57
Цитата Сообщение от Байт Посмотреть сообщение
Photofenix, Так и не понял, какое отношение ваш текст и код имеют к поставленной задаче.
Честно говоря, я сам не понял
Какой вопрос, такой ответ
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,243
06.02.2017, 22:31
Посмотрите Вычисление функций разложением в ряд Тейлора
и ссылки внизу страницы
0
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
07.02.2017, 11:41
Вчера столько колбасился с этим заданием, но решить получилось! |Y(x)–S(x)|<0.1 у меня правильно выводит но вот с Y(x) проблема, почему то (не знаю почему) с каждым шагом x (for(x=a;x<=b;x+=h)) значение Y(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
#include <bits/stdc++.h>
 
using namespace std;
 
int main()
{
        double a,b,x,h,r,s,j;
        double y,rezultat,i;
        int n,zn=-1,za,k;
        cin>>a>>b>>h>>n;
        for(x=a;x<=b;x+=h){
                i=1,s=0;r=1;y=1;
                for(k=1;k<=n;k++){
                        i=2*k*i;
                        za=pow(zn,k);
                        j=(pow(2*x,2*k));
                        r=za*j/i;
                        s+=r;
                        //cout<<s<<endl;
                        //cout<<" s="<<s<<" ";
                        //cout<<" y="<<y<<" ";
                }
                cout<<endl;
               y=2*(pow(cos(x),2)-1);
                //cout<<" y="<<y<<" ";
                rezultat=abs(y-s);
                printf("\n rezultat= %.4f",rezultat);
                //printf("\n s= %8.5lf   y= %8.5lf", s,y);
        }
        puts("\nPress any key ... ");
        return 0;
}
Добавлено через 3 минуты
А нет, уравнение |Y(x)–S(x)|<0.1 начиная с 5 шага не выполняется.
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
07.02.2017, 12:15
no swear, На взгляд ошибок не видно. А math.h подключен? Я просто не знаю, что там в stdc++ содержится.
А какие данные вводите?
По коду пару чисто эстетических замечаний. Я когда вижу pow(x, 2) - нехорошо мне становится. Не проще ли x*x ? И быстрее посчитает, и писать меньше, и хлопот меньше со всякими перегрузками в VS, и подключаемых хедерах думать не надо!

Добавлено через 2 минуты
no swear, кажись нашел ошибочку в арифметике. Строчка 14.
C++
1
i = 2*k*(2*k-1)*i;
0
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
07.02.2017, 22:25
Цитата Сообщение от Байт Посмотреть сообщение
А math.h подключен? Я просто не знаю, что там в stdc++ содержится
Вроде бы (bits/stdc++.h) включает все библиотеки в C++ и math.h тоже.
Цитата Сообщение от Байт Посмотреть сообщение
А какие данные вводите?
a = 0,1; b = 1,0; h = 0,1; n = 10;
Цитата Сообщение от Байт Посмотреть сообщение
По коду пару чисто эстетических замечаний
Свой код надо было ещё красиво оформить а я поспешил думал решил задачку и выложил сюда. Сейчас работаю над понятным оформлением программы.
Цитата Сообщение от Байт Посмотреть сообщение
кажись нашел ошибочку в арифметике. Строчка 14
Ой, да вы просто ГЕНИЙ!
Скажите пожалуйста почему вы так написали
C++
1
i = 2*k*(2*k-1)*i;
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
07.02.2017, 22:38
Цитата Сообщение от no swear Посмотреть сообщение
почему вы так написали
Что-то непонятно? Или как это мне пришло в голову? На этот вопрос вы ответили сами
Цитата Сообщение от no swear Посмотреть сообщение
вы просто ГЕНИЙ!


Добавлено через 4 минуты
Цитата Сообщение от Байт Посмотреть сообщение
как это мне пришло в голову?
Просто посмотрел, чем очередной член отличается от предыдущего. А когда в этом еще не очень ориентируешься, полезно выписать несколько первых членов. То есть писать эти члены до тех пор, пока петух в голову не клюнет. А в этом году он клюет неплохо.
0
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
07.02.2017, 22:49
А мне петух тока щас в голову клюнул, когда я взял ручку и бумагу
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
07.02.2017, 22:52
Цитата Сообщение от no swear Посмотреть сообщение
когда я взял ручку и бумагу
Во-во! Китайцы-то не зря бумагу придумали!
0
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
07.02.2017, 22:59
И опять же я не смогу с вами не согласиться
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.02.2017, 22:59
Помогаю со студенческими работами здесь

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

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

Вычисление функции разложением в ряд Тейлора
написал программу для этой формулы. Скажите правильно ли я написал ее. Если нет, то можете написать правильную :) #include...

Вычисление функции разложением в ряд Тейлора
Заданы x(abs(x)&lt;1) и точность вычислений eps. Вычислить сумму: s=x-x^2/2+X^2/3-...+(-1)^(n-1) *x^n/n+... Проверка y=ln(1+x).

Вычисление функции разложением в ряд Тейлора
Дано вещественное число X и целое число N (&gt; 0). Найти значение выражения X − X3/(3!) + X5/(5!) − … + (−1)N·X2·N+1/((2·N+1)!)...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru