Рефераты. Система математических расчетов MATLAB

                                                            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 переменных записывается в виде мат-рицы размера 24х3.


 

Основные функции обработки данных

Перечень функций обработки данных, расположенных в директории MATLAB-а  datafun приведен в Приложении 8 .

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

                                     count =

11      11      9

  7       13     11

 14      17      20

11     13       9

 43      51     69

38     46     76

   61    132     186

  75    135    180

  38     88     115

  28     36     55

  12     12     14

   18      27     30

   18     19      29

  17     15     18

   19     36     48

   32    47     10

   42     65    92

    57    66    151

   44    55     90

    114   145   257

   35    58    68

   11    12    15

    13     9     15

    10      9      7


Таким образом, мы имеем 24 наблюдения трех переменных. Создадим вектор времени, t, со-стоящий из целых чисел от 1 до 24: t = 1 : 24. Построим теперь зависимости столбцов матри-цы counts  от времени и надпишем график:


                                               plot(t, count)

                                               legend('Location 1','Location 2','Location 3',0)

                                               xlabel('Time')

                                               ylabel('Vehicle Count')

                                               grid on


 где функция plot(t, count) строит зависимости трех векторов-столбцов от времени; функция

legend('Location 1','Location 2','Location 3',0) показывает тип кривых; функции xlabel и                         ylabel надписывают координатные оси, а grid on выводит координатную сетку. Соответству-ющий график показан ниже.


Применим к матрице count функции max (максимальное значение), mean (среднее значение) и std (стандартное, или среднеквадратическое отклонение).


mx = max(count)

 mu = mean(count)

 sigma = std(count)

В результате получим

                                                   mx =

114    145    257

                                                  mu =

                 32.00    46.5417    65.5833

                                                  sigma =

                   25.3703    41.4057   68.0281


где каждое число в строке ответов есть результат операции вдоль соответствующего столбца матрицы count. Для определения индекса максимального или минимального элемента нужно в соответствующей функции задать второй выходной параметр. Например, ввод


[mx,indx] = min(count)

                                                        

                                                       mx =

7       9       7

                                                      indx =

  2     23     24

показывает, что наименьшее число машин за час было зарегестрировано в 2 часа для первого пункта наблюдения (первый столбец) и в 23 и 24 чч. для остальных пунктов наблюдения.

Вы можете вычесть среднее значение из каждого столбца данных, используя внешнее произ-ведение вектора, составленного из единиц и вектора mu (вектора средних значений)


e = ones(24, 1)

x = count - e*mu

Перегруппировка данных может помочь вам в оценке всего набора данных. Так, использование  в системе MATLAB в качестве единственного индекса матрицы двоеточия, приводит к представлению этой матрицы как одного длинного вектора, составленного из ее столбцов. Поэтому, для нахождения минимального значения всего множества данных можно ввести


min(count(:))


что приводит к результату

                                                                  ans =

7

Запись count(:) в данном случае привела к перегруппировке матрицы размера 24х3 в вектор-столбец размера 72х1.



Матрица ковариаций и коэффициенты корреляции

Для статистической обработки в MATLAB-е имеются две основные функции для вычисле-ния ковариации и коэффициентов корреляции:

  • cov – В случае вектора данных эта функция выдает дисперсию, то есть меру распреде-

                ления (отклонения) наблюдаемой переменной от ее среднего значения. В случае

               матриц это также мера линейной зависимости между отдельными переменными,

               определяемая недиагональными элементами.

  • corrcoef – Коэффициенты корреляции – нормализованная мера линейной вероятност-ной зависимости между перменными.

Применим функцию cov к первому столбцу матрицы count


cov(count(:,1))


Результатом будет дисперсия числа машин на первом пункте наблюдения

                       

                                                          ans =

643.6522


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

Функция corrcoef вычисляет матрицу коэффициентов корреляции для массива данных, где каждая строка есть наблюдение, а каждый столбец – переменная. Коэффициент корреляции – это нормализованная мера линейной зависимости между двумя переменными. Для некор-релированных (линейно-независимых) данных коэффициент корреляции равен нулю; экива-лентные данные имеют единичный коэффициент корреляции. Для матрицы mхn, соответст-вующая матрица коэффициентов корреляции имеет размер nхn. Расположение элементов в матрице коэффициентов корреляции аналогично расположению элементов в рассмотренной выше матрице ковариаций. Для нашего примера подсчета количества машин, при вводе

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.