Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Модератор
Эксперт С++
10492 / 8731 / 5275
Регистрация: 18.12.2011
Сообщений: 23,339
1

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

01.04.2014, 21:02. Показов 29418. Ответов 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;
}
17
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.04.2014, 21:02
Ответы с готовыми решениями:

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

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

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

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

__________________

Записывайтесь на профессиональные курсы C++ разработчиков
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.04.2014, 21:02

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

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

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

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

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


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

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

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