Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.69/88: Рейтинг темы: голосов - 88, средняя оценка - 4.69
147 / 81 / 23
Регистрация: 17.10.2010
Сообщений: 939
1

Вычисление ln(1 + x) разложением в ряд

01.11.2010, 22:01. Показов 16752. Ответов 15
Метки нет (Все метки)

Всем доброго время суток бьюсь никак не могу въехать как написать программу вычисления ln(1 + x) разложением в ряд в книге дана формула:
ln(1 + x) = x – x^3/3 + x^5/5 +… = ∑((-1)^n * x ^(2n + 1))/(2n + 1)
Как программа будет выглядеть на C++
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.11.2010, 22:01
Ответы с готовыми решениями:

Вычисление ch(x) разложением в ряд
Ребят, не получается решить задание, помогите, пожалуйста. Задачу и формулы надо переписывать!...

Вычисление ln(1 + x) разложением в ряд
Всем доброго времени суток. Никак не могу въехать как написать программу вычисления ln(1 + x)...

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

Вычисление функции разложением её в ряд
Привет,народ) Помогите пожалуйста написать код для данной задачи:help: Заранее спасибо:) П.5.18 и...

15
23 / 23 / 6
Регистрация: 03.01.2010
Сообщений: 68
01.11.2010, 22:20 2
C++
1
2
3
double ln(int _x, int _n){
    return (pow(-1, _n) * pow(_x, (2 * n) + 1)) / ((2 * n) + 1);
}
0
147 / 81 / 23
Регистрация: 17.10.2010
Сообщений: 939
01.11.2010, 22:31  [ТС] 3
А для │x│ < 1 она тоже верна?
0
23 / 23 / 6
Регистрация: 03.01.2010
Сообщений: 68
01.11.2010, 22:44 4
Тогда так:
C++
1
2
3
double ln(double _x, int _n){
    return (pow(-1, _n) * pow(_x, (2 * _n) + 1)) / ((2 * _n) + 1);
}
0
147 / 81 / 23
Регистрация: 17.10.2010
Сообщений: 939
01.11.2010, 22:56  [ТС] 5
Не понятно, а разве не используется итерационное соотношение
0
3 / 3 / 1
Регистрация: 31.10.2010
Сообщений: 13
01.11.2010, 22:59 6
Насколько я понимаю это разложение в ряд. Где ты взял формулу?

Для ln(1+x) формула разложения в ряд имеет вид: ∑((((-1)^n+1) * x ^n )/n) = ∑(((-1)^n * x ^(n+1))/(n+1))

Для формулы, которую я написал это выглядит так:


C++
1
2
3
4
5
6
double ln(double x,int threshold){
    double result=0;
    for (int i=1;i<threshold;i++)
        result += (i%2==0?-1:1) * pow(x,i)/i;
    return result;
}
0
147 / 81 / 23
Регистрация: 17.10.2010
Сообщений: 939
02.11.2010, 00:19  [ТС] 7
Нужно как то через итерационное соотношение, но я не знаю какое??? Помогите кто-нибудь
0
3 / 3 / 1
Регистрация: 31.10.2010
Сообщений: 13
02.11.2010, 09:46 8
Цитата Сообщение от isaak Посмотреть сообщение
Нужно как то через итерационное соотношение, но я не знаю какое??? Помогите кто-нибудь
Поведай мне что ты понимаешь под "итерационным соотношением".
0
147 / 81 / 23
Регистрация: 17.10.2010
Сообщений: 939
02.11.2010, 11:49  [ТС] 9
Вот точное задание:написать программу вычисления ln(1 + x) разложением в ряд
ln(1 + x) = x – x^3/3 + x^5/5 +… = ∑((-1)^n * x ^(2n + 1))/(2n + 1), где │x│ < 1 вводится пользователем с клавиатуры, а граница ряда определяется как константа. Как будет программа выглядеть на C++? Заранее огромное спасибо.
0
147 / 81 / 23
Регистрация: 17.10.2010
Сообщений: 939
02.11.2010, 14:21  [ТС] 10
Вот попытался сам че то сделать, но все таки не правильно:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
using namespace std;
double main ()
{
double ln(double x,int threshold){
        double result=0;
        for (int i=1;i<threshold;i++)
                result += (i%2==0?-1:1) * pow(x,i)/i;
        return result;
}
Кто-нибудь направте наверный путь пожалуйста
0
Эксперт JavaЭксперт С++
8367 / 3589 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
02.11.2010, 18:10 11
isaak, функции необходимо описывать за пределами main
0
23 / 23 / 6
Регистрация: 03.01.2010
Сообщений: 68
02.11.2010, 20:27 12
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>
 
double ln(double x, int threshold){
        double result=0;
        for (int i=1;i<threshold;i++)
                result += (i%2==0?-1:1) * pow(x,i)/i;
        return result;
 
int main (){
 
    double x;
    int n;
 
    std::cout << "Input x: ";
    std::cin >> x;
 
    std::cout << "\nInput n: ";
    std::cin >> n;
 
    std::cout << "\n\nln = " << ln(x,n);
 
    return 0;
}
1
147 / 81 / 23
Регистрация: 17.10.2010
Сообщений: 939
02.11.2010, 21:35  [ТС] 13
Спасибо за ответ DAgot, но, что-то не правильно:

Error 1 error C3861: 'pow': identifier not found c:\users\администратор\documents\visual studio 2008\projects\c++\console\p645\p645\p645.cpp 6 p645
Error 2 error C2601: 'main' : local function definitions are illegal c:\users\администратор\documents\visual studio 2008\projects\c++\console\p645\p645\p645.cpp 9 p645
Error 3 fatal error C1075: end of file found before the left brace '{' at 'c:\users\администратор\documents\visual studio 2008\projects\c++\console\p645\p645\p645.cpp(3)' was matched c:\users\администратор\documents\visual studio 2008\projects\c++\console\p645\p645\p645.cpp 24 p645

0
Эксперт JavaЭксперт С++
8367 / 3589 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
02.11.2010, 21:48 14
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
#include <iostream>
#include <cmath> 
 
double ln(double x, int threshold){
        double result=0;
        for (int i=1;i<threshold;i++)
                result += (i%2==0?-1:1) * pow(x,i)/i;
        return result;
}
int main (){
 
    double x;
    int n;
 
    std::cout << "Input x: ";
    std::cin >> x;
 
    std::cout << "\nInput n: ";
    std::cin >> n;
 
    std::cout << "\n\nln = " << ln(x,n);
 
    return 0;
}
1
23 / 23 / 6
Регистрация: 03.01.2010
Сообщений: 68
02.11.2010, 21:49 15
Только собрался исправить и уже опередили
0
147 / 81 / 23
Регистрация: 17.10.2010
Сообщений: 939
03.11.2010, 10:15  [ТС] 16
Огромное спасибо M128K145, очень помог
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.11.2010, 10:15

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Вычисление Пи разложением в ряд (циклы for, while, do while)
Не используя стандартные функции (за исключением abs(x)), вычислить число π с помощью суммы...

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

Вычисление Sin(x) разложением в ряд
Для функций, представленных ниже бесконечными рядомами вычислить их приближённые значенния с...

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


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

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

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