Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ разложение экспоненты

Автор: Riabukhin 28.01.2009 2:35

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

Автор: volvo 28.01.2009 2:42

http://volvo71.narod.ru/faq_folder/math.htm#taylor_exp

Автор: Riabukhin 28.01.2009 2:55

спасибо большое, но нужен другой способ, без double и точности

Автор: volvo 28.01.2009 3:13

Ну, Double-то можно заменить на Real, это не проблема... А вот без точности - это интересно... Когда ж вычисления останавливать?

Автор: Riabukhin 28.01.2009 3:46

количество членов (до 20) и Х вводится с клавиатуры. про точность препод не говорил(

Добавлено через 6 мин.
и ещё вопрос:

s := next; n := 0;
repeat
inc(n);
next := (next * x) / n;
s := s + next;
until (next < eps);
exp := s

здесь в знаменателе должен же быть факториал? или я совсем не рублю в паскале smile.gif

Автор: volvo 28.01.2009 4:06

Цитата
или я совсем не рублю в паскале
Скорее - в математике. Что будет, если я (вместо того, чтобы на каждом шаге вычислять факториал, и ДЕЛИТЬ на него нечто) буду на каждом шаге ДЕЛИТЬ это самое нечто на меняющийся N? Это не равносильно? Заметь, вопроса о том, что в числителе должно быть Xn у тебя не возникло, потому что ты видишь, что происходит ДОмножение на X. Чем же деление на 1, 2, 3, 4 на соответствующей итерации хуже?

Выпиши себе первые несколько итераций на лист бумаги, и посмотри, что там делается, на что next умножается, и на что делится...

Цитата
количество членов (до 20) и Х вводится с клавиатуры
Ну, так это надо было говорить сразу, чего ж ты молчишь? Тогда еще проще: ввел K, и делаешь простой цикл:
	next := 1; s := next;
for n := 1 to K do begin
next := (next * x) / n;
s := s + next;
end;