Рефераты. Система математических расчетов MATLAB
  • Fit (Метод подгонки) – Выберите метод подгонки. Соответствующие результаты бу-дут представлены в окне под меню выбора метода. Заметим, что выбор метода в дан-ной панели не оказывает воздействия на панель Plot fits. Поэтому, если вы хотите по-лучить графическое представление, следует выбрать соответствующую опцию в пане-ли Plot fits.
  • Coefficients and norm of residuals (Коэффициенты и норма невязок) – В данном окне выводятся численные выражения для уравнения подгонки, выбранного в Fit. Отме-тим, что при первом открытии панели Numerical Results , в рассматриваемом окне выдаются результаты последней подгонки, выбранной вами в панели Plot fits.
  • Save to workspace (Запомнить в рабочем пространстве) – Вызывает диалоговое окно, которое позволяет запомнить в рабочем пространстве результаты вашей подгонки.

Find Y = f(X) – Данная панель дает возможность произвести интерполяцию или экстраполя-цию текущей подгонки.

·        Enter value(s) (Введите данные) – Введите любое выражение, совместимое с  систе-мой MATLAB для  оценки вашей текущей подгонки в промежуточных или выходя-щих за пределы заданных аргументов точек. Выражение будет вычислено после на-жатия кнопки Evaluate (Вычислить), а результаты в табличной форме будут выве-дены в соответствующее окно ниже. Метод текущей подгонки при этом указан в ме-ню Fit.

·        Save to workspace (Запомнить в рабочем пространстве) – Вызывает диалоговое окно, которое позволяет запомнить в рабочем пространстве результаты вашей интерполя-ции.

·        Plot results (Построить графики) – При выборе данной опции, результаты интерполя-выводятся в графической форме на график данных.

Уравнения в конечных разностях и фильтрация

 

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

Функция

 

y = filter(b, a, x)

 

обрабатывает данные в векторе x посредством фильтра, описываемого векторами a и  b, вы-давая фильтрованные данные y. Функция filter может рассматриваться как эффективная реа-лизация уравнения в конечных разностях. Структура функции filter является обобщенной структурой фильтра, образованного при помощи линий задержки, который описывается приведенными ниже уравнениями в конечных разностях, где n есть индекс (номер) текущей выборки, na есть порядок полинома, описываемого вектором a , а nb есть порядок полино-ма,описываемого вектором b. Выход y(n) является линейной комбинацией текущего и пре-дыдущих входов, то есть  x(n)  x(n-1) ..., и предыдущих выходов  y(n-1)  y(n-2) ...


a(1) y(n) = b(1) x(n)  +  b(2) x(n-1)  +  …  +  b(nb) x(n-nb+1) –

- a(2) y(n-1)  -   …  - a(na) y(n-na+1)


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


y(n) = (1/4) x(n)  +  (1/4) x(n-1)  +  (1/4) x(n-2)  +  (1/4) x(n-3)


Соответствующие векторы равны:

a = 1;    b = [1/4  1/4  1/4  1/4];


Воспользуемся данными матрицы  count  из раздела Анализ данных и статистика. Для на-шего примера, обозначим первый столбец матрицы count через вектор x :

x = count(:, 1);

Усредненные за 4 часа данные могут быть легко вычислены при помощи приведенной выше функции y = filter(b, a, x). Сравним исходные и сглаженные данные, построив их на одном графике.

 

                                            t = 1:length(x) ;

                                            plot(t, x, '-.', t, y, '-');       grid on

legend('Original Data','Smoothed Data',2)

Исходные данные наблюдения представлены здесь штрих-пунктирной линией, а сглаженные за 4 часа данные – сплошной линией.


Для различных практических приложений, в специальном пакете Signal Processing Toolbox предусмотрены многочисленные функции для анализа сигналов и проектирования дискрет-ных фильтров.



Многомерные Массивы

 

Многомерные массивы в системе MATLAB являются распространением обычных двумерных матриц. Как известно, матрицы имеют две размерности – строки (row) и столбцы (column).                                                                      



 Вы можете выделить любой элемент двумерной матрицы при помощи двух индексов, где первый является индексом (номером) строки, а второй – индексом столбца. Многомерные массивы имеют дополнительную индексацию. Например, трехмерные массивы имеют три индекса:

  • Первый индекс указывает размерность 1 , то есть строки.
  • Второй индекс указывает размерность 2. то есть столбцы.
  • Третий индекс указывает на размерность 3. В данном пособии используется концепция страницы (page) для представления размерности 3 и выше.


Для обращения, например, к элементу  второй строки и третьего столбца на странице 2 нужно воспользоваться индексацией (2,3,2) (см. рисунок ниже).

Если вы добавляете размерности к массиву, вы также добавляете индексы. Четырехмерный массив, например, имеет 4 индекса. Первые два из них указывают на пару строка-столбец, а следующие два характеризуют третью и четвертую размерности.



Отметиим, что общие функции обращения с многомерными массивами находятся в директории datatypes.


Создание Многомерных Массивов

 

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


Создание массивов с использованием индексации

Один из способов формирования многомерного массива состоит в создании двумерного массива и соответствующего его расширения. Например, начнем с простого двумерного массива А.


A = [5  7  8;  0  1  9; 4  3  6];

 

А является массивом 3х3, то есть его размерности строк и столбцов равны трем. Для добавления третьей размерности к А  запишем


A(:,:,2) = [1  0  4; 3  5  6; 9  8  7].

 

MATLAB выдаст

                                                 

                                                   A(:, : ,1) =

5   7   8

0   1   9

4   3   6

 

                                                 A(:, :, 2) =

1   0   4

3   5   6

9   8   7

 

Вы можете продолжить добавление строк, столбцов или страниц аналогичным образом.

Расширение Многомерных Массивов. Для расширения любой размерности массива А нужно:

  • Увеличить или добавить соответствующий индекс и задать требуемые значения.
  • Добавить такое же количество элементов к соответствующим размерностям массива. Так, для числовых массивов все строки должны иметь одинаковое число элементов, все страницы должны иметь одинаковое число строк и столбцов и т.д.

Вы можете воспользоваться свойством скалярного распространения системы MATLAB, совместно с оператором двоеточия, для заполнения всей размерности единственным числом:


A(:, :, 3) = 5;

 

A(:, :, 3)

 

                                                            ans =

5   5   5

5   5   5

5   5   5


Для превращения А в четырехмерный массив размерности 3х3х3х2 введите


A(:, :, 1, 2) = [1  2  3; 4  5  6; 7  8  9];

A(:, :, 2, 2) = [9  8  7; 6  5  4; 3  2  1];

A(:, :, 3, 2) = [1  0  1; 1  1  0; 0  1  1];

 

Отметим, что после первых двух вводов MATLAB добавляет в A требуемое количество  нулей, чтобы поддержать соответствующие размеры размерностей (речь идет о первом элементе по четвертой размерности, то есть при четвертом индексе равном единице, массив А будет содержать три нулевые матрицы размера 3х3).

Создание масивом с применением функций MATLAB-а.

Вы можете использовать для создания многомерных массивов такие функции MATLAB-а как randn, ones, и  zeros, совершенно аналогично способу используемому для двумерных матриц. Каждый вводимый аргумент представляет размер соответствующей размерности в результирующем массиве. Например, для создания массива нормально распределенных случайных чисел размера 4х3х2 следует записать:


B = randn(4,3,2).

 

Для создания массива, заполненного единственным постоянным значением можно восполь-зоваться функцией repmat. Эта функция копирует массив (в нашем случае массив размера 1х1) вдоль вектора размерностей массива.


B = repmat(5,[3 4 2])

 

                                                    B(:, :, 1) =

5  5  5  5

5  5  5  5

5  5  5  5

 

                                                    B(:, :, 2) =

Страницы: 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 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.