Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 35, средняя оценка - 4.66
brony
0 / 0 / 0
Регистрация: 19.11.2012
Сообщений: 6
19.11.2012, 18:10     Вычисление функции через разложение в ряд (Ряд Тейлора) #1
Привет всем.

Задание такого плана:
Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от 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();
}
Не совсем понимаю, правильно ли я собрал всё воедино и правильно ли вообще, надеюсь, что вы меня пофиксите, желательно с объяснением.
Миниатюры
Вычисление функции через разложение в ряд (Ряд Тейлора)  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2012, 18:10     Вычисление функции через разложение в ряд (Ряд Тейлора)
Посмотрите здесь:

C++ Как вычислить значение функции используя разложение cos в ряд Тейлора???
C++ Вычислить значение arcsin x через разложение в ряд Тейлора
Разложение функции в ряд Тейлора C++
Дано разложение функции в ряд Тейлора. Вычислить для значения x и точности Eps точное значение функции C++
C++ Вычислить и вывести значение функции через разложение в ряд Тейлора
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
19.11.2012, 19:23     Вычисление функции через разложение в ряд (Ряд Тейлора) #2
ну как бы направление у вас правильное, но она не работает )

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

чтобы вам было проще напишу вам основной сценарий пользователя:
пользователь сообщает программе исходные данные (Xнач, Xкон, шаг dx, точность ε)
программа подтверждает полученные данные и сообщает результат вычислений(и забейте на таблицу, как вы выводите результат -не важно, если пользователь получил то, что хотел)
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
19.11.2012, 19:25     Вычисление функции через разложение в ряд (Ряд Тейлора) #3
Цитата Сообщение от XRuZzz Посмотреть сообщение
Function=pow(-1, i)*pow(x,2*i)/fact(2*i);
XRuZzz, зачем ее исправлять? Она правильно записана. По коду к переменной Function доуножается значение...
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
19.11.2012, 19:30     Вычисление функции через разложение в ряд (Ряд Тейлора) #4
По коду к переменной Function доуножается значение...
а по формуле?
а зачем оно доумножается, я не понимаю =/
brony
0 / 0 / 0
Регистрация: 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 Посмотреть сообщение
во вторых нужно учитывать точность
Каким образом? Что надо сравнивать относительно неё?
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
19.11.2012, 19:54     Вычисление функции через разложение в ряд (Ряд Тейлора) #6
лано я пас, но без * она лучше совпадает с результатом
C++
1
2
3
4
double Func(double x)
{
        return cos(x);
}
вы прочитайте, что я вам написал
пользователь сообщает программе исходные данные (Xнач, Xкон, шаг dx, точность ε)
ваша программа позволяет сообщить ей точность ε?
brony
0 / 0 / 0
Регистрация: 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;
и так далее, включая с точностью, да?
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
19.11.2012, 22:22     Вычисление функции через разложение в ряд (Ряд Тейлора) #8
ну, а вы представьте се пользователя, который будет пользоваться вашей программой, какая у него будет при этом цель?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2013, 23:58     Вычисление функции через разложение в ряд (Ряд Тейлора)
Еще ссылки по теме:

Рекурсия. Найти значение функции через разложение в ряд Тейлора C++
Разложение функции в ряд Тейлора C++
C++ Разложение функции в ряд Тейлора

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

Или воспользуйтесь поиском по форуму:
pozitiv89
0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 44
03.12.2013, 23:58     Вычисление функции через разложение в ряд (Ряд Тейлора) #9
ну так что программка заработала? какой конечный код у вас получился?
Yandex
Объявления
03.12.2013, 23:58     Вычисление функции через разложение в ряд (Ряд Тейлора)
Ответ Создать тему
Опции темы

Текущее время: 15:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru