0 / 0 / 0
Регистрация: 11.09.2018
Сообщений: 57

Протабулировать функцию, заданную в виде ряда Тейлора

20.09.2018, 19:26. Показов 1265. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите как составить программу для приближенного вычисления значения функции Y (x) в точке 0 <| х | <1 с помощью
разложения в ряд Тейлора S (x). Найти приближенное значение функции с погрешностью менее ε <0,0001. Значение x и ε
вводить с клавиатуры. Вывести на экран точное значение Y (x), найденное приближенное значение S (x) и полученную
погрешность | S (x) - Y (x) |.
Миниатюры
Протабулировать функцию, заданную в виде ряда Тейлора  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.09.2018, 19:26
Ответы с готовыми решениями:

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

Протабулировать на заданном отрезке функцию, заданную разложением в ряд Тейлора
С помощью операторов цикла, протабулировать на отрезке от А до В с области определения функции, заданную разложением в ряд Тейлора: ...

Протабулировать заданную функцию
Протабулировать заданную функцию y = f(x) на промежутке с постоянным шагом h. интервал =; шаг h=0.1; система уравнений (х-1)^4 и...

8
Модератор
Эксперт С++
 Аватар для zss
13765 / 10960 / 6489
Регистрация: 18.12.2011
Сообщений: 29,228
20.09.2018, 19:52
Вычисление функций разложением в ряд Тейлора
0
0 / 0 / 0
Регистрация: 11.09.2018
Сообщений: 57
23.09.2018, 11:34  [ТС]
Я начала работать, но получается что-то совсем не то
подскажите что и где не так сделала
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
#include <iostream>
#include <cmath>
using namespace std;
//----------------------------------------------------------------
// описание функции
double mysin(double x, double eps)
{
    int k=0;
    double ak = x;
    double sum = 0;
    while (fabs(ak)>eps)
    {
          sum += ak;
          ak *= x / (k + 1.)*k;
           k++;
    }
    return (-sum);
 }
//-----------------------------------------------------------------
int main()
{
    setlocale(LC_ALL, "ukr");
    const int max = 500;
    double Xn, Xk, dX, x, eps, sum, n;
    int c;
    bool done;
    cout << "Введіть Xn" << endl;
    cin >> Xn;
    cout << "Введіть Xk" << endl;
    cin >> Xk;
    cout << "Введіть крок dX" << endl;
    cin >> dX;
    cout << "Введіть точність e" << endl;
    cin >> eps;
    cout << "Таблиця значень" << endl;
    cout << "----------------------" << endl;
    cout << "|X|Значення функції" << endl;
    cout << "------------------" << endl;
    for (double x = Xn; x <= Xk; x += dX)
    {
            double y=mysin(x, eps); // вызов функции
            double y2=sin(x);
            cout << x << "\t" << y << " \t " << y2 << endl;
    }
    system("pause");
    return 0;
}
0
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,304
23.09.2018, 13:08
Проверяйте:
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
#include <iostream>
#include <cmath>
using namespace std;
//----------------------------------------------------------------
// описание функции
double mysin(double x, double eps)
{
    int k = 1;
    double ak = x;
    double sum = 0.0;
    while (fabs(ak)<eps)
    {
        sum += ak;
        ak *= - x*x / (2.*k - 1.0) / (2.0*k - 2.0);
        k++;
    }
    return sum;
}
//-----------------------------------------------------------------
int main()
{
    
    const int max = 500;
    double Xn, Xk, dX, x, eps, sum;
    int k;
    bool done;
    cout << "Enter Xn: " << endl;
    cin >> Xn;
    cout << "Enter Xk: " << endl;
    cin >> Xk;
    cout << "Enter step dX: " << endl;
    cin >> dX;
    cout << "Enter precision e: " << endl;
    cin >> eps;
    cout << "Table value: " << endl;
    cout << "----------------------" << endl;
    cout << "|X|Function value: " << endl;
    cout << "------------------" << endl;
    for (double x = Xn; x <= Xk; x += dX)
    {
        double y = mysin(x, eps); // вызов функции
        double y2 = sin(x);
        cout << x << "\t" << y << " \t " << y2 << endl;
    }
    system("pause");
    return 0;
}
Добавлено через 22 минуты
Вот исправил формулу вычисления:
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
#include <iostream>
#include <cmath>
using namespace std;
//----------------------------------------------------------------
// описание функции
double mysin(double x, double eps)
{
    int k = 1;
    double ak = x;
    double sum = 0.0;
    while (fabs(ak)<eps)
    {
        sum += ak;
        ak *= - x *  2.*k  / (2.0*k + 1.0);
        k++;
    }
    return sum;
}
//-----------------------------------------------------------------
int main()
{
    
    const int max = 500;
    double Xn, Xk, dX, x, eps, sum;
    int k;
    bool done;
    cout << "Enter Xn: " << endl;
    cin >> Xn;
    cout << "Enter Xk: " << endl;
    cin >> Xk;
    cout << "Enter step dX: " << endl;
    cin >> dX;
    cout << "Enter precision e: " << endl;
    cin >> eps;
    cout << "Table value: " << endl;
    cout << "----------------------" << endl;
    cout << "|X|Function value: " << endl;
    cout << "------------------" << endl;
    for (double x = Xn; x <= Xk; x += dX)
    {
        double y = mysin(x, eps); // вызов функции
        double y2 = sin(x);
        cout << x << "\t" << y << " \t " << y2 << endl;
    }
    system("pause");
    return 0;
}
Добавлено через 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
#include <iostream>
#include <cmath>
using namespace std;
//----------------------------------------------------------------
// описание функции
double mysin(double x, double eps)
{
    int k = 1;
    double ak = x;
    double sum = 0.0;
    while (fabs(ak)>eps)
    {
        sum += ak;
        ak *= - x *  2.*k  / (2.0*k + 1.0);
        k++;
    }
    return sum;
}
//-----------------------------------------------------------------
int main()
{
    
    const int max = 500;
    double Xn, Xk, dX, x, eps, sum;
    int k;
    bool done;
    cout << "Enter Xn: " << endl;
    cin >> Xn;
    cout << "Enter Xk: " << endl;
    cin >> Xk;
    cout << "Enter step dX: " << endl;
    cin >> dX;
    cout << "Enter precision e: " << endl;
    cin >> eps;
    cout << "Table value: " << endl;
    cout << "----------------------" << endl;
    cout << "|X|Function value: " << endl;
    cout << "------------------" << endl;
    for (double x = Xn; x <= Xk; x += dX)
    {
        double y = mysin(x, eps); // вызов функции
        double y2 = sin(x);
        cout << x << "\t" << y << " \t " << y2 << endl;
    }
    system("pause");
    return 0;
}
0
0 / 0 / 0
Регистрация: 11.09.2018
Сообщений: 57
23.09.2018, 14:59  [ТС]
Спасибо)
но как раз проблема в том, что программа не выводить у, как должна, и не могу понять в чем проблема
Миниатюры
Протабулировать функцию, заданную в виде ряда Тейлора  
0
Модератор
Эксперт С++
 Аватар для zss
13765 / 10960 / 6489
Регистрация: 18.12.2011
Сообщений: 29,228
23.09.2018, 15:17
Xn введено большее, чем Xk
Чего же Вы хотите?
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
23.09.2018, 15:45
Ксюша12, isaak, zss, почему решили что нужно что-то табулировать ?
вот условие задачи:
Цитата Сообщение от Ксюша12 Посмотреть сообщение
составить программу для приближенного вычисления значения функции Y (x) в точке 0 <| х | <1 с помощью разложения в ряд Тейлора S (x). Найти приближенное значение функции с погрешностью менее ε <0,0001. Значение x и ε вводить с клавиатуры. Вывести на экран точное значение Y (x), найденное приближенное значение S (x) и полученную погрешность | S (x) - 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
33
34
35
36
37
38
39
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
 
int main()
{    
    double x, eps;
    
    do
    {
    cout <<"x="; cin >> x;
    if (x<=-1 || x>=1 || x==0) cout <<"0<|x|<1, Repeat please...\n";
    }
    while (x<=-1 || x>=1|| x==0);
    
    do
    {
    cout <<"eps="; cin >> eps;
    if (eps<=0 || eps>=1) cout <<"0<eps<1, Repeat please...\n";
    }
    while (eps<=0 || eps>=1);
    
    double an=x, S=x, Y=sin(x);
    
    
    int n=1;    
    cout << setprecision(7) << fixed<<"  Y="<<Y<<endl;   
    while(fabs(S-Y)>=eps)    
    {     
          an*=-x*x/(2*n*(2*n+1)); 
          S+=an;         
          n++;
    } 
    cout <<"  S="<<S<<endl;
    cout <<"|S-Y|="<<fabs(S-Y)<<endl;
system("pause");
return 0;
}
0
Модератор
Эксперт С++
 Аватар для zss
13765 / 10960 / 6489
Регистрация: 18.12.2011
Сообщений: 29,228
23.09.2018, 15:57
Я ничего не решал, название темы оригинальное от ТС.
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
23.09.2018, 16:18
isaak, интересно, что по замыслу формула считала ( первое к=1 )
Цитата Сообщение от isaak Посмотреть сообщение
ak *= - x*x / (2.*k - 1.0) / (2.0*k - 2.0);
и слагаемые какого ряда начала находить ?
Цитата Сообщение от isaak Посмотреть сообщение
исправил формулу вычисления
Цитата Сообщение от isaak Посмотреть сообщение
ak *= - x * 2.*k / (2.0*k + 1.0);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.09.2018, 16:18
Помогаю со студенческими работами здесь

Протабулировать заданную функцию
Здравствуйте, задание такое: протабулировать функцию, если хЭ (-2;3), а уэ (0;3) с шагом обеих переменных 0.2. Работать то работает, но...

Протабулировать функцию (ряд Тейлора) С++
Нужно протабулировать функцию, заданную расписанием в ряд Тейлора(см. ниже), в области ее определения на отрезке от А до Б (количество...

Протабулировать заданную функцию на интервале с шагом h
напишите программу для решения следующей задачи.Протабулировать функцию f(x) на интервалес шагом ℎ. Вывести значения x и y.

Протабулировать и вывести функцию y=sin(x)+1 в виде одномерного массива
Прошу подскажите! Как протабулировать и вывести функцию y=sin(x)+1 в виде одномерного масива?

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


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

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

Новые блоги и статьи
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
PowerShell и онлайн сервисы. Валюта (floatrates.com руб.)
iNNOKENTIY21 11.11.2025
PowerShell функция floatrates-rub Примеры вызова: # Указанная валюта 'EUR' floatrates-rub -Code 'EUR' # Список имеющихся кодов валют floatrates-rub -Available function floatrates-rub {
PowerShell и онлайн сервисы. Погода (RP5.ru)
iNNOKENTIY21 11.11.2025
PowerShell функция Get-WeatherRP5rss для получения погоды с сервиса RP5 Примеры вызова Get-WeatherRP5rss с указанием id 5484 — Москва (восток, Измайлово) и переносом строки:. . .
PowerShell и онлайн сервисы. Погода (wttr)
iNNOKENTIY21 11.11.2025
PowerShell Функция для получения погоды с сервиса wttr Примеры вызова: Погода в городе Омск с прогнозом на день, можно изменить прогноз на более дней, для этого надо поменять запрос:. . .
PowerShell и онлайн сервисы. Валюта (ЦБР)
iNNOKENTIY21 11.11.2025
# Получение курса валют function cbr (] $Valutes = @('USD', 'EUR', 'CNY')) { $url = 'https:/ / www. cbr-xml-daily. ru/ daily_json. js' $data = Invoke-RestMethod -Uri $url $esc = 27 . . .
И решил я переделать этот ноут в машину для распределенных вычислений
Programma_Boinc 09.11.2025
И решил я переделать этот ноут в машину для распределенных вычислений Всем привет. А вот мой компьютер, переделанный из ноутбука. Был у меня ноут асус 2011 года. Со временем корпус превратился. . .
Мысли в слух
kumehtar 07.11.2025
Заметил среди людей, что по-настоящему верная дружба бывает между теми, с кем нечего делить.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru