Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Набор сложных для интерполяции функций


Автор: overvolt 18.6.2012, 20:09
Подскажите где можно взять набор тестовых функций одной переменной для проверки корректности работы алгоритма интерполяции (нужно около 300 функций, желательно с указанием интервалов)
например
1. f(x)=sin(1/x) [0.001; 1]
2. ...

Автор: Pavia 19.6.2012, 18:32
Цитата

функций одной переменной для проверки корректности работы алгоритма интерполяции 

Интерполяция это всего на всего попытка отгадать что находится между двума точками. Так  что о какой корректности может идти речь не понятна.

Зачем тебе 300 функций?


2)10000*exp((x)*0.09)-32768  [0;20]
3)5000*Sin(6*2*Pi/20*x)+2 [0;20]
4) 16000*((Round(x-0.5) div 3) mod 2) [0;20];

Думаю этого тебе хватит.

Автор: overvolt 19.6.2012, 20:27
Вот что уже нашёл:
1) ф-ия Рунге
f(x) = 1 / (1+x^2)     , x[-5; 5]

ещё лучше использовать вариант f(x) = 1 / ( 1+25*(x^2) )

2) Бернштейн
f(x) = |x|     , x[-1; 1]

3) ф-ия шага (The Step function) , x[-1; 1]

if (x<0) return 0;
else return 1;

4) Ф-ия Допплера (The Doppler function)
F(X) = sqrt ( x * ( 1 - x ) ) * sin ( 2.1 * pi / ( x + 0.05 ) )      , x[0; 1]

5) The Rabbit Ears function
F(X) = max ( sin(x) + sin(x^2), 1 - abs(x-5)/5 )       , x[0; 10]

Автор: Pavia 19.6.2012, 20:40
overvolt
Ещё функция Дирака.   [-100;+100] smile

Автор: overvolt 19.6.2012, 20:46
Цитата(Pavia @  19.6.2012,  18:32 Найти цитируемый пост)
Интерполяция это всего на всего попытка отгадать что находится между двума точками. Так  что о какой корректности может идти речь не понятна.


Набор функций нужен для оценки работоспособности нового алгоритма дискретизации аналитически заданной ф-ии с переменным шагом приращения X, подстраивающемся под ф-ию. Т.е. на вход подаётся аналитически заданная ф-ия (в виде обычной ф-ии языка C), на выходе алгоритма получается список точек (x, y) -- в последующем эти точки (узлы интерполяции) используются собственно для интерполяции, а аналитически заданная ф-ия отбрасывается (это необходимо для взаимодействия с другими функциями и алгоритмами вероятностного калькулятора)

Автор: MaXL 26.6.2012, 08:06
f(x) = 1 - (exp(100 * x) - exp(-100 * x)) / (exp(100) - exp(-100)),  0 <= x <= 1
интересно, сколько. и какие точки оно у вас выберет.

Полученная вами функция, после интерполяции должна удовлетворять таким же качественными
характеристикам, как и исходная, например выпуклость ?
Вот подобный пример

             1 / 250 * (5 * x - 3)^2,   если x <= 0.6
f(x) =
             1 / 16 * (25 * x^2 - 9),   если x > 0.6
0 <= x <= 1.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)