Помощь - Поиск - Пользователи - Календарь
Полная версия: пределы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
andi
какому значению следует граница
Цитата
lim (1+1/n)^n
n- бесконечность
Altair
Цитата
какому значению следует граница

Не граница а предел.

lim (1+k/n)^n=e^k.
<=>
lim (1+1/n)^n=e.

Это второй замечательный предел.
andi
Ето я в курсе а прогу как написать?
Altair
А тогда почему в разделе математика???
Переношу в "задачи"

Потому, что сразу не указал, что нужна именно программа :yes:
Altair
Ты хочешь что-то примерно это?

var
n:real;
z:real;
begin
n:=100; {начальное значение}
repeat
z:=Exp(n*Ln((1+1/n)));
n:=n+1;
until z>exp(1)-0.00001; {а тут точность}
writeln(Z);
end.



После выполнения, на экране:
Цитата
2.7182718303E+00

смахивает на правду....
andi
новенький учусь
Altair
читай мой пост выше
andi
until z>exp(1)-0.01;
почему именно такое условие?
klem4
Видимо так как в ответе должно получиться e=2.7....... , то и вычислать тебе надо до тех пор, пока не будет достигнуто e c заданной точностью
Altair
нет.
дело в том, что функция (1+1/n)^n возрастающая и ограниченна сверху.
Зная, что функция возрастает, нужно ограничить итерации цикла, значя, что до e она не доберется, условие нужно сделать именно такое:
Код
until z>exp(1)-eps;

где eps желаемая точность вычисления.
Romtek
Ептыть! Это же 2-й замечательный предел! smile.gif

Oleg_Z, а почему ты не вычисляешь модуль разности от 2-х последних получившихся чисел?
Т.е. так:
until abs (new - old) < eps;

?

Добавлено:
http://www.yourmath.com/sp04.htm
Altair
Цитата
Ептыть! Это же 2-й замечательный предел! smile.gif

О чем я сказал во 2 после.

Цитата
Oleg_Z, а почему ты не вычисляешь модуль разности от 2-х последних получившихся чисел?

нужно конечно, просто задание-то вообще глупое, и я даже не сообразил что неправильно сделал (уже предположив что предел e) smile.gif)))
Romtek

const
eps = 1e-8; // точность

function Power (base: double; N: integer): double;
// степень N по основанию base
var k: integer;
P: double;
begin
P := 1.0;
for k := 1 to N do
P := P * base;

Power := P;
end;

var
n: integer;
xold,
xnew: double;

begin
xnew := 0.0;
n := 1;
repeat
xold := xnew;
xnew := Power (1.0 + 1.0/n, n);
writeln ('limit:', xnew : 20 : 8, ' itteration: ', n);
inc (n);
until abs (xnew - xold) < eps;

writeln ('limit is (approximately):', xnew : 20 : 8);
readln;
end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.