Система математических расчетов MATLAB

Методическое пособие - Компьютеры, программирование

Другие методички по предмету Компьютеры, программирование

одержащие точки интерполяции (то есть промежуточ-ные точки, в которых нужно вычислить значения функции); method строка, определяющая метод интерполяции. В случае двумерной интерполяции возможны три различных метода:

Ступенчатая интерполяция (method = nearest). Этот метод дает кусочно-постоянную поверхность на области значений. Значение функции в интерполируемой точке равно значе-нию функции в ближайшей заданной точке.

Билинейная интерполяция (method = linear). Метод обеспечивает аппроксимацию данных при помощи билинейной поверхности (плоскости) на множестве заданных значений двумер-ной функции. Значение в точке интерполяции является комбинацией значений четырех бли-жайших точек. Данный метод можно считать кусочно-билинейным; он быстрее и требует меньше памяти, чем бикубическая интерполяция.

Бикубическая интерполяция (method = cubic). Данный метод аппроксимирует поверх-ность при помощи бикубических поверхностей. Значение в точке интерполяции является комбинацией значений в шестнадцати ближайших точках. Метод обеспечивает значительно более гладкую поверхность по сравнению с билинейной интерполяцией. Это может быть ключевым преимуществом в приложениях типа обработки изображений. Особенно эффек-тивным данный метод является в ситуациях, когда требуется непрерывность как интерполи-руемых данных, так и их производных.

Все эти методы требуют, чтобы X и Y были монотонными, то есть или всегда возрастающи-ми или всегда убывающими от точки к точке. Эти матрицы следует сформировать с исполь-зованием функции meshgrid, или же, в противном случае, нужно убедиться, что схема то-чек имитирует сетку, полученную функцией meshgrid. Перед интерполяцией, каждый из указанных методов автоматически отображает входные данные в равномерно распреде-ленную сетку. Если X и Y уже распределены равномерно, вы можете ускорить вычисления добавляя звездочку к строке метода, например, *cubic.

 

 

Сравнение методов интерполяции

 

Приведенный ниже пример сравнивает методы двумерной интерполяции в случае матрицы данных размера 7х7.

  1. Сформируем функцию peaks на грубой сетке (с единичным шагом).

 

[x, y] = meshgrid(-3 : 1 : 3);

z = peaks(x,y);

surf(x,y,z)

 

где функция meshgrid(-3:1:3) задает сетку на плоскости x и y в виде двумерных массивов размера 7х7; функция peaks(x,y) является двумерной функцией, используемой в MATLAB-е в качестве стандартных примеров, а surf(x,y,z) строит окрашенную параметрическую повер-хность. Соответствующий график показан ниже.

 

 

 

 

  1. Создадим теперь более мелкую сетку для интерполяции (с шагом 0.25).

 

[xi,yi] = meshgrid(-3:0.25:3);

 

  1. Осуществим интерполяция перечисленными выше методами.

 

zi1 = interp2(x,y,z,xi,yi,nearest);

 

zi2 = interp2(x,y,z,xi,yi,bilinear);

 

zi3 = interp2(x,y,z,xi,yi,bicubic);

 

Сравним графики поверхностей для различных методов интерполяции.

 

surf(xi,yi,zi1) surf(xi,yi,zi2) surf(xi,yi,zi3)

 

Метод nearest Метод bilinear Метод bicubic

 

Интересно также сравнить линии уровней данных поверхностей, построенных при помощи специальной функции contour.

 

contour(xi,yi,zi1) contour(xi,yi,zi2) contour(xi,yi,zi3)

Метод nearest Метод bilinear Метод bicubic

 

Отметим, что бикубический метод производит обычно более гладкие контуры. Это, однако, не всегда является основной заботой. Для некоторых приложений, таких, например, как об-работка изображений в медицине, метод типа ступенчатой интерполяции может быть более предпочтительным, так как он не производит никаких новых результатов наблюдений.

 

 

 

 

Анализ данных и статистика

 

В данном разделе будут рассмотрены некоторые основные возможности системы MATLAB в области анализа данных и статистической обработки информации. Помимо базовых функ-ций, в системе MATLAB имеется также ряд специализированных пакетов, предназначенных для решения соответствующих задач в различных приложениях (на английском языке даны названия пакетов) :

  • Optimization Нелинейные методы обработки данных и оптимизация.
  • Signal Processing Обработка сигналов, фильтрация и частотный анализ.
  • Spline Аппроксимация сплайнами.
  • Statistics Углубленный статистический анализ, нелинейная аппроксимация и

регрессия.

  • Wavelet - Импульсная декомпозиция сигналов и изображений.

 

 

Внимание ! MATLAB выполняет обработку данных, записанных в виде двумерных массивов по столбцам ! Одномерные статистические данные обычно хранятся в отдельных векорах, причем n-мерные векторы могут иметь размерность 1х n или nх1. Для многомерных данных матрица является естественным представлением, но здесь имеются две возможности для ориентации данных. По принятому в системе MATLAB соглашению, различные пере-менные должны образовывать столбцы, а соответствующие наблюдения - строки. Поэтому, например, набор данных, состоящий из 24 выборок 3 переменных записывается в виде мат-?/p>