Интерполяция двумерных данных связана с построением функции двух переменных, приближающей заданные в точках (xi;yi) значения zi. Для интерполирования двумерных данных следует задать промежуточные узлы командой meshgrid и воспользоваться interp2, которая реализует один из способов интерполирования в зависимости от значения последнего аргумента: nearest – интерполяция по соседним аргументам; bilinear – билинейная интерполяция; bicubic – интерполяция бикубическими сплайнами.
Ниже приведен текст файл-программы для сравнения различных способов интерполирования, выполнение которой приводит к появлению графиков, изображенных на рис. 6. 8.
Для избежания утомительного ввода таблицы двумерных данных они генерируются при помощи некоторой функции двух переменных.
>> [X,Y]=meshgrid(0:0.2:1);
>> Z=sin(2*pi*X).*sin(2*pi*Y);
>> subplot(2,2,1)
>> surf(X,Y,Z)
>> [Xi,Yi]=meshgrid(0:0.02:1);
>> Z1=interp2(X,Y,Z,Xi,Yi,'nearest');
>> Z2=interp2(X,Y,Z,Xi,Yi,'bilinear');
>> Z3=interp2(X,Y,Z,Xi,Yi,'bicubic');
>> subplot(2,2,2)
>> surf(Xi,Yi,Z1)
>> subplot(2,2,3)
>> surf(Xi,Yi,Z2)
>> subplot(2,2,4)
>>surf(Xi,Yi,Z3)
Рис. 6.8
Для интерполирования трехмерных данных служит команда interp3, для многомерных – interpn. Многомерное интерполирование производится аналогично двумерному, подробнее о нем можно узнать из справочной системы MATLAB с помощью команды doc interpn. Интерполированию посвящен пакет Spline ToolBox.
Вопросы для самопроверки
1. Как осуществляется ввод полиномов в MATLAB?
2. Какие команды осуществляют умножение, деление полиномов?
3. Какая команда вычисляет корни полинома?
4. Какая команда осуществляет построение полинома по заданному вектору его корней?
5. Какая команда вычисляет значение полинома по заданному значению его аргумента?
6. Каким образом можно задать первый входной аргумент команд fzero и fsolve?
7. Какая команда MATLAB находит минимум функции одной переменной?
8. Какая команда MATLAB находит минимум функции нескольких переменных?
9. Какие команды вычисляют значения определенных интегралов?
10. Какие команды (солверы) возвращают численные решения обыкновенных дифференциальных уравнений?
11. Какие команды осуществляют полиномиальную аппроксимацию данных?
12. С помощью каких команд выполняется интерполяция данных?