2014 dxdy logo

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

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



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


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

Если Вы зададите новый вопрос в существующей теме, то в случае нарушения оформления или других правил форума Ваше сообщение и все ответы на него могут быть удалены без предупреждения.

Не ищите на этом форуме халяву, правила запрещают участникам публиковать готовые решения стандартных учебных задач. Автор вопроса обязан привести свои попытки решения и указать конкретные затруднения.

Обязательно просмотрите тему Правила данного раздела, иначе Ваша тема может быть удалена или перемещена в Карантин, а Вы так и не узнаете, почему.



Начать новую тему Ответить на тему На страницу 1, 2, 3  След.
 
 Помогите придумать апроксимацию
Сообщение05.06.2014, 00:38 
Аватара пользователя


26/05/12
477
приходит весна?
Имеется функция, заданная в виде ряда:
$$\[f\left( x \right)=\frac{4}{\pi }\sum\limits_{m=0}^{\infty }{\frac{{{\left( -1 \right)}^{m}}}{2m+1}\exp \left( -{{\left( 2m+1 \right)}^{2}}x \right)}\]$$
Опыт показывает, что при малых икс, ряд сходится плохо, а при больших икс он фактически представляет собой одно первое слагаемое. Хотелось бы вычислять значения этой функции для любых $x\ge 0$ одинаково быстро. У меня есть подозрение, что эту функцию нельзя аппроксимировать рядом Тейлора в нуле, так как все её (правые) производные равны нулю (Как это доказать?).

Недавно встретил в интернете аппроксимацию для функции ошибок $\operatorname{erf}(x)$:
$a_1= 0.254829592$;
$a_2=-0.284496736$;
$a_3= 1.421413741$;
$a_4=-1.453152027$;
$a_5= 1.061405429$;
$p=  0.3275911$;$$t=\frac{1}{1+p\left| x \right|}$$$$\operatorname{erf}(x)=\operatorname{sign}\left( x \right)\left( 1-\left( {{a}_{5}}{{t}^{5}}+{{a}_{4}}{{t}^{4}}+{{a}_{3}}{{t}^{3}}+{{a}_{2}}{{t}^{2}}+{{a}_{1}}{t} \right)\exp \left( -{{x}^{2}} \right) \right)+\varepsilon(x)$$$$\left|\varepsilon(x)\right|<1.5\cdot 10^{-7}$$
Хотелось бы узнать, как такие аппроксимации составляются и получить рекомендацию как сделать что-нибудь подобное для моей функции.

 Профиль  
                  
 
 Re: Помогите придумать апроксимацию
Сообщение05.06.2014, 08:03 
Заслуженный участник
Аватара пользователя


24/02/12
1672
Москва
Знакочередующийся ряд. Ошибка не больше первого отброшенного члена.

 Профиль  
                  
 
 Re: Помогите придумать апроксимацию
Сообщение05.06.2014, 09:57 
Аватара пользователя


26/05/12
477
приходит весна?
ex-math, совершенно верно. Поэтому, чтобы получить точность $10^{-7}$ в нуле для этой функции необходимо сложить $\[M\ge \text{6 }\!\!\grave{\ }\!\!\text{ 366 }\!\!\grave{\ }\!\!\text{ 198}\]$ слагаемых, но такое расточительство недопустимо. Поэтому хочется заменить исходную функцию какой-либо быстро и удобно вычисляемой аппроксимацией.

Может есть какие-нибудь систематические методы для получения такого рода вещей? Есть какие-нибудь исследования точности различных аппроксимационных формул для различных классов функций? Посоветуйте, пожалуйста, литературу на эту тему.

 Профиль  
                  
 
 Re: Помогите придумать апроксимацию
Сообщение05.06.2014, 10:36 
Заслуженный участник
Аватара пользователя


18/05/06
13134
с Территории
Да Вы смеётесь, что ли? Экспонента от квадрата Вам слишком медленная сходимость?
А в нуле функция равна, очевидно, единице, и складывать вообще ничего не надо.

 Профиль  
                  
 
 Re: Помогите придумать апроксимацию
Сообщение05.06.2014, 11:12 
Аватара пользователя


26/05/12
477
приходит весна?
То есть нет никакой возможности заменить ряд аналитической функцией, дающей на $x\ge 0$ точность $10^{-7}$ ?

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


18/05/06
13134
с Территории
Наверняка есть. Но зачем?

-- менее минуты назад --

Такие суммы обычно выражаются через тета-функции, а для них что-то должно быть известно.

 Профиль  
                  
 
 Re: Помогите придумать апроксимацию
Сообщение05.06.2014, 11:48 
Аватара пользователя


26/05/12
477
приходит весна?
ИСН в сообщении #872003 писал(а):
Но зачем?
Ну, задача так стоит. При этом ещё желательно, чтобы производная аппроксимации отличалась от производной функции тоже не более чем на $10^{-7}$, но этот вопрос лучше оставить на потом. Для вычисления $f(10^{-2})$ с точностью $10^{-7}$ требуется сложить 18 членов ряда, а это 18 вычислений экспонент. Такая расточительность недопустима, поскольку задача стоит не только считать эту функцию с заданной точностью, но и быстро.

У меня была идея протабуировать значения функции на отрезке $[0,1]$ с каким-то шагом (заранее посчитать значения функции я могу) и сшить их сплайнами, а хвост вычислять по первым двум-трём слагаемым ряда. Но на этом пути встают две проблемы: 1) как гладко сшить хвост и сплайны (боюсь возникнут трансцендентные уравнения); 2) как правильно (и в каком количестве) выбрать точки для вычисления значений функции, чтобы обеспечить желаемую точность.

По этой причине я интересуюсь, а существуют ли хорошо проработанные методы аппроксимации, дающие удобные формулы на подобии той, что я привёл в первом посте для функции ошибок?

ИСН в сообщении #872003 писал(а):
Такие суммы обычно выражаются через тета-функции
А где про это можно узнать по-подробней?

 Профиль  
                  
 
 Re: Помогите придумать апроксимацию
Сообщение05.06.2014, 12:17 


01/12/11
994
B@R5uk, с какой точностью должно вычисляться $e$, чтобы получить итоговую точность $10^{-7}$ ? Обеспечит ли это язык программирования?

 Профиль  
                  
 
 Re: Помогите придумать апроксимацию
Сообщение05.06.2014, 12:26 
Аватара пользователя


26/05/12
477
приходит весна?
Пока задача никак не связана ни с каким языком программирования. Задача пока исключительно математическая: получить гладкую аппроксимацию заданной рядом функции с заданной точностью на заданном множестве. Если возможно учесть такое пожелание, то аппроксимирующая функция должна быть аналитична.

 Профиль  
                  
 
 Re: Помогите придумать апроксимацию
Сообщение05.06.2014, 15:44 
Аватара пользователя


26/05/12
477
приходит весна?
Заметил интересную особенность. Для $x\in[0,0.02]$ ряд-функция $f(x)$ отличается от $1$ не более, чем на $10^{-15}$. А для $x\in[0,0.1]$ с точностью $10^{-7}$ представляется в виде $$f\left(x\right)=1-\exp\left(-\frac{1}{1.24229\cdot x^{0.940951}} \right)$$
Как бы это теперь гладко сшить с хвостом?

 Профиль  
                  
 
 Re: Помогите придумать апроксимацию
Сообщение05.06.2014, 16:46 
Заслуженный участник


14/01/11
1358
А что, если попробовать сшить с помощью какой-нибудь достаточно гладкой функции вроде $$g(x)=\left\{\begin{matrix}
e^{\frac{1}{\alpha(x-0.1)}},\;x<0.1,
\\ 
0,\;x\geqslant 0.1
\end{matrix}\right?$$ Параметр $\alpha$ подобрать так, чтобы переход был достаточно коротким.

 Профиль  
                  
 
 Re: Помогите придумать апроксимацию
Сообщение05.06.2014, 16:54 
Аватара пользователя


26/05/12
477
приходит весна?
Sender, не совсем понял, что вы предлагаете.

 Профиль  
                  
 
 Re: Помогите придумать апроксимацию
Сообщение05.06.2014, 19:34 
Аватара пользователя


26/05/12
477
приходит весна?
Решил попробовать подогнать функцию на отрезке $[0,2]$кубическими сплайнами. Получилось что-то такое (чёрным -- подгоняемый ряд, синим -- сплайн, красным -- разница):

Изображение

Десять сплайнов дали точность всего $10^{-3}$, а ведь это десять кубических полиномов, каждый с четырьмя константами. Такая точность при заметной сложности неудовлетворительна. Подскажите, пожалуйста, что-нибудь более совершенное.

 Профиль  
                  
 
 Re: Помогите придумать апроксимацию
Сообщение05.06.2014, 21:58 


05/09/12
2291
Вариантов немало. Пара навскидку:
1) Разбейте интервал не на $10$ а на $100500$ отрезков и интерполируйте любыми способами, хоть теми же сплайнами. Считается мгновенно. Хранится только массив исходных точек.
2) Подгоняйте разные аппроксимирующие функции на нескольких интервалах разбиения.

 Профиль  
                  
 
 Re: Помогите придумать апроксимацию
Сообщение05.06.2014, 22:07 
Аватара пользователя


26/05/12
477
приходит весна?
_Ivana в сообщении #872197 писал(а):
Разбейте интервал не на $10$ а на $100500$ отрезков и интерполируйте
Пожалуй, придётся думать в этом направлении. Судя по всему, формула для вычисления функции ошибок, выписанная мной из A&S, — это шедевр математического искусства. Повторить такое для своей функции простым смертным типа меня не дано. Изображение

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 41 ]  На страницу 1, 2, 3  След.

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



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

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


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

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