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

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

Войти
Регистрация
Восстановить пароль
 
lolopop12
0 / 0 / 0
Регистрация: 20.01.2016
Сообщений: 44
#1

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

12.09.2016, 10:00. Просмотров 210. Ответов 11
Метки нет (Все метки)

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

Пример подобного задания:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;
 
int main(){
    float /*double*/ x,y1,y2,a;
    int n;
    cout<<"Enter x = "; cin>>x;
    cout<<"Enter n = "; cin>>n;
    y1=x*x*x*atan(x);
    if(x<=1){
        a=x*x*x*x; y2=a;
        for(int i=2; i<=n; i++){
                a= a*(-1)*x*x/(2*i-1);
                y2= y2+a;
                }
        cout<<"y1 = "<<y1<<endl;
        cout<<"y2 = "<<y2<<endl;
    }
    else cout<<"Error: you have a condition x<=1"<<endl;
    system("pause");
}
Миниатюры
Вычислить функцию с помощью разложения в ряд (число членов ряда и значение аргумента ввести с консоли)  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.09.2016, 10:00     Вычислить функцию с помощью разложения в ряд (число членов ряда и значение аргумента ввести с консоли)
Посмотрите здесь:
вычислить функцию с помощью разложения в ряд.(Ряд Тейлора) C++
Вычислить значение функции с помощью разложения в ряд Тейлора C++
Помогите вычислить функции с помощью разложения в ряд! C++
C++ Вычислить с помощью разложения в ряд (программа с таблицами не работает)
Найти значение функции c заданной точностью с помощью разложения в ряд Тейлора C++
C++ Вычислить сумму первых N членов ряда, значения N и x ввести с клавиатуры
Вычислить сумму первых N членов ряда, значения N и x ввести с клавиатуры C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lolopop12
0 / 0 / 0
Регистрация: 20.01.2016
Сообщений: 44
13.09.2016, 14:46  [ТС]     Вычислить функцию с помощью разложения в ряд (число членов ряда и значение аргумента ввести с консоли) #2
Прошу помощи экспертов, у меня затруднения
SpBerkut
Объявлятель переменных
908 / 234 / 113
Регистрация: 24.09.2011
Сообщений: 875
Завершенные тесты: 2
13.09.2016, 15:21     Вычислить функцию с помощью разложения в ряд (число членов ряда и значение аргумента ввести с консоли) #3
Я не доктор эксперт, но посмотреть могу.
C++
1
2
3
4
5
6
7
8
9
10
11
#include<iostream>
#include<cmath>
 
using namespace std;
 
int main(){
    double item = 1, sum = 1, x = 12; //x сам введёшь
    int n = 1000; //n — тоже
    for (int i=1;i<=n;sum+=item=-item*x/(2*i++));
    cout << sum << endl << exp(-x/2);
}
WalterWhile
1 / 1 / 0
Регистрация: 30.01.2016
Сообщений: 6
Завершенные тесты: 1
13.09.2016, 15:25     Вычислить функцию с помощью разложения в ряд (число членов ряда и значение аргумента ввести с консоли) #4
Если реализовывать именно это разложение, с факториалом, то вычисление факториала от n>20 невозможно с использованием базовых типов, так что, значение n должно быть от 1 до 20.
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
#include <iostream>
#include <math.h>
using namespace std;
 
long long factorial (int x)
{
    long long result=1;
    for(int i=1; i<=x; i++)
        result*=i;
    return result;
}
double func (double x, int n)
{
    double result=0;
    for(int i=0; i<n; i++)
    {
        result+=(1-2*(i%2))*pow(x, i)/(pow(2,i)*factorial(i));
    }
    return result;
}
 
int main()
{
    int n;
    double x;
    cout<<"n=";
    cin>>n;
    if(n>20||n<=0){
        cout<<"Incorrect value of n";
        return -1;
    }
    cout<<"x=";
    cin>>x;
    cout<<"f(x)="<<func(x, n)<<endl;
    cin>>x;
    return 0;
}
SpBerkut
Объявлятель переменных
908 / 234 / 113
Регистрация: 24.09.2011
Сообщений: 875
Завершенные тесты: 2
13.09.2016, 15:28     Вычислить функцию с помощью разложения в ряд (число членов ряда и значение аргумента ввести с консоли) #5
Цитата Сообщение от WalterWhile Посмотреть сообщение
вычисление факториала от n>20 невозможно с использованием базовых типов
Да ладно. Никто не просит вычислять факториал.
WalterWhile
1 / 1 / 0
Регистрация: 30.01.2016
Сообщений: 6
Завершенные тесты: 1
13.09.2016, 15:35     Вычислить функцию с помощью разложения в ряд (число членов ряда и значение аргумента ввести с консоли) #6
Цитата Сообщение от SpBerkut Посмотреть сообщение
Да ладно. Никто не просит вычислять факториал.
В формуле, что фигурирует в прикрепленном изображении, факториал присутствует. А реализовать надо разложение именно по этой формуле, как я понимаю, не упрощая и не меняя ее. Задание-то по программированию, а не по матану.
SpBerkut
Объявлятель переменных
908 / 234 / 113
Регистрация: 24.09.2011
Сообщений: 875
Завершенные тесты: 2
13.09.2016, 15:37     Вычислить функцию с помощью разложения в ряд (число членов ряда и значение аргумента ввести с консоли) #7
Цитата Сообщение от WalterWhile Посмотреть сообщение
А реализовать надо разложение именно по этой формуле, как я понимаю, не упрощая и не меняя ее.
Реализуйте разложение для x = 32.
JokeR.BY
CAPITAL OF ROCK!
1271 / 698 / 572
Регистрация: 03.03.2010
Сообщений: 2,282
Завершенные тесты: 2
13.09.2016, 15:44     Вычислить функцию с помощью разложения в ряд (число членов ряда и значение аргумента ввести с консоли) #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cmath>
 
using namespace std;
 
const float EPS = 0.001;
 
int main()
{
    float x;
    cout << "Input x=";
    cin >> x;
    double sum = 0.0, si = -x / 2.0;
    unsigned int i = 1;
    while (abs(si) > EPS)
    {
        sum += si;
        si *= (-x / 2.0 / ++i);
        //cout << i << "   " << si << endl;
    }
    cout << "sum=" << sum << endl;
    return 0;
}
SpBerkut
Объявлятель переменных
908 / 234 / 113
Регистрация: 24.09.2011
Сообщений: 875
Завершенные тесты: 2
13.09.2016, 15:46     Вычислить функцию с помощью разложения в ряд (число членов ряда и значение аргумента ввести с консоли) #9
JokeR.BY, тут нужно определённое количество членов посчитать, а не до точности.
JokeR.BY
CAPITAL OF ROCK!
1271 / 698 / 572
Регистрация: 03.03.2010
Сообщений: 2,282
Завершенные тесты: 2
13.09.2016, 15:54     Вычислить функцию с помощью разложения в ряд (число членов ряда и значение аргумента ввести с консоли) #10
SpBerkut, суть принципиально не меняется
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main()
{
    float x;
    cout << "Input x=";
    cin >> x;
    double sum = 0.0, si = -x / 2.0;
    unsigned int n;
    cout << "Input n=";
    cin >> n;
    for (unsigned int i = 2; i <= n; ++i)
    {
        sum += si;
        si *= (-x / 2.0 / i);
        //cout << i << "   " << si << endl;
    }
    cout << "sum=" << sum << endl;
    return 0;
}
SpBerkut
Объявлятель переменных
908 / 234 / 113
Регистрация: 24.09.2011
Сообщений: 875
Завершенные тесты: 2
13.09.2016, 15:58     Вычислить функцию с помощью разложения в ряд (число членов ряда и значение аргумента ввести с консоли) #11
JokeR.BY, ответ неверный. В 11-й строке sum = 1.0.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.09.2016, 16:02     Вычислить функцию с помощью разложения в ряд (число членов ряда и значение аргумента ввести с консоли)
Еще ссылки по теме:
Написать функцию, которая выводит на экран ряд чисел Фибоначчи до n. Число n принимается в качестве аргумента C++
C++ Вычислить значение y с помощью стандартной функции и с помощью ряда с точностью 0,0001
Даны числовой ряд и некоторое число е найти сумму членов ряда модуль которых больше или равен е C++
C++ определить число членов ряда, необходимых для расчета с заданной погрешностью суммы членов ряда:
Вычислить значение суммы (произведения) членов ряда C++

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

Или воспользуйтесь поиском по форуму:
JokeR.BY
CAPITAL OF ROCK!
1271 / 698 / 572
Регистрация: 03.03.2010
Сообщений: 2,282
Завершенные тесты: 2
13.09.2016, 16:02     Вычислить функцию с помощью разложения в ряд (число членов ряда и значение аргумента ввести с консоли) #12
SpBerkut, каюсь, не заметил, что ряд от нуля. вроде как итоговый вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main()
{
    float x;
    cout << "Input x=";
    cin >> x;
    double sum = 1.0, si = 1.0;
    unsigned int n;
    cout << "Input n=";
    cin >> n;
    for (unsigned int i = 1; i <= n; ++i)
    {
        si *= (-x / 2.0 / i);
        sum += si;
    }
    cout << "sum=" << sum << endl;
    cout << "  f=" << (1.0 / (pow(exp(x), 0.5))) << endl;
    return 0;
}
Yandex
Объявления
13.09.2016, 16:02     Вычислить функцию с помощью разложения в ряд (число членов ряда и значение аргумента ввести с консоли)
Ответ Создать тему
Опции темы

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