Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2009, 15:59   #1
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
Вопрос Натуральный логарифм

не могу найти ряд для его вычисления. все, что пробовал дают одинаковые и очень неточные результаты помогите
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 22.05.2009, 18:12   #2
unicode
Форумчанин
 
Аватар для unicode
 
Регистрация: 16.04.2009
Сообщений: 162
По умолчанию

по моему вот так можно:
Код:
writeln('Введите число х');
readln(x);
y:=ln(x);
writeln('Логарифм с числа х - ', y);

Последний раз редактировалось unicode; 22.05.2009 в 18:14.
unicode вне форума Ответить с цитированием
Старый 22.05.2009, 18:27   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

unicode, похоже, ТС нужен именно ряд.

Granus, а вот этот вам не подходит?

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

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 22.05.2009, 20:29   #4
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

я ими и пользовался)
*все мы любим википедию*
но они работают как то не точно
точнее совсем не точно
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 22.05.2009, 20:46   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Ну вот, например. 7 знаков после запятой совпадают.
Код:
uses crt;

function my_ln(x : extended) : extended;
const eps = 0.00000001;
var tek,rez,b : extended;
i : longint;
begin
rez := 0;
b := x-1;
i := 1;
tek := b;
while abs(tek)>=eps do
 begin
 rez := rez + tek;
 inc(i);
 b := -b*(x-1);
 tek := b/i;
 end;
my_ln := rez;
end;

begin
clrscr;
writeln('___ln(0.5) = ',ln(0.5):0:10);
writeln('my_ln(0.5) = ',my_ln(0.5):0:10);

readln;
end.
Код:
___ln(0.5) = -0.6931471806
my_ln(0.5) = -0.6931471706
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 22.05.2009, 20:51   #6
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

все, спасибо)))
переписал алгоритм, все хорошо)
это у меня руки кривые)
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 22.05.2009, 20:56   #7
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

У каждой формулы есть пределы применимости.
Первую можно применять только для (-1 < x <= 1).
Во второй аргумент у логарифма обозначте через z=(1+x)/(1-x), затем отсюда выражаем x и подставляем в данный ряд. Получается формула для вычисления логарифма в пределах (0 < z < +бесконечность).
_Dmitry вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Логарифм натуральный C++ Builder 6 werser Помощь студентам 3 19.05.2009 18:36
Как записать десятичний логарифм? programer_tang Паскаль, Turbo Pascal, PascalABC.NET 2 17.11.2008 17:00
Свой натуральный логарифм RIO Помощь студентам 8 12.02.2008 01:59
Логарифм в паскале gamer123 Помощь студентам 1 20.01.2008 15:15