0 / 0 / 0
Регистрация: 22.09.2019
Сообщений: 2
1

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

26.10.2019, 16:36. Показов 3768. Ответов 0

Author24 — интернет-сервис помощи студентам
Уже 2ую неделю думаю над лабораторной.
Вот текст задания:
Цель работы. Дана функция, заданная бесконечным рядом(реализовать в виде отдельной функции double f(double x, double e) ). Для нахождения значения функции в точке х, необходимо вычислить бесконечную сумму с заданной точностью e. Вычисления прекращаются, когда очередное слагаемое становится по модулю меньше точности.
Необходимо протабулировать функцию в N точках отрезка [A, B]. С клавиатуры вводятся отрезок [A, B] , N (количество точек табулирования) и e (е - точность 0.001 - 0.00001).
Результат вывести на экран в виде таблицы
x F1(x) F2(x)
Реализовать два варианта вычисления функции.
1 вариант. F1(x). Разрешается использовать вспомогательные функции(не из библиотек, а написанные самостоятельно) для возведения в степень, вычисления факториала , модуля.
2 вариант. F2(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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include <iostream>
#include <iomanip>
using namespace std;
 
double power(double x, int k) {
double result = 1;
for (int i = 1; i <= k; i++)
result *= x;
return result;
}
 
int fact2(int k) { // двойной факториал
int result1 = 1, m;
if (k % 2 == 0) {
m = k / 2;
while (m > 0) {
result1 *= k;
k = k - 2;
m = m - 1;
}
}
else {
m = (k + 1) / 2;
while (m > 0) {
result1 *= k;
k = k - 2;
m = m - 1;
}
}
return result1;
}
 
double f1(double x, double eps)
{
int i = 0; double sum = 1, slag = 1;
while (abs(slag) > eps) {
i++;
slag = power(-1, i) * power(x, i) / fact2(i + 2);
sum += slag;
}
return sum;
}
 
double f2(double x, double eps) {
int i = 0; double sum = 1, sum2 = 1, slag = 1, slag1 = 1;
while (abs(slag) > eps && abs(slag1) > eps) {
i++;
if (i % 2 == 0) {
slag *= x / i;
sum += slag;
}
else {
if (i == 1) { slag1 = -x / 3; }
slag1 *= x / i;
sum2 += slag1;
}
}
return sum, sum2;
}
 
int main() {
setlocale(LC_ALL, "Russian");
double A, B, dx, Eps, N;
cout << "Введите отрезок [A,B] в форме A B" << '\n';
cin >> A >> B;
if (A == B) {
cout << "Вы ввели точку,а не отрезок" << '\n';
return 0;
}
cout << "Введете Eps от 0.001 до 0.00001 (Eps-точность)" << '\n';
cin >> Eps;
if (Eps > 0.001 || Eps < 0.00001) {
cout << "Неверно введён Eps" << '\n';
return 0;
}
cout << "Введите N (кол-во точек табулирования) N>0" << '\n';
cin >> N;
if (N < 1) {
cout << "Вы ввели N<0" << '\n';
return 0;
}
dx = (B - A) / (N - 1);
double m = N;
double z = A - dx;
cout « "F1(x)" << "\t" << "F2(x)" << '\n';
while (m > 0) {
z += dx;
cout << f1(z, Eps) << "\t" << f2(z, Eps) << '\n';
m--;
}
system("pause");
return 0;
}
Но выдаёт разные ответы, я не понимаю в чём ошибка.
Вложение 1077984
Изображения
 
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.10.2019, 16:36
Ответы с готовыми решениями:

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

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

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

Вывести таблицу значений функции заданной разложением в ряд Тейлора
Вычислить и вывести на экран значение функции F(x) на отрезке с шагом h=0.1 и точностью s. ...

0
26.10.2019, 16:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.10.2019, 16:36
Помогаю со студенческими работами здесь

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

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

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru