2014 dxdy logo

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

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




 
 Аппроксимация неберущегося интеграла (z=f(x,y))
Сообщение28.04.2013, 20:00 
Аватара пользователя
Добрый день
Нужен совет.
У меня при вычислениях возникает интеграл $$I(a,b) =\frac{1}{\sqrt{2\pi}} \int_{a}^{\infty} \frac{e^{-x^2/2}}{x+b} dx$$
Он неберущийся, более того, он считается достаточно медленно. А для мне его надо сделать быстровычисляемым.
Это нужно для того чтобы использовать $I(a,b)$ в задаче оптимизации, когда придется многократно вызывать функцию $I(a,b)$. Поэтому по возможности функция должна быть компактной и быстровычисляемой.

Вид функции для логарифмических осей X и Y следующий:
Изображение
Насколько я понимаю, тут нужна аппроксимация.
В случае функции одной переменной хороший (если не лучший) вариант - минимаксная аппроксимация, для повышенной точности обычно делят на отрезки ось x и аппроксимируют уже. Во всяком случае я видел реализацию экспоненциального интеграла $Ei(x)$ в пакете ALGLIB именно так реализованную и там достигалась точность $10^{-16}$

В случае двух переменных я нашел, что общепризнаны только кубические сплайны, но так получается невысокая точность при умеренном размере функции, либо высокая точность при большом размере функции (мелкая сетка и куча хранимых сплайнов)

Как оптимально реализовать подобную функцию?
Требуемая точность $10^{-6}$, а желательно $10^{-12}$

Массив уже вычисленных точек для логарифмических осей X и Y текстовый файл.zip

 
 
 
 Re: Аппроксимация неберущегося интеграла (z=f(x,y))
Сообщение28.04.2013, 22:05 
Имхи вперемешку с вопросами:
1) Для ясности лучше сразу задавать нужные буквы переменных, а то переход от $a, b , x$ к $x, y, z$ вы оставляете на долю читающего.
2) Каковы интересующие вас границы аргументов для аппроксимируемой функции?
3) В случае двух переменных также можно использовать сплайны любого порядка. Плюс, можно заранее рассчитать их коэффициенты для каждой ячейки (если требуется скорость) или же рассчитывать по значениям таблицы (если минимизировать объем хранимых данных). Кстати, сетку лучше сделать неравномерной (продумать изменение шага), чтобы ваши Е-295 вообще не упоминались, а нужные области дисктеризировались подробнее.

 
 
 
 Re: Аппроксимация неберущегося интеграла (z=f(x,y))
Сообщение28.04.2013, 22:47 
Аватара пользователя
1) При построении графика были взяты логарифмические оси
$\ln(a) \to x$ ;
$\ln(b) \to y$ ;
$I(a,b) \to z$

Это позволило получить плоские наклонные стороны. Там действительно плоские поверхности, может это можно как-то использовать?


2) $x \in (-\infty;\infty)$, $y \in (-\infty;\infty)$
судя по графику функция монотонно убывающая

3) как я понимаю сетка все равно должна оставаться прямоугольной? сложно будет с "горбом", там все равно должна быть мелкая сетка. В принципе я и так сделал динамическую сетку (при логарифмических осях сетка равномерная), которая меняется от 4,5E-5 до 2,2E+4 (логарифмы меняются от -10 до 10)

 
 
 [ Сообщений: 3 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group