Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.97
zss
Модератор
Эксперт С++
6953 / 6515 / 4136
Регистрация: 18.12.2011
Сообщений: 17,193
Завершенные тесты: 1
#1

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

01.04.2014, 21:02. Просмотров 7703. Ответов 0
Метки нет (Все метки)

Вычисление функций разложением в ряд Тейлора.
Первым делом n-ый член ряда выражаем через (n-1)-ый.
Например такой ряд s=1+2x+3x^2+4x^3+...,
http://www.cyberforum.ru/cgi-bin/latex.cgi?{a}_{n}=n*{x}^{n-1}=\frac{{a}_{n-1}}{n-1}*x*n
Далее оформляем в виде функции
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// x - аргумент, значение функции которого надо вычислить
// epsilon - точность вычисления суммы
double MySum(double x,double epsilon)
{
    double s=0;// Тут копим сумму
    double an; // Тут храним N-ый член ряда
    int n;
    n=1; // начальное значение n
    an=1; // начальное значение an
    while(fabs(an)>epsilon) 
// Суммировать будем пока член ряда an не станет достаточно маленьким по модулю
    {
          s+=an; // суммируем очередной член ряда
          n++; // переходим к следующему члену 
          an*=x*n/(n-1); // пересчитываем a(n) через a(n-1)
    }
    return s; // получившаяся сумма
}
Вот еще разложение синуса и косинуса
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
double mycos(double x,double eps)
{
    double s,an;
    int n;
    n=0;
    an=1;
    s=0;
    while(fabs(an)>eps)
    {
         s+=an;
         n++;
         an*=-x*x/(2.*n-1.0)/(2.0*n); 
    }
    return s;
}
double mysin(double x,double eps)
{
    double s,an;
    int n;
    n=1;
    an=x;
    s=0;
    while(fabs(an)>eps)
    {
         s+=an;
         n++;
         an*=-x*x/(2.*n-1.0)/(2.0*n-2.0); 
    }
    return s;
}
А вот вычисление логарифма от любого положительного значения, используя разложение в точке 1+x:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
double my_ln (double x)
{
    const double eps=1e-6;
    const double lnln=M_LN2; //ln2
    int k=0;
    while(x>2.0)
    { 
        x/=2.0;
        k++;
    }
    x-=1.;
    double s=0;
    int n=1;
    double an=x;
    while (fabs(an)>eps)
    {
        s+=an;
        ++n;
        an*=-x*(n-1)/n;
    }
    s+=k*lnln;
    return s;
}

http://www.cyberforum.ru/cpp-beginners/thread1377898.html
13
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2014, 21:02
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вычисление функций разложением в ряд Тейлора (C++):

Вычисление функций разложением в ряд Тейлора
Добрый всем вечер. Помогите пожалуйста с задачкой, если не сложно. Вот условие:...

Вычисление функций разложением в ряд Тейлора
В институте дали задание написать в С++ программу , которая выведет на экран...

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

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

Вычисление функций cosh разложением в ряд Тейлора
Добрый день, у меня простая вроде бы задачка, но я не понимаю как 2 части...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.04.2014, 21:02
Привет! Вот еще темы с решениями:

Вычисление функции с разложением в ряд Тейлора
Вычислить и вывести на экран в виде таблицы, значения функции, заданной с...

Вычисление функции разложением в ряд Тейлора
Прошу помощи

Вычисление функции разложением в ряд Тейлора
написал программу для этой формулы. Скажите правильно ли я написал ее. Если...

Вычисление cosh разложением в ряд Тейлора
Добрый вечер. Прошу помочь с программой на C++ в VS2013. Тема такая. Есть...


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

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

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