2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Почему в разложении ряд Тейлора можно оценивать последним чл
Сообщение28.12.2017, 17:29 


14/07/17
10
Киев
В обычной задаче по программированию: вычислить exp(x) с заданной точностью, вычисляют для положительного x, точность exp(x) очень хорошо оценивается последним членом такого разложения. Т.е. есть экспериментальный факт, что это так, и работает, скажем, для x = 50, 100, a не только для |x| < 1. Как объяснить это? Почему?
Итак, почему ряд Тейлора для экспоненты можно оценивать последним членом для положительного x в достаточно широких пределах, для каких функций и почему такое верно?

Кстати, для отрицательных, такая оценка следует из свойств знакопеременного ряда, но по иронии судьбы для отрицательных получаются на компьютере плохие результаты, потому что из-за чередования знаков вычитаются близкие числа и накапливаются ошибки округления.

 Профиль  
                  
 
 Re: Почему в разложении ряд Тейлора можно оценивать последним чл
Сообщение28.12.2017, 18:34 
Заслуженный участник
Аватара пользователя


23/07/08
10677
Crna Gora
$x=5, e^x\approx 148.413$
Частичная сумма $S_n=\sum\limits_{k=0}^n \frac{x^k}{k!}$

$\begin{tabular}{|c|c|c|c|}\hline n & частичная & последний & ошибка \\ & сумма & член &  \\\hline 1 & 6.000 & 5.000 & 142.413 \\2 & 18.500 & 12.500 & 129.913 \\3 & 39.333 & 20.833 & 109.080 \\4 & 65.375 & 26.042 & 83.038 \\5 & 91.417 & 26.042 & 56.996 \\\hline\end{tabular}$

 Профиль  
                  
 
 Re: Почему в разложении ряд Тейлора можно оценивать последним чл
Сообщение28.12.2017, 19:52 
Заслуженный участник


18/01/15
3106
Да, действительно, есть такой факт, если его уточнить подходящим образом. Например, так. Пусть $a_n(x)=x^n/n!$ --- первый отброшенный член в разложении, а $r_n(x)=\sum_{l=n}^\infty x^l/l!$ --- остаток. Тогда можно показать следующее: если $|a_n(x)|<1$, то $|r_n(x)|<C|a_n(x)|$, где $C$ --- абсолютная постоянная, не зависящая от $n$ и $x$.

Доказательство примерно такое. С помощью формулы Стирлинга можно показать, что если $|a_n(x)|<1$, то члены ряда с этого места убывают не медленнее, чем геометрическая прогрессия со знаменателем примерно $1/e$. Детали, как говорится, оставляем читателю. Это несложное упражнение по матану, может быть несколько утомительное из-за деталей. Разберетесь с этим --- с другими аналогичными вопросами тоже научитесь разбираться.

 Профиль  
                  
 
 Re: Почему в разложении ряд Тейлора можно оценивать последним чл
Сообщение28.12.2017, 20:20 


14/07/17
10
Киев
Продолжим эту таблицу:
n sum, an, error
1 6.000000 5.000000 142.413159
2 18.500000 12.500000 129.913159
3 39.333333 20.833333 109.079826
4 65.375000 26.041667 83.038159
5 91.416667 26.041667 56.996492
6 113.118056 21.701389 35.295104
7 128.619048 15.500992 19.794111
8 138.307168 9.688120 10.105991
9 143.689457 5.382289 4.723703
10 146.380601 2.691144 2.032558
11 147.603849 1.223247 0.809311
12 148.113535 0.509686 0.299624
13 148.309568 0.196033 0.103591
14 148.379580 0.070012 0.033579
15 148.402917 0.023337 0.010242
16 148.410210 0.007293 0.002949
17 148.412355 0.002145 0.000804
18 148.412951 0.000596 0.000208
19 148.413108 0.000157 0.000051

Мы видим, что когда an порядка 0,001 оно является неплохой мерой ошибки.
Почему это так? В практике вычислений этим пользуются, но как это обосновывается?

 Профиль  
                  
 
 Re: Почему в разложении ряд Тейлора можно оценивать последним чл
Сообщение28.12.2017, 20:39 
Заслуженный участник


09/05/13
8904
Vitreg2
Вам vpb уже ответил. Вы бы подумали над этим.
Коротко - потому что факториал растет гораздо быстрее, чем показательная функция, и добавок в виде последнего слагаемого чем дальше, тем ничтожнее.

 Профиль  
                  
 
 Re: Почему в разложении ряд Тейлора можно оценивать последним чл
Сообщение28.12.2017, 20:48 
Заслуженный участник
Аватара пользователя


18/01/13
12044
Казань
Vitreg2
В конце концов, существует остаточный член формулы Тейлора в форме Лагранжа. Он дает оценку, хотя и грубоватую, но вполне достаточную для наблюдаемого вами эффекта.

 Профиль  
                  
 
 Re: Почему в разложении ряд Тейлора можно оценивать последним чл
Сообщение02.01.2019, 19:44 


14/07/17
10
Киев
vpb
Снова вернулся к этой задаче и нашел решение без формулы Стирлинга,
$a_n = \frac{x^n}{n!}  $ , $
$$n! <((n+1)/2)^n $
по неравенству Коши,
и тогда
$ \frac{x}{n+1}< \frac{1}{2} }$
И тогда с этого места $a_n$ убывает не хуже, чем геометрическая прогрессия с коэффициентом $\frac{1}{2}$ .
Но это без формулы Стирлинга. Это уже объясняет применение метода вычисления. Но поскольку долго думал над этой задачей, интересно, а как сделать это же с формулой Стирлинга и с коэффициентом $\frac{1}{e}$ ? Я решения таким способом и с такой оценкой не нашел.

 Профиль  
                  
 
 Re: Почему в разложении ряд Тейлора можно оценивать последним чл
Сообщение02.01.2019, 22:52 
Заслуженный участник
Аватара пользователя


23/07/05
17973
Москва
Я не понял, зачем тут какие-то Стирлинги, оценки факториалов и прочие страсти. Тут достаточно геометрической прогрессии.

Имеем разложение в степенной ряд: $$e^x=\sum_{k=0}^{\infty}a_{k+1}=\sum_{k=0}^{\infty}\frac{x^k}{k!}.$$ Значение функции оцениваем $n$-ой частичной суммой $$S_n(x)=\sum_{k=0}^{n-1}\frac{x^k}{k!},$$ а абсолютную погрешность --- абсолютной величиной $n$-го остатка $$R_n(x)=\sum_{k=n}^{\infty}\frac{x^k}{k!}.$$ Случай $x<0$ очень прост: если $n+1>\lvert x\rvert$, то члены ряда $R_n(x)$ убывают, поэтому по признаку Лейбница $\lvert R_n(x)\rvert\leqslant\lvert a_{n+1}\rvert=\frac{\lvert x\rvert^n}{n!}$. Поэтому достаточное условие "последний вычисленный член ($a_n$) оценивает погрешность" можно записать в виде неравенства $\lvert a_n\rvert\geqslant\lvert a_{n+1}\rvert$, то есть, $\frac{\lvert x\rvert^{n-1}}{(n-1)!}\geqslant\frac{\lvert x\rvert^n}{n!}$,

-- Ср янв 02, 2019 23:32:49 --

откуда получаем, что $n\geqslant\lvert x\rvert$; условие $n+1>\lvert x\rvert$ тоже будет выполнено. Таким образом, если $0<-x\leqslant n$, то погрешность для рассматриваемого ряда действительно можно оценить последним вычисленным и прибавленным членом.

Случай $x=0$ тривиален.

В случае $x>0$ при $n+1>x$ остаток $R_n(x)$ можно оценить геометрической прогессией с первым членом $a_{n+1}=\frac{x^n}{n!}$ и знаменателем $q=\frac x{n+1}$. Дальше можно действовать как и выше. Пусть топикстартер этим и займется.

 Профиль  
                  
 
 Re: Почему в разложении ряд Тейлора можно оценивать последним чл
Сообщение03.01.2019, 01:35 


14/07/17
10
Киев
Someone
Вы не поняли.

То, что Вы написали, это я знаю, это известно. В случае положительного x, надо было доказать, что если $a_n < 1$, то $q = \frac{x}{n+1} < 1 $, дать оценку этого $q$ и показать, что если $a_n < 1$ оценка не зависит от
$x $ и $n$. А перед этим нужно было это так сформулировать!
vbp сформулировал это, спасибо ! Сама формулировка этого утверждения vbp - это уже интересный результат.
Цитата:

Да, действительно, есть такой факт, если его уточнить подходящим образом. Например, так. Пусть $a_n(x)=x^n/n!$ --- первый отброшенный член в разложении, а $r_n(x)=\sum_{l=n}^\infty x^l/l!$ --- остаток. Тогда можно показать следующее: если $|a_n(x)|<1$, то $|r_n(x)|<C|a_n(x)|$, где $C$ --- абсолютная постоянная, не зависящая от $n$ и $x$.

Доказательство примерно такое. С помощью формулы Стирлинга можно показать, что если $|a_n(x)|<1$, то члены ряда с этого места убывают не медленнее, чем геометрическая прогрессия со знаменателем примерно $1/e$.

Тогда в программе можно не проверять условие
$q = \frac{x}{n+1} < 1 $, т.к. оно следует из $a_n < 1$. Набросок решения я привел в предыдущем посте, но мне интересно, как это же решается с помощью формулы Стирлинга, какой способ имел в виду vbp.

 Профиль  
                  
 
 Re: Почему в разложении ряд Тейлора можно оценивать последним чл
Сообщение03.01.2019, 02:53 
Заслуженный участник
Аватара пользователя


23/07/05
17973
Москва
Vitreg2 в сообщении #1365554 писал(а):
Someone
Вы не поняли.
Посмотрите своё стартовые сообщение годичный давности: Вы спрашиваете, почему оценку погрешности при вычислении показательной функции с помощью ряда Маклорена можно делать по последнему учтенному члену. Я Вам демонстрирую, что при $x<0$ верно следующее утверждение: если взяты $n$ членов ряда и $n>\lvert x\rvert$, то погрешность будет меньше последнего учтенного члена.
По-моему, это --- прямой ответ на ваш первоначальный вопрос. Причем, без очень ограничительного условия $\lvert a_n\rvert<1$ (если Вы будете вычислять $e^{100}$ с погрешностью $\varepsilon=10^{10}$, то моим условием Вы сможете воспользоваться, а своим без лишних затрат вычислительных ресурсов --- нет). Вам осталось только разобраться со случаем $x>0$.

Привлекать к делу формулу Стирлинга, остаточный член Лагранжа и прочую тяжелую артиллерию не требуется. Хотя за год с формулой Стирлинга можно было бы и разобраться.

 Профиль  
                  
 
 Re: Почему в разложении ряд Тейлора можно оценивать последним чл
Сообщение04.01.2019, 04:34 


14/07/17
10
Киев
Someone

1. В сообщении годичной давности отмечено, что
Цитата:

Кстати, для отрицательных, такая оценка следует из свойств знакопеременного ряда, но по иронии судьбы для отрицательных получаются на компьютере плохие результаты, потому что из-за чередования знаков вычитаются близкие числа и накапливаются ошибки округления.

Т.е. Вы не можете посчитать $e^{-50}$ для отрицательного числа по формуле Тейлора на компьютере, Вам нужно воспользоваться формулой $e^{-50} = 
1 /  e^{50} из за ошибок сложения близких по величине и разных по знаку чисел. Вычисление на компьютере знакопеременного ряда не получается, Вы можете это попробовать в любом языке, или даже в Excel вычислить частичные суммы знакопеременного ряда для экспоненты.
Дальше, есть практика, что смотрят только на последний член ряда и других условий не проверяют. И надо было понять, почему это верно. Для ответа на этот вопрос и понадобилась "тяжелая артиллерия". Сформулированное утверждение vpb дало ответ на этот вопрос, доказательство короткое, но опирается на неравенство $$n! <((n+1)/2)^n $, но у меня вызвало трудности, я нашел его не сразу.
Поэтому быть может есть доказательство хоть и более громоздкое, но которое скорее приходит в голову.
А Вы это этого не поняли. Я считаю с Вами вопрос закрытым и больше спорить на эту тему не буду.

 Профиль  
                  
 
 Re: Почему в разложении ряд Тейлора можно оценивать последним чл
Сообщение04.01.2019, 12:46 
Заслуженный участник
Аватара пользователя


23/07/05
17973
Москва
Vitreg2 в сообщении #1365808 писал(а):
Вы не можете посчитать $e^{-50}$ для отрицательного числа по формуле Тейлора на компьютере
Ну что Вы, существует же масса библиотек для вычислений произвольной точности. Например, NTL или GMP. И много других. С их помощью $e^{-50}$ вычисляется без проблем, нужно только достаточную точность промежуточных результатов указать. Я об этом не написал; ожидал, что Вы сами знаете.

-- Пт янв 04, 2019 12:59:04 --

Vitreg2 в сообщении #1365808 писал(а):
Дальше, есть практика, что смотрят только на последний член ряда и других условий не проверяют. И надо было понять, почему это верно. Для ответа на этот вопрос и понадобилась "тяжелая артиллерия".
Практика, надо сказать, совершенно порочная, для многих рядов приводящая к грубым ошибкам. И для ответа на ваш вопрос никакая "тяжёлая артиллерия" не требуется, достаточно геометрической прогрессии. Кстати, разобрали бы случай $x>0$ моим методом. Если я не наврал, там красиво получается.

Vitreg2 в сообщении #1365808 писал(а):
Сформулированное утверждение vpb дало ответ на этот вопрос, доказательство короткое, но опирается на неравенство $$n! <((n+1)/2)^n $, но у меня вызвало трудности, я нашел его не сразу.
Поэтому быть может есть доказательство хоть и более громоздкое, но которое скорее приходит в голову.
Я же Вам предлагаю метод очень простой и дающий существенно более сильное утверждение, чем утверждение vpb, но Вы почему-то изо всех сил отбрыкиваетесь.

 Профиль  
                  
 
 Re: Почему в разложении ряд Тейлора можно оценивать последним чл
Сообщение04.01.2019, 14:00 
Заслуженный участник


18/01/15
3106
1) Vitreg2
Ваше рассуждение (если $x^n/n!\leq1$, то $x/n<1/2$) правильно.
Формула Стирлинга --- это $$ n!=\sqrt{2\pi n}\left(\frac n e\right)^n e^{\theta_n/12n}\,,\qquad 0<\theta_n<1 . $$
(см. например Фихтенгольц "Курс..." т.2, гл. XII, п. 469). Значит $$\sqrt[n]{n!}=\frac n e \cdot(2\pi n)^{1/2n}e^{\theta_n/12n^2}\,. $$ Величина $(2\pi n)^{1/2n}$ стремится к $1$, когда $n\to+\infty$$e^{\theta_n/12n^2}$ стремится еще быстрее). Поэтому $\sqrt[n]{n!}\approx n/e$. Если $x^n/n!\leq1$, то $x/\sqrt[n]{n!}\leq1$, значит $\frac x{n/e}\leq\alpha_n$, где $\alpha_n\to1$ при $n\to+\infty$. Значит $\displaystyle \frac x n \leq\frac{\alpha_n} e$.

(Вообще, это более сложный способ рассуждения. Оценка $n!\leq ((n+1)/2)^n$, конечно, проще, но формула Стирлинга быстрее в голову приходит.)

2) У компьютерщиков другой способ мышления, по сравнению с математиками, они по другому ставят вопросы. Скажем, математик прежде всего спрашивает "сколько членов ряда надо взять, чтобы остаток был меньше заданной величины ?", а программисты "можно ли оценить остаток первым из отброшенных членов ?". В этом я вижу одну из причин
недопонимания.

Vitreg2, Вы знаете, человек, когда о чем-то не имеет понятия, он и не видит, что написано. (Вы же сами первого моего сообщения в этой теме фактически "не увидели", пока Ваше внимание на него специально не обратили). У меня самого понятие об ошибках округления и т.д. стало появляться лишь относительно недавно. А еще пару лет назад я на Вашу тему вполне мог реагировать примерно так же, как коллега Someone.

Кроме того, Вы не видите через монитор, с кем общаетесь. Someone старше Вас по крайней мере в 3 раза, а может и более. Но в любом случае Вы же видите, сколько у него сообщений. Короче, старших надо уважать, и в этом отношении
тон Вашего последнего сообщения выглядит некрасиво.

P.S. Я набрал свое сообщение раньше, чем появилось последнее сообщение Someone, и кое-что стало неактуальным, но все равно посылаю.

-- 04.01.2019, 13:07 --

Выдающийся человек в данной области, Дж.Х.Уилкинсон, однажды заметил примерно так: относительно того, как делать приближенные вычисления и анализировать их точность, надежность и т.д., между специалистами есть консенсус, а именно: "Мой подход самый лучший, всё остальное фигня!" (Не дословно, но близко к тексту...).

-- 04.01.2019, 13:24 --

Это я к тому, что спорить о том, правилен ли подход и постановка задачи --- это в данном случае вроде спора о вкусах, дело довольно бесперспективное.

 Профиль  
                  
 
 Re: Почему в разложении ряд Тейлора можно оценивать последним чл
Сообщение10.01.2019, 05:08 


14/07/17
10
Киев
Someone
Someone в сообщении #1365859 писал(а):
Vitreg2 в сообщении #1365808

писал(а):
Дальше, есть практика, что смотрят только на последний член ряда и других условий не проверяют. И надо было понять, почему это верно. Для ответа на этот вопрос и понадобилась "тяжелая артиллерия". Практика, надо сказать, совершенно порочная, для многих рядов приводящая к грубым ошибкам. И для ответа на ваш вопрос никакая "тяжёлая артиллерия" не требуется, достаточно геометрической прогрессии. Кстати, разобрали бы случай $x>0$ моим методом. Если я не наврал, там красиво получается.


Должен полностью согласиться с этим замечанием. Я должен был указать, что это плохая практика а из моей фразы как-то неявно следует что она нормальная, что неверно. Вообще для меня эта задача - это дежавю и повтор своей же ошибки.
Ошибка состоит в том, что не надо требовать от задачи по программированию того, что она с математической точки зрения придумана так, чтобы ее студент сам решил и доказал.
Преподаватель программирования при этом думает о чем-то другом, мол хорошо заинтриговать и шокировать такой задачей и пусть студент сам у преподавателя высшей математики спросит, умеет правильно задать вопрос, а не сам решить, а сам решить задачу по программированию, а не связанную математическую задачу.
Когда-то давно, будучи студентом, на первом курсе первого семестра я получил подобную задачу и меня просто шокировал тот факт, что мне дают посчитать сумму ряда с заданной точностью не говоря ни слова о том, как оценить эту точность, а из знаний 1-ого семестра по мат.анализу это никак не следует - ряды в первом семестре не изучаются еще. Я тогда, в 1-ом семестре, знал еще со школы, что есть ряды, общий член которых стремится к нулю, а они расходятся, например 1/n. А я, считая что во всяком деле математика превыше всего, вместо написания программы пытался научиться оценивать сумму ряда, а не написать программу. Т.е. получив задачу по программированию я относился к ней как к задаче по математике.
И сейчас, во второй раз, готовил к зачету по программированию студента политехнического института, и попался на тот же крючок. И у него такая же задача по программированию, и тоже в первом семестре, и ничего такого не ждешь потому что все остальные задачи кроме этой совершенно простые, и в первом семестре не учат рядов, и мат. подготовка хуже, и на всю высшую математику выделяется в 2 раза меньше времени, чем у нас на один только мат. анализ, да и подготовка по математике при поступлении хуже, у них та же задача - посчитать значение функции с помощью ряда Тейлора, без замечания о том, как считается эта точность. Во всех остальных задачах - ничего подготавливающего к этому повороту событий нет, задачи типа отсортировать массив простым методом, или транспонировать матрицу. И я уже даже знаю, что в среде инженеров принято шокировать такими вещами, но все равно меня эта задача шокировала, и я думал о доказательствах. А составитель этой работы явно сам имеет политехническое образование, поэтому ни о каких оценках кроме последнего члена ряда, я думаю, не представлял, о доказательствах вообще не думал, даже не предполагал, что можно задать такой вопрос, но хотел, чтобы студент это протестировал для положительных и отрицательных чисел, а затем проявил смекалку и сказал, что $e^{-x} = 1/e^x$
Так что да, такая практика порочна, и корни ее в том, что в задачах по программированию как бы провоцируют такую мысль на примере, где такая практика дает правильный результат и у тех студентов и в тот период, когда они не могут усомниться еще в этой практике.

Так же прошу прощения за тон, я не обратил внимания на Ваш статус заслуженного участника и имею еще малый опыт на страницах этого сайта.

-- 10.01.2019, 05:01 --

-- 10.01.2019, 05:04 --

vpb

Спасибо за ответ!
Сложность и техника этого доказательства состоит в том, что сначала нужно "приблизительно" предположить, что скорость сходимости $\alpha_n$$$ легко оценить, а затем эту скорость тоже оценить, например, разложив $(2 \pi n)^{1/{2n}}=1+\ln(2  \pi n) / (2n) + O(1/n^2)$

 Профиль  
                  
 
 Re: Почему в разложении ряд Тейлора можно оценивать последним чл
Сообщение10.01.2019, 13:51 
Заслуженный участник


18/01/15
3106
Vitreg2
А я Вас за студента принял. Поистине, человека через монитор не видно. Извините, если что.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group