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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
gulllak
44 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 66
25.12.2012, 22:43     Вычисление функции с разложением в ряд Тейлора #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
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
#include "iostream"
#include "iomanip"
#include "cmath"
using namespace std;
void main()
{
    setlocale(0,"rus");
    int n=0;
    float xn,xk,dx,e,sum=0,t=1,PI=3.1415;
    bool prov;
 
    cout<<"Введите Xn";
    cin>>xn;
    cout<<"Введите Xk";
    cin>>xk;
    cout<<"Введите шаг dx";
    cin>>dx;
    cout<<"Погрешность e=";
    cin>>e;
 
    if (xn<-1 ||xn>1 ||xk<-1 ||xk>1 ||e==0)
    {
        cout<<"В связи с ОДЗ: |x|<=1. Введенные значения не могут быть использованы"<<endl;
    }
    else
    {
        cout<<"-----------------------------------------------------------"<<endl;
        cout<<"|Значение X|Значение суммы|Кол-во элементов|"<<endl;
        cout<<"-----------------------------------------------------------"<<endl;
    }
    while (xn<=xk)
    {
        sum=0,t=1;
        n=0;
        prov=false;
        do
        {
            t=(pow(-1.,n+1)*pow(xn,2*n+1))/(2*n+1);
            sum=sum+t;
            n++;
            if (n>=50000) prov=true;
        }
        while (e<=abs(t));
        cout<<"|"<<setw(15)<<xn<<"|"<<setw(15)<<PI/2+sum<<"|"<<setw(15);
        if(prov==false)
        {
            cout<<n;
        }
        else
        {
            cout<<"Ряд расходится";
        }
        ;cout<<"|"<<endl;
        xn=xn+dx;
        cout<<"------------------------------------------------------------------------"<<endl;
        system("pause");
    }
}
Миниатюры
Вычисление функции с разложением в ряд Тейлора  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2012, 22:43     Вычисление функции с разложением в ряд Тейлора
Посмотрите здесь:

C++ Вычисление функций разложением в ряд Тейлора
C++ Вычисление Arctg(x) разложением в ряд Тейлора
Вычисление cosh разложением в ряд Тейлора C++
Вычисление функции разложением в ряд Тейлора C++
C++ Вычисление функций разложением в ряд Тейлора
Вычисление Arsh(x) разложением в ряд Тейлора C++
C++ Вычисление функции cos(x) разложением в ряд Тейлора
C++ Вычисление функции разложением в ряд Тейлора

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asidorchenko
379 / 205 / 25
Регистрация: 09.04.2012
Сообщений: 635
29.12.2012, 00:53     Вычисление функции с разложением в ряд Тейлора #2
По моему вы успешно справились с задачей, так как мне кажется, что функция вычисляется верно.

Правда, цикл while (xn<=xk) нужно наверное поместить внутрь else

И вот это условие
C++
1
if (n>=50000) prov=true;
не имеет смысла...
gulllak
44 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 66
29.12.2012, 01:53  [ТС]     Вычисление функции с разложением в ряд Тейлора #3
Но почему то не хочет работать программа =(
Yandex
Объявления
29.12.2012, 01:53     Вычисление функции с разложением в ряд Тейлора
Ответ Создать тему
Опции темы

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