Модератор
Эксперт С++
12436 / 10002 / 6022
Регистрация: 18.12.2011
Сообщений: 26,762
1

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

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

Вычисление функций разложением в ряд Тейлора.
Первым делом n-ый член ряда выражаем через (n-1)-ый.
Например такой ряд s=1+2x+3x^2+4x^3+...,
https://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;
}
24
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.04.2014, 21:02
Ответы с готовыми решениями:

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

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

Вычисление функций разложением в ряд Тейлора
Формулы надо переписывать! Редактор внизу страницы

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

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.04.2014, 21:02
Помогаю со студенческими работами здесь

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru