|
например так. Есть z=f(x,y). Надо вычислить f(xa,ya), при
этом известны значения вокруг f(xa,ya) в точках [(x0,y0)...(x0,y3)]...[(x3,y0)...(x3,y3)]; x0<x1<=xa<x2<x3 и y0<y1<=ya<y2<y3. Строите 4 одномерных интерполяционных полинома (например сплайна) по координате X. То есть первый с z0=f(x0,y0)...z3=f(x3,y0), второй с z0=f(x0,y1)...z3=f(x3,y1) и так далее. Вычисляете по этим сплайнам 4 точки с Z0=f(xa,y0)...Z3=f(xa,y3). Из этих четырех точек строите еще один одномерный интерполяционный полином по Y. И по нему получаете требуемую точку Z=f(xa,ya).
Можно хранить все коэффициенты сплайнов по X в памяти предрассчитанными, а сплайн по Y формировать по ходу дела, используя что-нибудь простенькое типа Катмулла-Рома.
Можно, конечно, сразу построить из матрицы 4х4 точки двумерный сплайн, но есть ли смысл?
E-mail: info@telesys.ru