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

Разложение в ряд Тейлора lg(x) - C++

Восстановить пароль Регистрация
 
Roy jones
1 / 1 / 0
Регистрация: 05.10.2013
Сообщений: 92
01.06.2014, 13:51     Разложение в ряд Тейлора lg(x) #1
Просьба выложите программу у кого есть!
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5949 / 5554 / 1785
Регистрация: 18.12.2011
Сообщений: 14,193
Завершенные тесты: 1
01.06.2014, 15:37     Разложение в ряд Тейлора lg(x) #2
Вычисление функций разложением в ряд Тейлора.
Большая коллекция решенных задач
Roy jones
1 / 1 / 0
Регистрация: 05.10.2013
Сообщений: 92
01.06.2014, 19:00  [ТС]     Разложение в ряд Тейлора lg(x) #3
КАК переделать эту программу чтобы работал с логарифмами т.е lg(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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// 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++
 
 
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;
}
zss
Модератор
Эксперт С++
 Аватар для zss
5949 / 5554 / 1785
Регистрация: 18.12.2011
Сообщений: 14,193
Завершенные тесты: 1
01.06.2014, 19:23     Разложение в ряд Тейлора lg(x) #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
http://www.cyberforum.ru/cgi-bin/latex.cgi?ln(x+1)=\sum_{n=1}^{\propto }{-1}^{n+1}{x}^{n}/n
начальное значение
n=1
an=x
рекуррентное соотношение
an=-an*x/n*(n-1)
Итого:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
double MyLog(double x,double eps)
{
    double s,an;
    int n;
    n=1;
    an=x;
    s=0;
    while(fabs(an)>eps)
    {
         s+=an;
         n++;
         an*=-x/n*(n-1);
    }
    return s;
}
Т.е. Вам надо было додумать всего лишь ДВЕ строчки
Обратите внимание, что разложение идет в точке x=1, т.к. в нуле логарифм не определен.
Соответственно, область сходимости 0<x<1
Roy jones
1 / 1 / 0
Регистрация: 05.10.2013
Сообщений: 92
09.06.2014, 15:46  [ТС]     Разложение в ряд Тейлора lg(x) #5
Помогите сделать блок схему
Yandex
Объявления
09.06.2014, 15:46     Разложение в ряд Тейлора lg(x)
Ответ Создать тему
Опции темы

Текущее время: 21:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru