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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
takewa
10 / 7 / 1
Регистрация: 15.08.2010
Сообщений: 372
#1

Ряд тейлора - C++

21.12.2012, 01:19. Просмотров 616. Ответов 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
#include <iostream>
#include <iomanip>
#include <float.h>
#include <math.h>
using namespace std;
void dno()
{                                                                                                                                                                                                                        
    const int MaxIter=500;
    double eps,Xn,Xk,dx;
    cout<<"Xn";cin>>Xn;
    cout<<"Xk";cin>>Xk;
    cout<<"dx";cin>>dx;
    cout<<"eps";cin>>eps;
    cout<<"__________________________________"<<endl;
    cout<<"|"<<setw(5)<<"x"<<"|"<<setw(11)<<"y"<<"|"<<setw(5)<<"n"<<"|"<<setw(5)<<"sin(x)/x"<<"|"<<endl;
    cout<<"__________________________________"<<endl;
    int n=1;
    for(double x=Xn;x<=Xk;x+=dx)
    {
        double ch=-1/x,y=0;
        for(n=0;fabs(ch)>eps&&n<=MaxIter;n++)
        {
            y+=ch;
            ch*=**************;                                                                                                                                                                                                                                                                                  
        }
        cout<<"|"<<setw(5)<<x<<"|"<<setw(11)<<y<<"|"<<setw(5)<<n<<"|"<<setw(5)<<sin(x)/x<<"|"<<endl;
        cout<<"__________________________________"<<endl;
    }
}
int main()
{
    dno();
    return 0;
}
очень прошу помочь с разложением ряда Тейлора, пользовался поиском, все не то оказалось, а то что нашел не айс. после разложения функции в ряд Тейлора, Y и Sin(x)/x должны совпадать!!
Миниатюры
Ряд тейлора  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2012, 01:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ряд тейлора (C++):

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

Вычисление функции через разложение в ряд (Ряд Тейлора) - C++
Привет всем. Задание такого плана: Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора,...

вычислить функцию с помощью разложения в ряд.(Ряд Тейлора) - C++
Нужно написать программу по Ряду Тейлора.

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

Ряд Тейлора - C++
Добрый день. Помогите пожалуйста разобраться с задачей, я просто не могу понять что от меня требуется. &quot;Вычислить и вывести на экран...

ln - ряд Тейлора - C++
double ln(double x, double eps) { double T,S; int K; T=x; K=1; S=T; do{ K=K+1; T=-T*x/K; S=S+T;

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
radamaerl
27 / 6 / 1
Регистрация: 20.12.2012
Сообщений: 39
21.12.2012, 01:45 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
float sum(float x, float eps)
 {
        int i=1;
        s=0;
        elem=1;
        while(fabs(elem)>eps)
        {
            s+=elem;
            elem*=-1*pow(x,2)/((2*i)*(2*i+1));
            i++;
            }
        return s;
        
        }
на через функцию
и читай МатАн, не обязаны совпадать значения, тем более ряд знакопеременный
не проверял но кажется четко
takewa
10 / 7 / 1
Регистрация: 15.08.2010
Сообщений: 372
21.12.2012, 02:30  [ТС] #3
Цитата Сообщение от radamaerl Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
float sum(float x, float eps)
 {
        int i=1;
        s=0;
        elem=1;
        while(fabs(elem)>eps)
        {
            s+=elem;
            elem*=-1*pow(x,2)/((2*i)*(2*i+1));
            i++;
            }
        return s;
        
        }
на через функцию
и читай МатАн, не обязаны совпадать значения, тем более ряд знакопеременный
не проверял но кажется четко
Что то я не особо понял, что тут чем является... если даже брать отдельно -1*pow(x,2)/((2*i)*(2*i+1)) и посдавлять в мой код, эффекту 0.

Не по теме:

мне было намного прощу структуру написать чем Ряд тейлора...

radamaerl
27 / 6 / 1
Регистрация: 20.12.2012
Сообщений: 39
21.12.2012, 11:38 #4
sum это сумма ряда
х это х
eps это эпсилон то есть точность с которой считать ряд (как считать ряд с заданной точностью погугли)
моя функция считает для заданного x значение ряда с заданной точностью
тебе что нужно?
вывести в таблице значения функции посчитанной через ряд и напрямую с каким то шагом для x?

вот пример функции
в примере x=1, eps=0.001
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
#include <cstdlib>
#include <iostream>
#include <math.h>
 
using namespace std;
 
  float sum(float x, float eps)
 {
        int i=1;
        float s=0;
        float elem=1;
        while(fabs(elem)>eps)
        {
            s+=elem;
            elem*=-1*pow(x,2)/((2*i)*(2*i+1));
            i++;
            }
        return s;
        
        }
 
int main(int argc, char *argv[])
{
  
    cout<<sin(1)<<'\n';
    cout<<sum(1,0.001);
    cout << "Press the enter key to continue ...";
    cin.get();
    return EXIT_SUCCESS;
}
значение почти точное, чем меньше эпсилон тем точнее считает ряд
чего у тебя количество членов ряда ограничено 500?
takewa
10 / 7 / 1
Регистрация: 15.08.2010
Сообщений: 372
23.12.2012, 14:45  [ТС] #5
Цитата Сообщение от radamaerl Посмотреть сообщение
sum это сумма ряда
х это х
eps это эпсилон то есть точность с которой считать ряд (как считать ряд с заданной точностью погугли)
моя функция считает для заданного x значение ряда с заданной точностью
тебе что нужно?
вывести в таблице значения функции посчитанной через ряд и напрямую с каким то шагом для x?

вот пример функции
в примере x=1, eps=0.001
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
#include <cstdlib>
#include <iostream>
#include <math.h>
 
using namespace std;
 
  float sum(float x, float eps)
 {
        int i=1;
        float s=0;
        float elem=1;
        while(fabs(elem)>eps)
        {
            s+=elem;
            elem*=-1*pow(x,2)/((2*i)*(2*i+1));
            i++;
            }
        return s;
        
        }
 
int main(int argc, char *argv[])
{
  
    cout<<sin(1)<<'\n';
    cout<<sum(1,0.001);
    cout << "Press the enter key to continue ...";
    cin.get();
    return EXIT_SUCCESS;
}
значение почти точное, чем меньше эпсилон тем точнее считает ряд
чего у тебя количество членов ряда ограничено 500?
Сори что не отвечал долго. Суть решения понял, про члены ряда я хз, на 1ому курсе препод сказал 500 и все) Да с шагом dx

Добавлено через 21 минуту
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
#include <iostream>
#include <iomanip>
#include <float.h>
#include <math.h>
using namespace std;
void dno()
{                                                                                                                                                                                                                        
    const int MaxIter=500;
    double eps,Xn,Xk,dx;
    cout<<"Xn";cin>>Xn;
    cout<<"Xk";cin>>Xk;
    cout<<"dx";cin>>dx;
    cout<<"eps";cin>>eps;
    cout<<"__________________________________"<<endl;
    cout<<"|"<<setw(5)<<"x"<<"|"<<setw(11)<<"y"<<"|"<<setw(5)<<"n"<<"|"<<setw(5)<<"sin(x)/x"<<"|"<<endl;
    cout<<"__________________________________"<<endl;
    int n=1;int i=1;
    for(double x=Xn;x<=Xk;x+=dx)
    {
        double ch=-1/x,y=0;
        for(n=0;fabs(ch)>eps&&n<=MaxIter;n++)
        {
            y+=ch;
            ch*=-1*pow(x,2)/((2*i)*(2*i+1));    
            i++;
        }
        cout<<"|"<<setw(5)<<x<<"|"<<setw(11)<<y<<"|"<<setw(5)<<n<<"|"<<setw(5)<<sin(x)/x<<"|"<<endl;
        cout<<"__________________________________"<<endl;
    }
}
int main()
{
    dno();
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2012, 14:45
Привет! Вот еще темы с ответами:

Ряд тейлора - C++
Не могу написать код правильно Не правильно задаю цикл и не только табулирование для такой функции F(x) =...

Ряд Тейлора С++ - C++
Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от значения х_нач до х_кон с...

Ряд Тейлора - C++
ряд Тейлора

Ряд Тейлора - C++
Помогите пожалуйста с решением задачи: Дано действительное число x. Вычислить значение y с помощью стандартной функции и с помощью...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.12.2012, 14:45
Ответ Создать тему
Опции темы

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