Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.94/31: Рейтинг темы: голосов - 31, средняя оценка - 4.94
brony
0 / 0 / 1
Регистрация: 19.11.2012
Сообщений: 6
1

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

19.11.2012, 18:10. Просмотров 6218. Ответов 9
Метки нет (Все метки)

Привет всем.

Задание такого плана:
Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от Xнач до Xкон с шагом dx с точностью ε. Таблицу снабдить заголовком и шапкой. Каждая строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряда

Собрал с миру по нитке, что в итоге привело к такой вот штуке:
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 <stdio.h>
#include <math.h>
using namespace std;
const int Maximum=10;
double Func(double x)
{
        return cos(x);
}
int fact(int i)
{
    return !i ? 1 : i * fact(i - 1);
  }
  int main()
{
        setlocale(LC_ALL,"Russian");
        double x;
        cout<<"Введите начальный аргумент ряда Тейлора:\n";
        cin>>x;
        double Function=1,Summ=Function;
        for(int i=1;i<=Maximum;i++)
        {
                Function*=pow(-1, i)*pow(x,2*i)/fact(2*i);
                Summ+=Function;
                cout<<"\nСумма равна="<<Summ<<"\nСравним ее со значением функции косинус:\nF="<<Func(x);
        }
        getchar();
}
Не совсем понимаю, правильно ли я собрал всё воедино и правильно ли вообще, надеюсь, что вы меня пофиксите, желательно с объяснением.
0
Миниатюры
Вычисление функции через разложение в ряд (Ряд Тейлора)  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2012, 18:10
Ответы с готовыми решениями:

Рекурсия. Найти значение функции через разложение в ряд Тейлора
Собственно, сабж. Есть функция cos^2(x), которую я хочу разложить в ряд...

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

Вычисление приближенного значения tan(x) через ряд Тейлора/ряд Маклорена
Привет, CF. Задача: Вычисление приближенного значения tan(x) через ряд...

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

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

9
XRuZzz
Антикодер
1511 / 687 / 37
Регистрация: 15.09.2012
Сообщений: 2,719
19.11.2012, 19:23 2
ну как бы направление у вас правильное, но она не работает )

Добавлено через 9 минут
лано... не буду мучать
во первых надо исправить строку
C++
1
Function=pow(-1, i)*pow(x,2*i)/fact(2*i);
во вторых нужно учитывать точность

чтобы вам было проще напишу вам основной сценарий пользователя:
пользователь сообщает программе исходные данные (Xнач, Xкон, шаг dx, точность ε)
программа подтверждает полученные данные и сообщает результат вычислений(и забейте на таблицу, как вы выводите результат -не важно, если пользователь получил то, что хотел)
0
Afflicted
Обитатель форума
199 / 182 / 54
Регистрация: 28.10.2012
Сообщений: 543
19.11.2012, 19:25 3
Цитата Сообщение от XRuZzz Посмотреть сообщение
Function=pow(-1, i)*pow(x,2*i)/fact(2*i);
XRuZzz, зачем ее исправлять? Она правильно записана. По коду к переменной Function доуножается значение...
0
XRuZzz
Антикодер
1511 / 687 / 37
Регистрация: 15.09.2012
Сообщений: 2,719
19.11.2012, 19:30 4
По коду к переменной Function доуножается значение...
а по формуле?
а зачем оно доумножается, я не понимаю =/
0
brony
0 / 0 / 1
Регистрация: 19.11.2012
Сообщений: 6
19.11.2012, 19:30  [ТС] 5
Цитата Сообщение от XRuZzz Посмотреть сообщение
во первых надо исправить строку
Вы имеете в виду скобки?
C++
1
Function=(pow(-1, i)*pow(x,2*i))/fact(2*i);
Так? Или как? :/
Цитата Сообщение от XRuZzz Посмотреть сообщение
во вторых нужно учитывать точность
Каким образом? Что надо сравнивать относительно неё?
0
XRuZzz
Антикодер
1511 / 687 / 37
Регистрация: 15.09.2012
Сообщений: 2,719
19.11.2012, 19:54 6
лано я пас, но без * она лучше совпадает с результатом
C++
1
2
3
4
double Func(double x)
{
        return cos(x);
}
вы прочитайте, что я вам написал
пользователь сообщает программе исходные данные (Xнач, Xкон, шаг dx, точность ε)
ваша программа позволяет сообщить ей точность ε?
0
brony
0 / 0 / 1
Регистрация: 19.11.2012
Сообщений: 6
19.11.2012, 20:32  [ТС] 7
Цитата Сообщение от XRuZzz Посмотреть сообщение
пользователь сообщает программе исходные данные
То есть надо реализовать что-то вроде:
C++
1
2
3
4
cout<<"Введите X[SUB]нач[/SUB]:\n";
cin>>x1;
cout<<"Введите X[SUB]кон[/SUB]";
cin>>x2;
и так далее, включая с точностью, да?
0
XRuZzz
Антикодер
1511 / 687 / 37
Регистрация: 15.09.2012
Сообщений: 2,719
19.11.2012, 22:22 8
ну, а вы представьте се пользователя, который будет пользоваться вашей программой, какая у него будет при этом цель?
0
pozitiv89
1 / 1 / 0
Регистрация: 20.11.2013
Сообщений: 44
03.12.2013, 23:58 9
ну так что программка заработала? какой конечный код у вас получился?
0
ermilow03
0 / 0 / 0
Регистрация: 17.01.2018
Сообщений: 3
17.01.2018, 19:03 10
brony, Какой в итоге получился код? Можете показать?
0
17.01.2018, 19:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2018, 19:03

Разложение функции в ряд Тейлора
Дано вещественное число X(|X|&lt;1) и целое число N(N&gt;0). Найти значение...

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru