В приложении Аппроксимирование Кривыми выберите Interpolant
из списка типов модели.
The Interpolant
категория аппроксимации соответствует интерполирующей кривой или поверхности, которая проходит через каждую точку данных. Для поверхностей в типе Interpolant fit используется MATLAB® scatteredInterpolant
функция для линейных и ближайших методов, MATLAB griddata
функция для кубических и бигармонических методов и tpaps
функция для тонкопластинчатой сплайн интерполяции.
Настройки показаны здесь.
Можно задать настройку Method: Nearest neighbor
, Linear
, Cubic
, Shape-preserving (PCHIP)
(для кривых), Biharmonic (v4)
(для поверхностей) или Thin-plate spline
(для поверхностей). Для получения дополнительной информации смотрите О методах интерполяции.
Совет
Если вы подбираете поверхность, и ваши входные переменные имеют различные шкалы, включите и отключите опцию Center and scale, чтобы увидеть различие в подгонке поверхности. Нормализация входов может сильно повлиять на результаты основанного на треугольнике (т.е. кусочно Linear
и Cubic
интерполяция) и Nearest neighbor
методы поверхностной интерполяции.
Для поверхностей попробуйте тонкопластинчатые сплайны, когда вам потребуется как гладкая интерполяция поверхности, так и хорошие свойства экстраполяции.
fit
ФункцияВ этом примере показано, как использовать fit
функция для подгонки линейных интерполяционных моделей к данным.
Методы интерполяции модели
Задайте метод интерполяционной модели при вызове функции подгонки с помощью одной из опций, описанных в Именах интерполяционной модели. Ни один из методов интерполяции не имеет никаких дополнительных параметров опции аппроксимации.
Подбор линейной интерполяционной модели
Загрузите данные и подгоните линейную интерполяционную модель с помощью 'linearinterp'
опция.
load census f = fit(cdate,pop,'linearinterp'); plot(f,cdate,pop);
Сравнение линейных интерполяционных моделей
Загрузите данные и создайте как ближайшие соседние, так и pchip интерполяционные подгонки с помощью 'nearestinterp'
и 'pchip'
опции.
load carbon12alpha f1 = fit(angle,counts,'nearestinterp'); f2 = fit(angle,counts,'pchip');
Сравните подобранные кривые f1
и f2
на графике.
p1 = plot(f1,angle,counts); xlim([min(angle),max(angle)]) hold on p2 = plot(f2,'b'); hold off legend([p1;p2],'Counts per Angle','Nearest Neighbor','pchip',... 'Location','northwest')
Для альтернативы 'cubicinterp' или 'pchipinterp' можно использовать другие функции сплайна, которые дают вам больший контроль над тем, что вы создаете. См. «Сведения о сплайнах» в наборе инструментов Curve Fitting Toolbox.