• Матлаб описание программы. Matlab - пакет прикладных программ для решения задач технических вычислений - установка и настройка

    ТАМБОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ


    КАФЕДРА

    «Информационные процессы и управление»

    Методическая разработка

    для проведения лабораторного занятия №1

    по дисциплине "Теория принятия решений"

    Наименование дисциплины

    наименование темы

    Тема: Исследование методов одномерной оптимизации

    Цель работы:

    Изучение методов одномерной оптимизации и способов их алгоритмической реализации в среде многофункциональной интегрированной системы автоматизации математических и научно-технических расчетов MATLAB 7.1;

    Сравнительная оценка по объему вычислительных затрат методов: прямого сканирования, дихотомии, «золотого сечения» и метода Фибоначчи.

    Литература:

    1. Аоки М. Введение в методы оптимизации. М.: Наука, 1977. 444 с.

    2. Батищев Д.И. Методы оптимального проектирования. М.: «Радио и связь», 1984. 248 с.

    3. Бодров В.И., Лазарева Т.Я., Мартемьянов Ю.Ф. Математические методы принятия решений: Учеб. пособие. Тамбов: Изд-во Тамб. гос. тех. ун-та, 2004. 124 с.

    4. Полак Э. Численные методы оптимизации. М.: Мир, 1997. 376 с.

    5. Химмельблау Д. Прикладное нелинейное программирование. М.: Мир, 1975. 534 с.

    6. Юдин Д.Б. Вычислительные методы теории принятия решений. М.: Наука, 1989. 316 с.

    7. Кетков Ю. Л., Кетков А. Ю., Шульц М. М. MATLAB 7: программирование, численные методы. - СПб.: БХВ-Петербург, 2005. - 752 с

    По проведению занятия

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

    Теоретический материал, на основе которого осуществлялось моделирование, а также суть формализованных в программах физических процессов;

    Основные методы моделирования соответствующих процессов;

    Выполнять выбор и оценку влияния основных параметров на результат моделирования;

    Анализировать и обобщать полученные результаты.

    Выполнение лабораторной работы включает в себя три этапа: предварительную подготовку к лабораторному занятию, непосредственно занятие, отчетность по лабораторному занятию.

    Занятие преследует цель показать связь теоретического материала с практикой и научить студентов применять теорию к решению практических задач.

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

    Подготовка к занятию

    Накануне занятия студенты должны:

    Ознакомится с руководством по данному лабораторному занятию;

    Повторить лекционный материал и изучить предлагаемую литературу по данной теме;

    Изучить порядок выполнения работы;

    Подготовиться к ответу на контрольные вопросы.

    Порядок проведения занятия

    В вводной части занятия осуществляется прием учебной группы, дается связь с ранее изученным материалом, объявляются тема, цель, порядок и особенности проведения данного занятия, проверяется подготовленность учебной группы к занятию.

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

    Отчетность по занятию

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

    Краткая характеристика MATLAB

    Система MATLAB (Matrix Laboratory) состоит из большого количества специальных программ, позволяющих решать широкий спектр математических и технических задач из разных областей науки. Главный ее элемент – это ядро системы MATLAB. В дополнение к нему система содержит около 80-ти различных комплектов команд (т.н. "Toolboxes"), соответствующие различным разделам математики, математической физики, проектирования, связи, экономики и т.д. В данной работе используются базовые средства программирования MATLAB: М-файлы – функции, встроенные функции, операторы, команды и т.п.

    Рис.1. Рабочий стол системы

    На рис.1 представлен рабочий стол системы. Строка меню (File, Edit, и т.д.) во многом схожа с аналогичной строкой редактора Microsoft Word. Расположенный ниже ряд иконок также выполняют те же операции, что и в редакторе Word (за исключением 3-х последних). Рабочий стол системы состоит их нескольких окон, состав которых можно менять с помощью команд меню Desktop. На рис.1 в верхнем окне слева приводится содержимое рабочего пространства Workspace , куда помещены описания всех констант и функций, введенных пользователем в процессе работы. В нижнем окне Command History приводится последовательность выполненных команд. Размеры окон регулируются перетаскиванием границы с помощью мыши. Главное окно рабочего стола – Command Window (командное окно). В командном окне после знака ">>" набирается командная строка, которая выполняется после нажатия клавиши "Enter ".

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

    Формат числа задается меню File (рис.1) в разделе Preferences с помощью функции Numeric Format. Наиболее часто используемыми из 12-ти возможных являются форматы Short и Long – краткая и длинная форматы чисел.

    Одними изосновных понятий MATLAB являются переменные и утверждения .

    Переменная обозначается одной буквой или набором букв и цифр, начинающимся с буквы. Число букв и цифр в наборе в сумме не должно превышать девятнадцать. Утверждение имеет следующую форму:

    >>переменная=выражение

    При введении утверждения переменной присваивается выражение, которое стоит за знаком равенства, или, если оно включает какие-либо математические операции, то результат, который получается после выполнения этих операций. Вводить утверждение можно в М-файле или в командном окне программы MATLAB. Знак «>>» является командной подсказкой, появление которой на экране дисплея в командном окне указывает на то, что утверждения можно вводить.

    Основные арифметические операторы приведены в табл.1.1. При выполнении вычислений в командном окне после нажатия клавиши "Enter " результат присваивается параметру "ans ", если соответствующему выражению не присвоено имя, или его имени - в противном случае (имена переменных, констант и функций должны начинаться с буквы (буквы латинские), могут содержать цифры и символ подчеркивания). Для блокировки вывода результата вычислений некоторого выражения после него надо установить знак; (точка с запятой).

    Таблица 1.1

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

    >> x=log(1+5*((log10(100))^2-0.2*pi)/sqrt(1+2.71828^3))

    После введения утверждения, т.е. нажатия клавиши Enter, ниже сразу выдается результат. Если результат нужно заблокировать, т.е. не надо выдавать на экран дисплея, то в конце утверждения нужно поставить знак « ; » (точку с запятой). Предыдущее выражение можно представить и в иной форме:

    >> a=(log10(100))^2;

    >> b=sqrt(1+2.71828^3);

    >> x=log(1+5*(a-0.2*pi)/b)

    MATLAB имеет несколько встроенных переменных: pi, eps, inf, i и j. Переменная pi обозначает число , eps =2 -52 =2.2204*10 -16 – погрешность для операций над числами с плавающей точкой, inf - бесконечность (), i и j – мнимую единицу (i = j = ).

    Когда аргумент слева не указан, результат выражения присваивается общей переменной ans.

    Операторы отношения (табл. 1.2) используются в условных операторах, операторах цикла и т.п. при реализации алгоритмов поиска с использованием М-функций (подпрограммы-функции записываются в файлах с расширением.m).

    Таблица 1.2

    Итак, программами в системе MATLAB являются М-файлы текстового формата, содержащие запись программ в виде программных кодов.

    Входной язык MATLAB насчитывает всего 9 операторов, использующих 14 служебных слов. Соответствующие синтаксические конструкции приведены в табл. 1.3.

    Таблица 1.3

    Формат оператора Пояснение
    var = expr Оператор присваивания. Вычисляет значения выражения expr и заносит результаты вычислений в переменную var
    ifусловие_1 операторы_1 end Условный оператор. Если справедливо условие_1, то выполняется группа операторы_1, если справедливо условие_2, то выполняется группа операторы_2, ... Если все указанные условия оказываются ложными, то выполняются операторы, расположенные между else и end
    switchexpr casevail операторы_1 caseval2 операторы_2 . . . . . . . . . [ othervise операторы] end Переключатель по значению выражения expr. Если оно совпадает с величиной vail , то выполняется группа операторы_1, если оно совпадает с величиной val2, то выполняется группа операторы_2, ... Если значение expr не совпадает ни с одной из перечисленных величин, то выполняются операторы, расположенные между othervise и end
    forvar=el:e3 операторы end Цикл типа арифметической прогрессии, в котором переменная var при каждом повторении тела цикла изменяется от начального значения el с шагом е2 до конечного значения еЗ
    whileусловие операторы end Цикл с предусловием, повторяющийся до тех пор, пока истинно указанное условие
    try операторы_1 catch операторы 2 end Попытка выполнить группу операторы_1. При условии, что в результате их выполнения возникает исключительная ситуация, управление передается группе операторы_2 (обработка сбойных ситуаций). Если ошибка не возникла, то группа операторы_2 не выполняется
    break Досрочный выход из управляющих конструкций типа for , while, switch, try - catch
    function f1 function f2 (x1,х2, . . .) function y=f3(xl,x2,...) function =f4(xl,x2,. . .) Заголовок функции (xl, х2, ... - входные параметры; y, yl, у2, ... -выходные параметры)
    return Досрочный выход из тела функции

    При написании программ-функций требуется, чтобы имя М-файла, в котором запоминается программа, обязательно совпадало с именем функции.

    Все переменные, появляющиеся в теле функции, за исключением глобальных переменных (объявленных оператором global), входных и выходных параметров, считаются локальными. Они образуют локальное рабочее пространство и доступны только в теле породившей их функции, и никакие другие функции воспользоваться ими не могут.

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

    1. Урок 23. Знакомство с пакетами расширения MATLAB

    Урок №23.

    Знакомство с пакетами расширения МАТLАВ

      Вывод списка пакетов расширения

      Simulinc for Windows

      Пакет символьной математики

      Пакеты математических вычислений

      Пакеты анализа и синтеза систем управления

      Пакеты идентификации систем

      Дополнительные средства пакета Simulinc

      Пакеты для обработки сигналов и изображений

      Прочие пакеты прикладных программ

    В этом уроке мы кратко ознакомимся с основными средствами профессионального расширения системы и ее адаптации под решение определенных классов математических и научно-технических задач - с пакетами расширения системы MATLAB. Несомненно, что хотя бы части из этих пакетов должен быть посвящен отдельный учебный курс или справочник, быть может, и не один. За рубежом по большинству таких расширений опубликованы отдельные книги, а объем документации по ним составляет сотни мегабайт. К сожалению, объем данной книги позволяет лишь немного пройтись по пакетам расширения, с тем чтобы дать читателю представление о том, в каких направлениях развивается система.

    2. Вывод списка пакетов расширения

    Вывод списка пакетов расширения

    Полный состав системы MATLAB 6.0 содержит ряд компонентов, название, номер версии и дату создания которых можно вывести на просмотр командой ver:

    MATLAB Version 6.0.0.88 (R12) on PCWIN MATLAB License Number: 0

    MATLAB Toolbox

    Version 6.0

    06-0ct-2000

    Version 4.0

    Version 4.0

    04-0ct-2000

    Stateflow Coder

    Version 4.0

    04-0ct-2000

    Real -Time Workshop

    Version 4.0

    COMA Reference Blockset

    Version 1.0.2

    Communications Blockset

    Version 2.0

    Communications Toolbox

    Version 2.0

    Control System Toolbox

    Version 5.0

    DSP Blockset

    Version 4.0

    Data Acquisition Toolbox

    Version 2.0

    05-0ct-2000

    Database Toolbox

    Version 2.1

    Datafeed Toolbox

    Version 1.2

    Dials & Gauges Blockset

    Version 1.1

    Filter Design Toolbox

    Version 2.0

    Financial Derivatives Toolbox

    Version 1.0

    Financial Time Series Toolbox

    Version 1.0

    Financial Toolbox

    Version 2.1.2

    Fixed-Point Blockset

    Version 3.0

    Fuzzy Logic Toolbox

    Version 2.1

    GARCH Toolbox

    Version 1.0

    Image Processing Toolbox

    Version 2.2.2

    Instrument Control Toolbox

    Version 1.0

    LMI Control Toolbox

    Version 1.0.6

    MATLAB Compiler

    Version 2.1

    MATLAB Report Generator

    Version 1.1

    Mapping Toolbox

    Version 1.2


    Version 1.0.5

    Motorola DSP Developer"s Kit

    Version 1.1

    Ol-Sep-2000

    Ми-Analysis and Synthesis Toolbox

    Version 3.0.5

    Neural Network Toolbox

    Version 4.0

    Nonlinear Control Design Blockset

    Version 1.1.4

    Optimization Toolbox

    Version 2.1

    Partial Differential Equation Toolbox

    Version 1.0.3

    Power System Blockset

    Version 2.1

    Real -Time Workshop Ada Coder

    Version 4.0

    Real -Time Workshop Embedded Coder

    Version 1.0

    Requirements Management Interface

    Version 1.0.1

    Robust Control Toolbox

    Version 2.0.7

    SB2SL (converts SystemBuild to Simu

    Version 2.1

    Signal Processing Toolbox

    Version 5.0

    Simulink Accelerator

    Version 1.0

    Model Differencing for Simulink and...

    Version 1.0

    Simulink Model Coverage Tool

    Version 1.0

    Simulink Report Generator

    Version 1.1

    Spline Toolbox

    Version 3.0

    Statistics Toolbox

    Version 3.0

    Symbolic Math Toolbox

    Version 2.1.2


    Version 5.0

    Wavelet Toolbox

    Version 2.0

    Version 1.1

    xPC Target Embedded Option

    Version 1.1

    Обратите внимание, что практически все пакеты расширения в MATLAB 6.0 обновлены и датируются 2000 годом. Заметно расширено их описание, которое в PDF-формате уже занимает много более десятка тысяч страниц. Ниже дано краткое описание основных пакетов расширения

    3. Simulink for Windows

    Simulink for Windows

    Пакет расширения Simulink служит для имитационного моделирования моделей, состоящих из графических блоков с заданными свойствами (параметрами). Компоненты моделей, в свою очередь, являются графическими блоками и моделями, которые содержатся в ряде библиотек и с помощью мыши могут переноситься в основное окно и соединяться друг с другом необходимыми связями. В состав моделей могут включаться источники сигналов различного вида, виртуальные регистрирующие приборы, графические средства анимации. Двойной щелчок мышью на блоке модели выводит окно со списком его параметров, которые пользователь может менять. Запуск имитации обеспечивает математическое моделирование построенной модели с наглядным визуальным представлением результатов. Пакет основан на построении блочных схем путем переноса блоков из библиотеки компонентов в окно редактирования создаваемой пользователем модели. Затем модель запускается на выполнение. На рис. 23.1 показан процесс моделирования простой системы - гидравлического цилиндра. Контроль осуществляется с помощью виртуальных осциллографов - на рис. 23.1 видны экраны двух таких осциллографов и окно простой подсистемы модели. Возможно моделирование сложных систем, состоящих из множества подсистем.

    Simulink составляет и решает уравнения состояния модели и позволяет подключать в нужные ее точки разнообразные виртуальные измерительные приборы. Поражает наглядность представления результатов моделирования. Ряд примеров применения пакета Simulink уже приводился в уроке 4. Предшествующая версия пакета достаточно подробно описана в книгах. Основным нововведением является обработка матричных сигналов. Добавлены отдельные пакеты повышения производительности Simulink, такие как Simulink Accelerator для компиляции кода моделей, Simulink profiler для анализа кода и т. д.

    Рис. 23.1. Пример моделирования системы гидравлического цилиндра с помощью расширения Simulink

    1.gif

    Изображение:

    1b.gif

    Изображение:

    4. Real Time Windows Target и Workshop

    Real Time Windows Target и Workshop

    Подключающаяся к Simulink мощная подсистема имитационного моделирования в реальном масштабе времени (при наличии дополнительных аппаратных средств в виде плат расширения компьютера), представленная пакетами расширения Real Time Windows Target и Workshop, - мощное средство управления реальными объектами и системами. Кроме того, эти расширения позволяют создавать исполняемые коды моделей. Рис. 4.21 в уроке 4 показывает пример такого моделирования для системы, описываемой нелинейными дифференциальными уравнениями Ван-дер-Поля. Достоинством такого моделирования является его математическая и физическая наглядность. В компонентах моделей Simulink можно задавать не только фиксированные параметры, но и математические соотношения, описывающие поведение моделей.

    5. Report Generator для MATLAB и Simulink

    Report Generator для MATLAB и Simulink

    Генераторы отчетов - средство, введенное еще в MATLAB 5.3.1, дает информацию о работе системы MATLAB и пакета расширения Simulink. Это средство очень полезно при отладке сложных вычислительных алгоритмов или при моделировании сложных систем. Генераторы отчетов запускаются командой Report. Отчеты могут быть представлены в виде программ и редактироваться.

    Генераторы отчетов могут запускать входящие в отчеты команды и фрагменты программ и позволяют проконтролировать поведение сложных вычислений.

    6. Neural Networks Toolbox

    Neural Networks Toolbox

    Пакет прикладных программ, содержащих средства для построения нейронных сетей, базирующихся на поведении математического аналога нейрона. Па-кет обеспечивает эффективную поддержку проектирования, обучения и моделирования множества известных сетевых парадигм, от базовых моделей персептрона до самых современных ассоциативных и самоорганизующихся сетей. Пакет может быть использован для исследования и применения нейронных сетей к таким задачам, как обработка сигналов, нелинейное управление и финансовое моделирование. Обеспечена возможность генерации переносимого С-кода с помощью Real Time Workshop.

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

    Для управляемых сетей можно выбрать прямую или рекуррентную архитектуру, используя множество обучающих правил и методов проектирования, таких как персептрон, обратное распространение, обратное распространение Левенберга, сети с радиальным базисом и рекуррентные сети. Вы можете легко изменять любые архитектуры, обучающие правила или переходные функции, добавлять новые, - и все это без написания единой строки на Си или ФОРТРАН. Пример применения пакета для распознавания образа буквы приводился в уроке 4. Детальное описание предшествующей версии пакета можно найти в книге.

    7. Fuzzy Logic Toolbox

    Fuzzy Logic Toolbox

    Пакет прикладных программ Fuzzy Logic относится к теории нечетких (размытых) множеств. Обеспечивается поддержка современных методов нечеткой кластеризации и адаптивных нечетких нейронных сетей. Графические средства пакета позволяют интерактивно отслеживать особенности поведения системы.

    Основные возможности пакета:

    • определение переменных, нечетких правил и функций принадлежности;
    • интерактивный просмотр нечеткого логического вывода;
    • современные методы: адаптивный нечеткий вывод с использованием нейронных сетей, нечеткая кластеризация;
    • интерактивное динамическое моделирование в Simulink;
    • генерация переносимого Си кода с помощью Real-Time Workshop.

    Этот пример наглядно показывает отличия в поведении модели при учете нечеткой логики и без такого учета.

    8. Symbolic Math Toolbox

    Symbolic Math Toolbox

    Пакет прикладных программ, дающих системе MATLAB принципиально новые возможности - возможности решения задач в символьном (аналитическом) виде, включая реализацию точной арифметики произвольной разрядности. Пакет базируется на применении ядра символьной математики одной из самых мощных систем компьютерной алгебры - Maple V R4. Обеспечивает выполнение символьного дифференцирования и интегрирования, вычисление сумм и произведений, разложение в ряды Тейлора и Маклорена, операции со степенными многочленами (полиномами), вычисление корней полиномов, решение в аналитическом виде нелинейных уравнений, всевозможные символьные преобразования, подстановки и многое другое. Имеет команды прямого доступа к ядру системы Maple V.

    Пакет позволяет готовить процедуры с синтаксисом языка программирования системы Maple V R4 и устанавливать их в системе MATLAB. К сожалению, по возможностям символьной математики пакет сильно уступает специализированным системам компьютерной алгебры, таким как новейшие версии Maple и Mathematica.

    9. Пакеты математических вычислений

    Пакеты математических вычислений

    В MATLAB входит множество пакетов расширения, усиливающих математические возможности системы, повышающих скорость, эффективность и точность вычислений.

    10. NAG Foundation Toolbox

    NAG Foundation Toolbox

    Одна из самых мощных библиотек математических функций, созданная специальной группой The Numerical Algorithms Group, Ltd. Пакет содержит сотни новых функций. Названия функций и синтаксис их вызова заимствованы из известной библиотеки NAG Foundation Library. Вследствие этого опытные пользователи NAG ФОРТРАН могут без затруднений работать с пакетом NAG в MATLAB. Библиотека NAG Foundation предоставляет свои функции в виде объектных кодов и соответствующих m-файлов для их вызова. Пользователь может легко модифицировать эти МЕХ-файлы на уровне исходного кода.

    Пакет обеспечивает следующие возможности:

      корни многочленов и модифицированный метод Лагерра;

      вычисление суммы ряда: дискретное и эрмитово-дискретное преобразование Фурье;

      обыкновенные дифференциальные уравнения: методы Адамса и Рунге-Кутта;

      уравнения в частных производных;

      интерполяция;

      вычисление собственных значений и векторов, сингулярных чисел, поддержка комплексных и действительных матриц;

      аппроксимация кривых и поверхностей: полиномы, кубические сплайны, полиномы Чебышева;

      минимизация и максимизация функций: линейное и квадратичное программирование, экстремумы функций нескольких переменных;

      разложение матриц;

      решение систем линейных уравнений;

      линейные уравнения (LAPACK);

      статистические расчеты, включая описательную статистику и распределения вероятностей;

      корреляционный и регрессионный анализ: линейные, многомерные и обобщенные линейные модели;

      многомерные методы: главных компонент, ортогональные вращения;

      генерация случайных чисел: нормальное распределение, распределения Пуассона, Вейбулла и Кощи;

      непараметрические статистики: Фридмана, Крускала-Уоллиса, Манна-Уитни; О временные ряды: одномерные и многомерные;

      аппроксимации специальных функций: интегральная экспонента, гамма-функция, функции Бесселя и Ганкеля.

    Наконец, этот пакет позволяет пользователю создавать программы на ФОРТРАН, которые динамически линкуются с MATLAB.

    11. Spline Toolbox

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

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

    Пакет Spline оснащен программами работы с В-сплайнами, описанными в работе «A Practical Guide to Splines» Карлом Дебуром, создателем сплайнов и автором пакета Spline. Функции пакета в сочетании с языком MATLAB и подробным руководством пользователя облегчают понимание сплайнов и их эффективное применение к решению разнообразных задач.

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

    12. Statistics Toolbox

    Statistics Toolbox

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

      описательная статистика;

      распределения вероятностей;

      оценка параметров и аппроксимация;

      проверка гипотез;

      множественная регрессия;

      интерактивная пошаговая регрессия;

      моделирование Монте-Карло;

      аппроксимация на интервалах;

      статистическое управление процессами;

      планирование эксперимента;

      моделирование поверхности отклика;

      аппроксимация нелинейной модели;

      анализ главных компонент;

      статистические графики;

      графический интерфейс пользователя.

    Пакет включает 20 различных распределений вероятностей, включая t (Стъюдента), F и Хи-квадрат. Подбор параметров, графическое отображение распределений и способ вычисления лучших аппроксимаций предоставляются для всех типов распределений. Предусмотрено множество интерактивных инструментов для динамической визуализации и анализа данных. Имеются специализированные интерфейсы для моделирования поверхности отклика, визуализации распределений, генерации случайных чисел и линий уровня.

    13. Optimization Toolbox

    Optimization Toolbox

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

      безусловная оптимизация нелинейных функций;

      метод наименьших квадратов и нелинейная интерполяция;

      решение нелинейных уравнений;

      линейное программирование;

      квадратичное программирование;

      условная минимизация нелинейных функций;

      метод минимакса;

      многокритериальная оптимизация.

    Разнообразные примеры демонстрируют эффективное применение функций пакета. С их помощью можно также сравнить, как одна и та же задача решается разными методами.

    14. Partial Differential Equations Toolbox

    Partial Differential Equations Toolbox

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

      полноценный графический интерфейс для обработки уравнений с частными производными второго порядка;

      автоматический и адаптивный выбор сетки;

      задание граничных условий: Дирихле, Неймана и смешанных;

      гибкая постановка задачи с использованием синтаксиса MATLAB;

      полностью автоматическое сеточное разбиение и выбор величины конечных элементов;

      нелинейные и адаптивные расчетные схемы;

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

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

    15. Пакеты анализа и синтеза систем управления

    Пакеты анализа и синтеза систем управления

    Control System Toolbox

    Пакет Control System предназначен для моделирования, анализа и проектирования систем автоматического управления - как непрерывных, так и дискретных. Функции пакета реализуют традиционные методы передаточных функций и современные методы пространства состояний. Частотные и временные отклики, диаграммы расположения нулей и полюсов могут быть быстро вычислены и отображены на экране. В пакете реализованы:

      полный набор средств для анализа MIMO-систем (множество входов - множество выходов) систем;

      временные характеристики: передаточная и переходная функции, реакция на произвольное воздействие;

      частотные характеристики: диаграммы Боде, Николса, Найквиста и др.;

      разработка обратных связей;

      проектирование LQR/LQE-регуляторов;

      характеристики моделей: управляемость, наблюдаемость, понижение порядка моделей;

      поддержка систем с запаздыванием.

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

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

    Пакет Control System содержит средства для выбора параметров обратной связи. Среди традиционных методов: анализ особых точек, определение коэффициента усиления и затухания. Среди современных методов: линейно-квадратичное регулирование и др. Пакет Control System включает большое количество алгоритмов для проектирования и анализа систем управления. Кроме того, он обладает настраиваемым окружением и позволяет создавать свои собственные m-файлы.

    16. Nonlinear Control Design Toolbox

    Nonlinear Control Design Toolbox

    Nonlinear Control Design (NCD) Blockset реализует- метод динамической оптимизации для проектирования систем управления. Этот инструмент, разработанный для использования с Simulink, автоматически настраивает системные параметры, основываясь на определенных пользователем ограничениях на временные характеристики.

    Пакет использует перенос объектов мышью для изменения временных ограничений прямо на графиках, что позволяет легко настраивать переменные и указывать неопределенные параметры, обеспечивает интерактивную оптимизацию, реализует моделирование методом Монте-Карло, поддерживает проектирование SISO- (один вход - один выход) и MIMO-систем управления, позволяет моделировать подавление помех, слежение и другие типы откликов, поддерживает проблемы повторяющегося параметра и задачи управления системами с запаздыванием, позволяет осуществлять выбор между удовлетворенными и недостижимыми ограничениями.

    17. Robust Control Toolbox

    Robust Control Toolbox

    Пакет Robust Control включает средства для проектирования и анализа многопараметрических устойчивых систем управления. Это системы с ошибками моделирования, динамика которых известна не полностью или параметры которых могут изменяться в ходе моделирования. Мощные алгоритмы пакета позволяют выполнять сложные вычисления с учетом изменения множества параметров. Возможности пакета:

      синтез LQG-регуляторов на основе минимизации равномерной и интегральной нормы;

      многопараметрический частотный отклик;

      построение модели пространства состояний;

      преобразование моделей на основе сингулярных чисел;

      понижение порядка модели;

      спектральная факторизация.

    Пакет Robust Control базируется на функциях пакета Control System, одновременно предоставляя усовершенствованный набор алгоритмов для проектирования систем управления. Пакет обеспечивает переход между современной теорией управления и практическими приложениями. Он имеет множество функций, реализующих современные методы проектирования и анализа многопараметрических робастных регуляторов.

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

    Пакет Robust Control обеспечивает различные методы проектирования обратных связей, среди которых: LQR, LQG, LQG/LTR и др. Необходимость понижения порядка модели возникает в нескольких случаях: понижение порядка объекта, понижение порядка регулятора, моделирование больших систем. Качественная процедура понижения порядка модели должна быть численно устойчива. Процедуры, включенные в пакет Robust Control, успешно справляются с этой задачей.

    18. Model Predictive Control Toolbox

    Model Predictive Control Toolbox

    Пакет Model Predictive Control содержит полный набор средств для реализации стратегии предиктивного (упреждающего) управления. Эта стратегия была разработана для решения практических задач управления сложными многоканальными процессами при наличии ограничений на переменные состояния и управление. Методы предикативного управления используются в химической промышленности и для управления другими непрерывными процессами. Пакет обеспечивает:

      моделирование, идентификацию и диагностику систем;

      поддержку MISO (много входов - один выход), MIMO, переходных характеристик, моделей пространства состояний;

      системный анализ;

      конвертирование моделей в различные формы представления (пространство состояний, передаточные функции);

      предоставление учебников и демонстрационных примеров.

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

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

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

    19. мю - Analysis and Synthesis

    (Мю)-Analysis and Synthesis

    Пакет p-Analysis and Synthesis содержит функции для проектирования устойчивых систем управления. Пакет использует оптимизацию в равномерной норме и сингулярный параметр и. В этот пакет включен графический интерфейс для упрощения операций с блоками при проектировании оптимальных регуляторов. Свойства пакета:

    • проектирование регуляторов, оптимальных в равномерной и интегральной норме;
    • оценка действительного и комплексного сингулярного параметра мю;
    • D-K-итерации для приближенного мю -синтеза;

      графический интерфейс для анализа отклика замкнутого контура;

      средства понижения порядка модели;

      непосредственное связывание отдельных блоков больших систем.

    Модель пространства состояний может быть создана и проанализирована на основе системных матриц. Пакет поддерживает работу с непрерывными и дискретными моделями. Пакет обладает полноценным графическим интерфейсом, включающим в себя: возможность устанавливать диапазон вводимых данных, специальное окно для редактирования свойств D-K итераций и графическое представление частотных характеристик. Имеет функции для матричного сложения, умножения, различных преобразований и других операций над матрицами. Обеспечивает возможность понижения порядка моделей.

    20. Stateflow

    Stateflow - пакет моделирования событийно-управляемых систем, основанный на теории конечных автоматов. Этот пакет предназначен для использования вместе с пакетом моделирования динамических систем Simulink. В любую Simulink-мо-дель можно вставить Stateflow-диаграмму (или SF-диаграмму), которая будет отражать поведение компонентов объекта (или системы) моделирования. SF-диаграмма является анимационной. По ее выделяющимся цветом блокам и связям можно проследить все стадии работы моделируемой системы или устройства и поставить ее работу в зависимость от тех или иных событий. Рис. 23.6 иллюстрирует моделирование поведения автомобиля при возникновении чрезвычайного обстоятельства на дороге. Под моделью автомобиля видна SF-диаграмма (точнее, один кадр ее работы).

    Для создания SF-диаграмм пакет имеет удобный и простой редактор, а также средства пользовательского интерфейса.

    21. Quantitative Feedback Theory Toolbox

    Quantitative Feedback Theory Toolbox

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

      оценка частотных границ неопределенности, присущей обратной связи;

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

      функции для определения влияния различных блоков, вводимых в модель (мультиплексоров, сумматоров, петель обратной связи) при наличии неопределенностей;

      поддержка моделирования аналоговых и цифровых контуров обратной связи, каскадов и многоконтурных схем;

      разрешение неопределенности в параметрах объекта с использованием параметрических и непараметрических моделей или комбинации этих типов моделей.

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

    Пакет позволяет вычислять различные параметры обратных связей, фильтров, проводить тестирование регуляторов как в непрерывном, так и в дискретном пространстве. Имеет удобный графический интерфейс, позволяющий создавать простые регуляторы, удовлетворяющие требованиям пользователя.

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

    22. LMI Control Toolbox

    LMI Control Toolbox

    Пакет LMI (Linear Matrix Inequality) Control обеспечивает интегрированную среду для постановки и решения задач линейного программирования. Предназначенный первоначально для проектирования систем управления пакет позволяет решать любые задачи линейного программирования практически в любой сфере деятельности, где такие задачи возникают. Основные возможности пакета:

      решение задач линейного программирования: задачи совместности ограничений, минимизация линейных целей при наличии линейных ограничений, минимизация собственных значений;

      исследование задач линейного программирования;

      графический редактор задач линейного программирования;

      задание ограничений в символьном виде;

      многокритериальное проектирование регуляторов;

      проверка устойчивости: квадратичная устойчивость линейных систем, устойчивость по Ляпунову, проверка критерия Попова для нелинейных систем.

    Пакет LMI Control содержит современные симплексные алгоритмы для решения задач линейного программирования. Использует структурное представление линейных ограничений, что повышает эффективность и минимизирует требования к памяти. Пакет имеет специализированные средства для анализа и проектирования систем управления на основе линейного программирования.

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

    Пакет является мощным средством для решения выпуклых задач оптимизации, возникающих в таких областях, как управление, идентификация, фильтрация," структурное проектирование, теория графов, интерполяция и линейная алгебра. Пакет LMI Control включает два вида графического интерфейса пользователя: редактор задачи линейного программирования (LMI Editor) и интерфейс Magshape. LMI Editor позволяет задавать ограничения в символьном виде, a Magshape обеспечивает пользователя удобными средствами работы с пакетом.

    23. Пакеты идентификации систем

    Пакеты идентификации систем

    System Identification Toolbox

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

      простой и гибкий интерфейс;

      предварительная обработка данных, включая предварительную фильтрацию, удаление трендов и смещений; О выбор диапазона данных для анализа;

      анализ отклика во временной и частотной области;

      отображение нулей и полюсов передаточной функции системы;

      анализ невязок при тестировании модели;

      построение сложных диаграмм, таких как диаграмма Найквиста и др.

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

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

    Начав с измерения выхода и входа, можно создать параметрическую модель системы, описывающую ее поведение в динамике. Пакет поддерживает все традиционные структуры моделей, включая авторегрессию, структуру Бокса-Дженкинса и др. Он поддерживает линейные модели пространства состояний, которые могут быть определены как в дискретном, так и в непрерывном пространстве. Эти модели могут включать произвольное число входов и выходов. В пакет включены функции, которые можно использовать как тестовые данные для идентифицированных моделей. Идентификация линейных моделей широко используется при проектировании систем управления, когда требуется создать модель объекта. В задачах обработки сигналов модели могут быть использованы для адаптивной обработки сигналов. Методы идентификации успешно применяются и для финансовых приложений.

    24. Frequency Domain System Identification Toolbox

    Frequency Domain System Identification Toolbox

    Пакет Frequency Domain System Identification предоставляет специализированные средства для идентификации линейных динамических систем по их временному или частотному отклику. Частотные методы направлены на идентификацию непрерывных систем, что является мощным дополнением к более традиционной дискретной методике. Методы пакета могут быть применены к таким задачам, как моделирование электрических, механических и акустических систем. Свойства пакета:

      периодические возмущения, пик-фактор, оптимальный спектр, псевдослучайные и дискретные двоичные последовательности;

      расчет доверительных интервалов амплитуды и фазы, нулей и полюсов;

      идентификация непрерывных и дискретных систем с неизвестным запаздыванием;

      диагностика модели, включая моделирование и вычисление невязок;

      преобразование моделей в формат System Identification Toolbox и обратно.

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

    25. Дополнительные пакеты расширения MATLAB

    Дополнительные пакеты расширения MATLAB

    Communications Toolbox

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

    26. Digital Signal Processing (DSP) Blockset

    Digital Signal Processing (DSP) Blockset

    Пакет прикладных программ для проектирования устройств, использующих процессоры цифровой обработки сигналов. Это прежде всего высокоэффективные цифровые фильтры с заданной или адаптируемой к параметрам сигналов частотной характеристикой (АЧХ). Результаты моделирования и проектирования цифровых устройств с помощью этого пакета могут использоваться для построения высокоэффективных цифровых фильтров на современных микропроцессорах цифровой обработки сигналов.

    27. Fixed-Point Blockset

    Fixed-Point Blockset

    Этот специальный пакет ориентирован на моделирование цифровых систем управления и цифровых фильтров в составе пакета Simulink. Специальный набор компонентов позволяет быстро переключаться между вычислениями с фиксированной и плавающей запятой (точкой). Можно указывать 8-, 16- или 32-битовую длину слова. Пакет обладает рядом полезных свойств:

      применение беззнаковой или двоичной арифметики;

      выбор пользователем положения двоичной точки;

      автоматическая установка положения двоичной точки;

      просмотр максимального и минимального диапазонов сигнала модели;

      переключение между вычислениями с фиксированной и плавающей точкой;

      коррекция переполнения и наличие ключевых компонентов для операций с фиксированной точкой; логические операторы, одно- и двумерные справочные таблицы.

    28. Пакеты для обработки сигналов и изображений

    Пакеты для обработки сигналов и изображений

    Signal Processing Toolbox

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

    Пакет Signal Processing обеспечивает чрезвычайно обширные возможности создания программ обработки сигналов для современных научных и технических приложений. В пакете используется разнообразная техника фильтрации и новейшие алгоритмы спектрального анализа. Пакет содержит модули для разработки линейных систем и анализа временных рядов. Пакет будет полезен, в частности, в таких областях, как обработка аудио- и видеоинформации, телекоммуникации, геофизика, задачи управления в реальном режиме времени, экономика, финансы и медицина. Основные свойства пакета:

      моделирование сигналов и линейных систем;

      проектирование, анализ и реализация цифровых и аналоговых фильтров;

      быстрое преобразование Фурье, дискретное косинусное и другие преобразования;

      оценка спектров и статистическая обработка сигналов;

      параметрическая обработка временных рядов;

      генерация сигналов различной формы.

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

    Пакет Signal Processing включает полный набор методов для создания цифровых фильтров с разнообразными характеристиками. Он позволяет быстро разрабатывать фильтры верхних и нижних частот, полосовые пропускающие и задерживающие фильтры, многополосные фильтры, в том числе фильтры Чебышева, Юла-Уолкера, эллиптические и др.

    Графический интерфейс позволяет проектировать фильтры, задавая требования к ним в режиме переноса объектов мышью. В пакет включены следующие новые методы проектирования фильтров:

      обобщенный метод Чебышева для создания фильтров с нелинейной фазовой характеристикой, комплексными коэффициентами или произвольным откликом. Алгоритм разработан Макленаном и Карамом в 1995 г.;

      метод наименьших квадратов с ограничениями позволяет пользователю явно контролировать максимальную ошибку (сглаживание);

      метод расчета минимального порядка фильтра с окном Кайзера;

      обобщенный метод Баттерворта для проектирования низкочастотных фильтров с максимально однородными полосами пропускания и затухания.

    Основанный на оптимальном алгоритме быстрого преобразования Фурье пакет Signal Processing обладает непревзойденными характеристиками для частотного анализа и спектральных оценок. Пакет включает функции для вычисления дискретного преобразования Фурье, дискретного косинусного преобразования, преобразования Гильберта и других преобразований, часто применяемых для анализа, кодирования и фильтрации. В пакете реализованы такие методы спектрального анализа как метод Вельха, метод максимальной энтропии и др.

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

    Пакет Signal Processing является основой для решения многих других задач. Например, комбинируя его с пакетом Image Processing, можно обрабатывать и анализировать двумерные сигналы и изображения. В паре с пакетом System Identification пакет Signal Processing позволяет выполнять параметрическое моделирование систем во временной области. В сочетании с пакетами Neural Network и Fuzzy Logic может быть создано множество средств для обработки данных или выделения классификационных характеристик. Средство генерации сигналов позволяет создавать импульсные сигналы различной формы.

    29. Higher-Order Spectral Analysis Toolbox

    Higher-Order Spectral Analysis Toolbox

    Пакет Higher-Order Spectral Analysis содержит специальные алгоритмы для анализа сигналов с использованием моментов высшего порядка. Пакет предоставляет широкие возможности для анализа негауссовых сигналов, так как содержит алгоритмы, пожалуй, самых передовых методов для анализа и обработки сигналов. Основные возможности пакета:

      оценка спектров высокого порядка;

      традиционный или параметрический подход;

      восстановление амплитуды и фазы;

      адаптивное линейное прогнозирование;

      восстановление гармоник;

      оценка запаздывания;

      блочная обработка сигналов.

    Пакет Higher-Order Spectral Analysis позволяет анализировать сигналы, поврежденные негауссовым шумом, и процессы, происходящие в нелинейных системах. Спектры высокого порядка, определяемые в терминах моментов высокого порядка сигнала, содержат дополнительную информацию, которую невозможно получить, пользуясь только анализом автокорреляции или спектра мощности сигнала. Спектры высокого порядка позволяют:

      подавить аддитивный цветной гауссов шум;

      идентифицировать неминимально-фазовые сигналы;

      выделить информацию, обусловленную негауссовым характером шума;

      обнаружить и проанализировать нелинейные свойства сигналов.

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

    30. Image Processing Toolbox

    Image Processing Toolbox

    Пакет Image Processing предоставляет ученым, инженерам и даже художникам широкий спектр средств для цифровой обработки и анализа изображений. Будучи тесно связанным со средой разработки приложений MATLAB, пакет Image Processing Toolbox освобождает вас от выполнения длительных операций кодирования и отладки алгоритмов, позволяя сосредоточить усилия на решении основной научной или практической задачи. Основные свойства пакета:

      восстановление и выделение деталей изображений;

      работа с выделенным участком изображения;

      анализ изображения;

      линейная фильтрация;

      преобразование изображений;

      геометрические преобразования;

      увеличение контрастности важных деталей;

      бинарные преобразования;

      обработка изображений и статистика;

      цветовые преобразования;

      изменение палитры;

      преобразование типов изображений.

    Пакет Image Processing дает широкие возможности для создания и анализа графических изображений в среде MATLAB. Этот пакет обеспечивает чрезвычайно гибкий интерфейс, позволяющий манипулировать изображениями, интерактивно разрабатывать графические картины, визуализировать наборы данных и аннотировать результаты для технических описаний, докладов и публикаций. Гибкость, соединение алгоритмов пакета с такой особенностью MATLAB, как матрично-векторное описание делают пакет очень удачно приспособленным для решения практически любых задач по разработке и представлению графики. Примеры применения этого пакета в среде системы MATLAB были даны в уроке 7. В MATLAB входят специально разработанные процедуры, позволяющие повысить эффективность графической оболочки. Можно отметить, в частности, такие особенности:

      интерактивная отладка при разработке графики;

      профилировщик для оптимизации времени выполнения алгоритма;

      средства построения интерактивного графического интерфейса пользователя (GUI Builder) для ускорения разработки GUI-шаблонов, позволяющие настраивать его под задачи пользователя.

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

    MATLAB и пакет Image Processing максимально приспособлены для развития, внедрения новых идей и методов пользователя. Для этого имеется набор сопрягаемых пакетов, направленных на решение всевозможных специфических задач и задач в нетрадиционной постановке.

    Пакет Image Processing в настоящее время интенсивно используется в более чем 4000 компаниях и университетах по всему миру. При этом имеется очень широкий круг задач, которые пользователи решают с помощью данного пакета, например космические исследования, военные разработки, астрономия, медицина, биология, робототехника, материаловедение, генетика и т. д.

    31. Wavelet Toolbox

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

      усовершенствованный графический пользовательский интерфейс и набор команд для анализа, синтеза, фильтрации сигналов и изображений;

      преобразование многомерных непрерывных сигналов;

      дискретное преобразование сигналов;

      декомпозиция и анализ сигналов и изображений;

      широкий выбор базисных функций, включая коррекцию граничных эффектов;

      пакетная обработка сигналов и изображений;

      анализ пакетов сигналов, основанный на энтропии;

      фильтрация с возможностью установления жестких и нежестких порогов;

      оптимальное сжатие сигналов.

    Пользуясь пакетом, можно анализировать такие особенности, которые упускают другие методы анализа сигналов, т. е. тренды, выбросы, разрывы в производных высоких порядков. Пакет позволяет сжимать и фильтровать сигналы без явных потерь даже в тех случаях, когда нужно сохранить и высоко- и низкочастотные компоненты сигнала. Имеются алгоритмы сжатия и фильтрации и для пакетной обработки сигналов. Программы сжатия выделяют минимальное число коэффициентов, представляющих исходную информацию наиболее точно, что очень важно для последующих стадий работы системы сжатия. В пакет включены следующие базисные наборы вейвлетов: биортогональный, Хаара, «Мексиканская шляпа», Майера и др. Вы также можете добавить в пакет свои собственные базисы.

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

    32. Прочие пакеты прикладных программ

    Прочие пакеты прикладных программ

    Financial Toolbox

    Довольно актуальный для нашего периода рыночных реформ пакет прикладных программ по финансово-экономическим расчетам. Содержит множество функций по расчету сложных процентов, операций по банковским вкладам, вычисления прибыли и многое другое. К сожалению, из за многочисленных (хотя, в общем-то, не слишком принципиальных) различий в финансово-экономических формулах его применение в наших условиях не всегда разумно - есть множество отечественных программ для таких расчетов, - например «Бухгалтерия 1C». Но если вы хотите подключиться к базам данных агентств финансовых новостей - Bloom-berg, IDC через пакет Datafeed Toolbox MATLAB, то, конечно, обязательно пользуйтесь и финансовыми пакетами расширения MATLAB.

    Пакет Financial является основой для решения в MATLAB множества финансовых задач, от простых вычислений до полномасштабных распределенных приложений. Пакет Financial может быть использован для расчета процентных ставок и прибыли, анализа производных доходов и депозитов, оптимизации портфеля инвестиций. Основные возможности пакета:

      обработка данных;

      дисперсионный анализ эффективности портфеля инвестиций;

      анализ временных рядов;

      расчет доходности ценных бумаг и оценка курсов;

      статистический анализ и анализ чувствительности рынка;

      калькуляция ежегодного дохода и расчет денежных потоков;

      методы начисления износа и амортизационных отчислений.

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

    Алгоритмы пакета Financial для расчета показателей движения денежных средств и других данных, отражаемых в финансовых счетах, позволяют вычислять, в частности, процентные ставки по займам и кредитам, коэффициенты рентабельности, кредитные поступления и итоговые начисления, оценивать и прогнозировать стоимость инвестиционного портфеля, вычислять показатели износа и т. п. Функции пакета могут быть использованы с учетом положительного и отрицательного денежных потоков (cash-flow) (превышения денежных поступлений над платежами или денежных выплат над поступлениями соответственно).

    Пакет Financial содержит алгоритмы, которые позволяют анализировать портфель инвестиций, динамику и экономические коэффициенты чувствительности. В частности, при определении эффективности инвестиций функции пакета позволяют сформировать портфель, удовлетворяющий классической задаче Г. Марковица. Пользователь может комбинировать алгоритмы пакета для вычисления коэффициентов Шарпе и ставок дохода. Анализ динамики и экономических коэффициентов чувствительности позволяет пользователю определить позиции для стреддл-сделок, хеджирования и сделок с фиксированными ставками. Пакет Financial обеспечивает также обширные возможности для представления и презентации данных и результатов в виде традиционных для экономической и финансовой сфер деятельности графиков и диаграмм. Денежные средства могут по желанию пользователя отображаться в десятичном, банковском и процентном форматах.

    33. Mapping Toolbox

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

      визуализация, обработка и анализ графических и научных данных;

      более 60 проекций карт (прямые и инверсные);

      проектирование и отображение векторных, матричных и составных карт;

      графический интерфейс для построения и обработки карт и данных;

      глобальные и региональные атласы данных и сопряжение с правительственными данными высокого разрешения;

      функции географической статистики и навигации;

      трехмерное представление карт со встроенными средствами подсветки и затенения;

      конвертеры для популярных форматов географических данных: DCW, TIGER, ЕТОРО5.

    Пакет Mapping включает более 60 наиболее широко известных проекций, включая цилиндрическую, псевдоцилиндрическую, коническую, поликоническую и псевдоконическую, азимутальную и псевдоазимутальную. Возможны прямые и обратные проекции, а также нестандартные виды проекции, задаваемые пользователем.

    В пакете Mapping картой называется любая переменная или множество переменных, отражающих или назначающих численное значение географической точке или области. Пакет позволяет работать с векторными, матричными и смешанными картами данных. Мощный графический интерфейс обеспечивает интерактивную работу с картами, например возможность подвести указатель к объекту и, щелкнув на нем, получить информацию. Графический интерфейс MAPTOOL - полная среда разработки приложений для работы с картами.

    Наиболее широко известные атласы мира, Соединенных Штатов, астрономические атласы входят в состав пакета. Географическая структура данных упрощает извлечение и обработку данных из атласов и карт. Географическая структура данных и функции взаимодействия с внешними географическими данными форматов Digital Chart of the World (DCW), TIGER, TBASE и ЕТОРО5 собраны воедино, чтобы обеспечить мощный и гибкий инструмент для доступа к уже существующим и будущим географическим базам данных. Тщательный анализ географических данных часто требует математических методов, работающих в сферической системе координат. Пакет Mapping снабжен подмножеством географических, статистических и навигационных функций для анализа географических данных. Функции навигации дают широкие возможности для выполнения задач перемещения, таких как позиционирование и планирование маршрутов.

    34. Power System Blockset

    Data Acquisition Toolbox и Instrument Control Toolbox

    Data Acquisition Toolbox - пакет расширения, относящийся к области сбора данных через блоки, подключаемые к внутренней шине компьютера, функциональных генераторов, анализаторов спектра - словом, приборов, широко используемых в исследовательских целях для получения данных. Они поддержаны соответствующей вычислительной базой. Новый блок Instrument Control Toolbox позволяет подключать приборы и устройства с последовательным интерфейсом и с интерфейсами Канал общего пользования и VXI.

    36. Database toolbox и Virtual Reality Toolbox

    Database toolbox и Virtual Reality Toolbox

    Более чем в 100 раз повышена скорость работы Database toolbox, при помощи которого осуществляется обмен информацией с целым рядом систем управления базами данных через драйверы ODBC или JDBC:

    • Access 95 или 97 Microsoft;

      Microsoft SQL Server 6.5 или 7.0;

      Sybase Adaptive Server 11;

      Sybase (бывший Watcom) SQL Server Anywhere 5.0;

      IBM DB2 Universal 5.0;

    • Computer Associates Ingres (все версии).

    Все данные предварительно преобразуются в массив ячеек в MATLAB 6.0. В MATLAB 6.1 можно использовать и массив структур. Визуальный конструктор (Visual Query Builder) позволяет составлять сколь угодно сложные запросы на диалектах языка SQL этих баз данных даже без знания SQL. В одном сеансе может быть открыто много неоднородных баз данных.

    Пакет Virtual Reality Toolbox доступен начиная с версии MATLAB 6.1. Позволяет осуществлять трехмерную анимацию и мультипликацию, в том числе моделей Simulink. Язык программирования - VRML - язык моделирования виртуальной реальности (Virtual Reality Modeling Language). Просмотр анимации возможен с любого компьютера, оснащенного браузером с поддержкой VRML. Подтверждает, что математика - наука о количественных соотношениях и пространственных формах любых действительных или виртуальных миров.

    37. Excel Link

    Позволяет использовать Microsoft Excel 97 как процессор ввода-вывода MATLAB. Для этого достаточно установить в Excel как add-in функцию поставляемый Math Works файл excllinkxla. В Excel нужно набрать Сервис > Надстройки > Обзор, выбрать файл в каталоге \matlabrl2\toolbox\exlink и установить его. Теперь при каждом запуске Excel появится командное окно MATLAB, а панель управления Excel дополнится кнопками getmatrix, putmatrix, evalstring. Для закрытия MATLAB из Excel достаточно набрать =MLC1ose() в любой ячейке Excel. Для открытия после выполнения этой команды нужно либо щелкнуть мышью на одной из кнопок getmatrix, putmatrix, evalstring, либо набрать в Excel Сервис > Макрос >Выполнить mat! abi ni t. Выделив мышью диапазон ячеек Excel, вы можете щелкнуть на getmatrix и набрать имя переменной MATLAB. Матрица появится в Excel. Заполнив числами диапазон ячеек Excel, вы можете выделить этот диапазон, щелкнуть на putmatrix и ввести имя переменной MATLAB. Работа, таким образом, интуитивно понятна. В отличие от MATLAB Excel Link не чувствителен к регистру: I и i, J и j равноценны.

    Вызывать демонстрационные примеры пакетов расширения.

    ). Среди средств общего назначения, используемых в хемометрике, особое место занимает пакет MatLab. Его популярность необычайно высока. Это объясняется тем, что MatLab является мощным и универсальным обработки многомерных данных. Сама структура пакета делает его удобным средством для проведения матричных вычислений. Спектр проблем, исследование которых может, осуществлено при помощи MatLab, охватывает: матричный анализ, обработку сигналов и изображений, нейронные сети и многие другие. MatLab - это язык высокого уровня, имеющий открытый код, что дает возможность опытным пользователям разбираться в запрограммированных алгоритмах. Простой встроенный язык программирования позволяет легко создавать собственные алгоритмы. За много лет использования MatLab создано огромное количество функций и ToolBox (пакетов специализированных средств). Самым популярным является пакет PLS ToolBox компании Eigenvector Research, Inc .

    1. Базовые сведения

    1.1. Рабочая среда MatLab

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

    Рабочая среда MatLab 6.х немного отличается от рабочей среды предыдущих версий, она имеет более удобный интерфейс для доступа ко многим вспомогательным элементам

    Рабочая среда MatLab 6.х содержит следующие элементы:

      панель инструментов с кнопками и раскрывающимся списком;

      окно с вкладками Launch Pad и Workspace , из которого можно получить доступ к различным модулям ToolBox и к содержимому рабочей среды;

      окно с вкладками Command History и Current Directory , предназначенное для просмотра и повторного вызова ранее введенных команд, а также для установки текущего каталога;

      командное окно, в котором находится приглашение к вводу » и мигающий вертикальный курсор;

      строку состояния.

    Если в рабочей среде MatLab 6.х отсутствуют некоторые окна, приведенные на рисунке, то следует в меню View выбрать соответствующие пункты: Command Window , Command History , Current Directory , Workspase , Launch Pad .

    Команды следует набирать в командном окне. Символ » , обозначающий приглашение к вводу командной строки, набирать не нужно. Для просмотра рабочей области удобно использовать полосы скроллинга или клавиши Home , End , для перемещения влево или вправо, и PageUp , PageDown для перемещения вверх или вниз. Если вдруг после перемещения по рабочей области командного окна пропала командная строка с мигающим курсором, просто нажмите Enter .

    Важно помнить, что набор любой команды или выражения должен заканчиваться нажатием на Enter , для того, чтобы программа MatLab выполнила эту команду или вычислила выражение.

    1.2. Простейшие вычисления

    Наберите в командной строке 1+2 и нажмите Enter . В результате в командном окне MatLab отображается следующее:

    Рис. 2 Графическое представление метода главных компонент

    Что сделала программа MatLab? Сначала она вычислила сумму 1+2 , затем записала результат в специальную переменную ans и вывела ее значение, равное 3 , в командное окно. Ниже ответа расположена командная строка с мигающим курсором, обозначающая, что MatLab готов к дальнейшим вычислениям. Можно набирать в командной строке новые выражения и находить их значения. Если требуется продолжить работу с предыдущим выражением, например, вычислить (1+2)/4.5 , то проще всего воспользоваться уже имеющимся результатом, который хранится в переменной ans . Наберите ans/4.5 (при вводе десятичных дробей используется точка) и нажмите Enter , получается

    Рис. 3 Графическое представление метода главных компонент

    1.3. Эхо команд

    Выполнение каждой команды в MatLab сопровождается эхом. В приведенном выше примере - это ответ ans = 0.6667 . Часто эхо затрудняет восприятие работы программы и тогда его можно отключить. Для этого команда должна завершаться символом точка с запятой. Например

    Рис. 4 Пример ввода функции ScoresPCA

    1.4. Сохранение рабочей среды. MAT файлы

    Самый простой способ сохранить все значения переменных - использовать в меню File пункт Save Workspase As. При этом появляется диалоговое окно Save Workspase Variables , в котором следует указать каталог и имя файла. По умолчанию предлагается сохранить файл в подкаталоге work основного каталога MatLab. Программа сохранит результаты работы в файле с расширением mat . Теперь можно закрыть MatLab. В следующем сеансе работы для восстановления значений переменных следует открыть этот сохраненный файл при помощи подпункта Open меню File . Теперь все переменные, определенные в прошлом сеансе, опять стали доступными. Их можно использовать во вновь вводимых командах.

    1.5. Журнал

    В MatLab имеется возможность записывать исполняемые команды и результаты в текстовый файл (вести журнал работы), который потом можно прочитать или распечатать из текстового редактора. Для начала ведения журнала служит команда diary . В качестве аргумента команды diary следует задать имя файла, в котором будет храниться журнал работы. Набираемые далее команды и результаты их исполнения будут записываться я в этот файл, например последовательность команд

    производит следующие действия:

      открывает журнал в файле exampl-1.txt ;

      производит вычисления;

      сохраняет все переменные в MAT файле work-1.mat ;

      сохраняет журнал в файле exampl-1.txt в подкаталоге work корневого каталога MatLab и закрывает MatLab;

    Посмотрите содержимое файла exampl-1.txt в каком-нибудь текстовом редакторе. В файле окажется следующий текст:

    a1=3;
    a2=2.5;
    a3=a1+a2

    Save work-1
    quit

    1.6. Система помощи

    Окно справки MatLab появляется после выбора опции Help Window в меню Help или нажатием кнопки вопроса на панели инструментов. Эта же операция может быть выполнена при наборе команды helpwin . Для вывода окна справки по отдельным разделам, наберите helpwin topic . Окно справки предоставляет Вам такую же информацию, как и команда help , но оконный интерфейс обеспечивает более удобную связь с другими разделами справки. Используя адрес Web-страницы фирмы Math Works , вы можете выйти на сервер фирмы и получить самую последнюю информацию по интересующим вас вопросам. Вы можете ознакомиться с новыми программными продуктами или найти ответ на возникшие проблемы на странице технической поддержки .

    2. Матрицы

    2.1. Скаляры, векторы и матрицы

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

    Заметим, что MatLab различает заглавные и прописные буквы, так что p и P - это разные переменные. Для ввода массивов (векторов или матриц) их элементы заключают в квадратные скобки. Так для ввода вектора-строки размером 1×3, используется следующая команда, в которой элементы строки отделяются пробелами или запятыми.

    При вводе вектора-столбца элементы разделяют точкой с запятой. Например,

    Вводить небольшие по размеру матрицы удобно прямо из командной строки. При вводе матрицу можно рассматривать как вектор-столбец, каждый элемент которого является вектором-строкой.

    или матрицу можно трактовать как вектор строку, каждый элемент которой является вектором-столбцом.

    2.2. Доступ к элементам

    Доступ к элементам матриц осуществляется при помощи двух индексов - номеров строки и столбца, заключенных в круглые скобки, например команда B(2,3) выдаст элемент второй строки и третьего столбца матрицы B . Для выделения из матрицы столбца или строки следует в качестве одного из индексов использовать номер столбца или строки матрицы, а другой индекс заменить двоеточием. Например, запишем вторую строку матрицы A в вектор z

    Также можно осуществлять выделение блоков матриц при помощи двоеточия. Например, выделим из матрицы P блок отмеченный цветом

    Если необходимо посмотреть переменные рабочей среды, в командной строке необходимо набрать команду whos .

    Видно, что в рабочей среде содержатся один скаляр (p ), четыре матрицы (A, B, P, P1 ) и вектор-строка (z ).

    2.3. Основные матричные операции

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

    а умножение - знаком звездочка * . Введем матрицу размером 3×2

    Умножение матрицы на число тоже осуществляется при помощи звездочки, причем умножать на число можно как справа, так и слева. Возведение квадратной матрицы в целую степень производится с использованием оператора ^

    Проверьте полученный результат, умножив матрицу Р саму на себя.

    2.4. Создание матриц специального вида

    Заполнение прямоугольной матрицы нулями производится встроенной функцией zeros

    Единичная матрица создается при помощи функции eye

    Матрица, состоящая из единиц, образуется в результате вызова функции ones

    MatLab предоставляет возможность заполнения матриц случайными числами. Результатом функции rand является матрица чисел, равномерно распределенных между нулем и единицей, а функции randn - матрица чисел, распределенных по нормальному закону с нулевым средним и единичной дисперсией.

    Функция diag формирует диагональную матрицу из вектора, располагая элементы по диагонали.

    2.5. Матричные вычисления

    MatLab содержит множество различных функций для работы с матрицами. Так, например, транспонирование матрицы производится при помощи апострофа "

    Нахождение обратной матрицы проводится с помощью функции inv для квадратных матриц

    3. Интегрирование MatLab и Excel

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

    3.1. Конфигурирование Excel

    Перед тем как настраивать Excel на совместную работу с MatLab, следует убедиться, что Excel Link входит в установленную версию MatLab. В подкаталоге exclink основного каталога MatLab или подкаталога toolbox должен находиться файл с надстройкой excllink.xla . Запустите Excel и в меню Tools выберите пункт Add-ins . Откроется диалоговое окно, содержащее информацию о доступных в данный момент надстройках. Используя кнопку Browse , укажите путь к файлу excllink.xla . В списке надстроек диалогового окна появится строка Excel Link 2.0 for use with MatLab с установленным флагом. Нажмите OK , требуемая надстройка добавлена в Excel.

    Обратите внимание, что в Excel теперь присутствует панель инструментов Excel Link , содержащая три кнопки: putmatrix , getmatrix , evalstring . Эти кнопки реализуют основные действия, требуемые для осуществления взаимосвязи между Excel и MatLab - обмен матричными данными, и выполнение команд MatLab из среды Excel. При повторных запусках Excel надстройка excllink.xla подключается автоматически.

    Согласованная работа Excel и MatLab требует еще нескольких установок, которые приняты в Excel по умолчанию (но могут быть изменены). В меню Tools перейдите к пункту Options , открывается диалоговое окно Options . Выберите вкладку General и убедитесь, что флаг R1C1 reference style выключен, т.е. ячейки нумеруются A1 , A2 и т.д. На вкладке Edit должен быть установлен флаг Move selection after Enter .

    3.2. Обмен данными между MatLab и Excel

    Запустите Excel, проверьте, что проделаны все необходимые настройки так, как описано в предыдущем разделе (MatLab должен быть закрыт). Введите в ячейки с A1 по C3 матрицу, для отделения десятичных знаков используйте точку в соответствии с требованиями Excel.

    Выделите на листе данные ячейки и нажмите кнопку putmatrix , появляется окно Excel с предупреждением о том, что MatLab не запущен. Нажмите OK , дождитесь открытия MatLab.

    Появляется диалоговое окно Excel со строкой ввода, предназначенной для определения имени переменной рабочей среды MatLab, в которую следует экспортировать данные из выделенных ячеек Excel. Введите к примеру, М и закройте окно при помощи кнопки OK . Перейдите к командному окну MatLab и убедитесь, что в рабочей среде создалась переменная М , содержащая массив три на три:

    Проделайте некоторые операции в MatLab с матрицей М , например, обратите ее.

    Вызов inv для обращения матрицы, как и любой другой команды MatLab можно осуществить прямо из Excel. Нажатие на кнопку evalstring , расположенную на панели Excel Link , приводит к появлению диалогового окна, в строке ввода которого следует набрать команду MatLab

    IM=inv(M) .

    Результат аналогичен полученному при выполнении команды в среде MatLab.

    Вернитесь в Excel, сделайте текущей ячейку A5 и нажмите кнопку getmatrix . Появляется диалоговое окно со строкой ввода, в которой требуется ввести имя переменной, импортируемой в Excel. В данном случае такой переменной является IM . Нажмите OK , в ячейки с A5 по A7 введены элементы обратной матрицы.

    Итак, для экспорта матрицы в MatLab следует выделить подходящие ячейки листа Excel, а для импорта достаточно указать одну ячейку, которая будет являться верхним левым элементом импортируемого массива. Остальные элементы запишутся в ячейки листа согласно размерам массива, переписывая содержащиеся в них данные, поэтому следует соблюдать осторожность при импорте массивов.

    Вышеописанный подход является самым простым способом обмена информацией между приложениями - исходные данные содержатся в Excel, затем экспортируются в MatLab, обрабатываются там некоторым образом и результат импортируется в Excel. Пользователь переносит данные при помощи кнопок панели инструментов Excel Link . Информация может быть представлена в виде матрицы, т.е. прямоугольной области рабочего листа. Ячейки, расположенные в строку или столбец, экспортируются, соответственно, в векторы -строки и векторы -столбцы MatLab. Аналогично происходит и импорт векторов-строк и векторов-столбцов в Excel.

    4. Программирование

    4.1. М-файлы

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

    Раскройте меню File основного окна MatLab и в пункте New выберите подпункт M-file . Новый файл открывается в окне редактора M-файлов, которое изображено на рисунке.

    М-файлы в MatLab бывают двух типов: файл-программы (Script M-Files ), содержащие последовательность команд, и файл-функции, (Function M-Files ), в которых описываются функции, определяемые пользователем.

    4.2. Файл-программа

    Наберите в редакторе команды, приводящие к построению двух графиков на одном графическом окне

    Сохраните теперь файл с именем mydemo.m в подкаталоге work основного каталога MatLab, выбрав пункт Save as меню File редактора. Для запуска на выполнение всех команд, содержащихся в файле, следует выбрать пункт Run в меню Debug . На экране появится графическое окно Figure 1 , содержащее графики функций.

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

    Очень удобной возможностью, предоставляемой редактором М-файлов, является выполнение части команд. Закройте графическое окно Figure 1 . Выделите при помощи мыши, удерживая левую кнопку, или клавишами со стрелками при нажатой клавише Shift , первые четыре команды и выполните их из пункта Text . Обратите внимание, что в графическое окно вывелся только один график, соответствующий выполненным: командам. Запомните, что для выполнения части команд их следует выделить и нажать клавишу F9 .

    Отдельные блоки М-файла можно снабжать комментариями, которые пропускаются при выполнении, но удобны при работе с М-файлом. Комментарии начинаются со знака процента и автоматически выделяются зеленым цветом, например:

    Открытие существующего М-файла производится при помощи пункта Open меню File рабочей среды, либо редактора М-файлов.

    4.3. Файл-функция

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

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

    Слово function в первой строке определяет, что данный файл содержит файл-функцию. Первая строка является заголовком функции, в которой размещается имя функции и списка входных и выходных аргументов. В примере имя функции centering , один входной аргумент X и один выходной - Xc. После заголовка следуют комментарии, а затем - тело функции (оно в данном примере состоит из двух строк), где и вычисляется ее значение. Важно, что вычисленное значение записывается в Xc . Не забудьте поставить точку с запятой для предотвращения вывода лишней информации на экран. Теперь сохраните файл в рабочем каталоге. Обратите внимание, что выбор пункта Save или Save as меню File приводит к появлению диалогового окна сохранения файла, в поле File name которого уже содержится название centering . Не изменяйте его, сохраните файл функцию в файле с предложенным именем!

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

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

    При вызове файл-функций с несколькими выходными аргументами результат следует записывать в вектор соответствующей длины.

    4.4 Создание графика

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

    Функция plot имеет различные формы, связанные с входными параметрами, например plot(y) создает кусочно-линейный график зависимости элементов y от их индексов. Если в качестве аргументов заданы два вектора, то plot(x,y) создаст график зависимости y от x . Например, для построения графика функции sin в интервале от 0 до 2π, сделаем следующее

    Программа построила график зависимости, который отображается в окне Figure 1

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

    Команда hold on позволяет добавлять кривые на существующий график. Функция subplot позволяет выводить множество графиков в одном окне

    4.5 Печать графиков

    Пункт Print в меню File и команда print печатают графику MatLab. Меню Print вызывает диалоговое окно, которое позволяет выбирать общие стандартные варианты печати. Команда print обеспечивает большую гибкость при выводе выходных данных и позволяет контролировать печать из М-файлов. Результат может быть послан прямо на принтер, выбранный по умолчанию, или сохранен в заданном файле.

    5. Примеры программ

    В этом разделе приведены наиболее употребительные алгоритмы, используемые при анализе многомерных данных. Рассмотрены как простейшие методы преобразования данных центрирование и шкалирование, так и алгоритмы для анализа данных - PCA, PLS.

    5.1. Центрирование и шкалирование

    Часто при анализе требуется преобразовать исходные данные. Наиболее используемыми методами преобразования данных выступают центрирование и шкалирование каждой переменной на стандартное отклонение. В приводился код функции для центрирования матрицы. Поэтому ниже показан только код функции, которая шкалирует данные. Обратите внимание, что исходная матрица должна быть центрирована

    function Xs = scaling(X)
    % scaling: the output matrix is Xs
    % matrix X must be centered

    Xs = X * inv(diag(std(X)));

    %end of scaling

    5.2. SVD/PCA

    Наиболее популярным способом сжатия данных в многомерном анализе является метод главных компонент (PCA) . С математической точки зрения PCA - это декомпозиция исходной матрицы X , т.е. представление ее в виде произведения двух матриц T и P

    X = TP t + E

    Матрица T называется матрицей счетов (scores) , матрица - матрицей остатков.

    Простейший способ найти матрицы T и P - использовать SVD разложение через стандартную функцию MatLab, называемую svd .

    function = pcasvd(X)

    Svd(X);
    T = U * D;
    P = V;

    %end of pcasvd

    5.3 PCA/NIPALS

    Для построения PCA счетов и нагрузок, используется рекуррентный алгоритм NIPALS , который на каждом шагу вычисляет одну компоненту. Сначала исходная матрица X преобразуется (как минимум – центрируется; см. ) и превращается в матрицу E 0 , a =0. Далее применяют следующий алгоритм.

    t 2. p t = t t E a / t t t 3. p = p / (p t p ) ½ 4. t = E a p / p t p 5. Проверить сходимость, если нет, то идти на 2

    После вычисления очередной (a -ой) компоненты, полагаем t a =t и p a =p E a +1 = E a t p a на a +1.

    Код алгоритма NIPALS может быть написан и самими читателями, в данном же пособии авторы приводят свой вариант. При расчете PCA, можно вводить число главных компонент (переменная numberPC ). Если же не известно, сколько необходимо компонент, следует написать в командной строке = pcanipals (X) и тогда программа задаст число компонент равным наименьшему из показателей размерности исходной матрицы X .

    function = pcanipals(X, numberPC)

    % calculation of number of components
    = size(X); P=; T=;

    If lenfth(numberPC) > 0
    pc = numberPC{1};
    elseif (length(numberPC) == 0) & X_r < X_c
    pc = X_r;
    else
    pc = X_c;
    end;

    for k = 1:pc
    P1 = rand(X_c, 1); T1 = X * P1; d0 = T1"*T1;
    P1 = (T1" * X/(T1" * T1))"; P1 = P1/norm(P1); T1 = X * P1; d = T1" * T1;

    While d - d0 > 0.0001;
    P1 = (T1" * X/(T1" * T1)); P1 = P1/norm(P1); T1 = X * P1; d0 = T1"*T1;
    P1 = (T1" * X/(T1" * T1)); P1 = P1/norm(P1); T1 = X * P1; d = T1"*T1;
    end

    X = X - T1 * P1; P = cat(1, P, P1"); T = ;
    end

    О вычислении PCA с помощью надстройки Chemometrics рассказано в пособии

    5.4 PLS1

    Самым популярным способом для многомерной калибровки является метод проекции на латентные структуры (PLS). В этом методе проводится одновременная декомпозиция матрицы предикторов X и матрицы откликов Y :

    X =TP t +E Y =UQ t +F T =XW (P t W ) –1

    Проекция строится согласованно – так, чтобы максимизировать корреляцию между соответствующими векторами X -счетов t a и Y -счетов u a . Если блок данных Y включает несколько откликов (т.е. K >1), можно построить две проекции исходных данных – PLS1 и PLS2. В первом случае для каждого из откликов y k строится свое проекционное подпространство. При этом и счета T (U ) и нагрузки P (W , Q ) , зависят от того, какой отклик используется. Этот подход называется PLS1. Для метода PLS2 строится только одно проекционное пространство, которое является общим для всех откликов.

    Детальное описание метода PLS приведено в этой книге Для построения PLS1 счетов и нагрузок, используется рекуррентный алгоритм. Сначала исходные матрицы X и Y центрируют

    = mc(X);
    = mc(Y);

    и они превращаются в матрицу E 0 и вектор f 0 , a =0. Далее к ним применяет следующий алгоритм

    1. w t = f a t E a 2. w = w / (w t w ) ½ 3. t = E a w 4. q = t t f a / t t t 5. u = q f a / q 2 6. p t = t t E a / t t t

    После вычисления очередной (a -ой) компоненты, полагаем t a =t и p a =p . Для получения следующей компоненты надо вычислить остатки E a +1 = E a t p t и применить к ним тот же алгоритм, заменив индекс a на a +1.

    Приведем код этого алгоритма, взятый из книги

    function = pls(x, y)
    %PLS: calculates a PLS component.
    %The output vectors are w, t, u, q and p.
    %
    % Choose a vector from y as starting vector u.

    u = y(:, 1);

    % The convergence criterion is set very high.
    kri = 100;

    % The commands from here to end are repeated until convergence.
    while (kri > 1e - 10)

    % Each starting vector u is saved as uold.
    uold = u; w = (u" * x)"; w = w/norm(w);
    t = x * w; q = (t" * y)"/(t" * t);
    u = y * q/(q" * q);

    % The convergence criterion is the norm of u-uold divided by the norm of u.
    kri = norm(uold - u)/norm(u);
    end;

    % After convergence, calculate p.
    p = (t" * x)"/(t" * t);

    % End of pls

    О вычислении PLS1 с помощью надстройки Chemometrics Add In рассказано в пособии Проекционные методы в системе Excel.

    5.5 PLS2

    Для PLS2 алгоритм выглядит следующим образом. Сначала исходные матрицы X и Y преобразуют (как минимум – центрируют; см. ), и они превращаются в матрицы E 0 и F 0 , a =0. Далее к ним применяет следующий алгоритм.

    1. Выбрать начальный вектор u 2. w t = u t E a 3. w = w / (w t w ) ½ 4. t = E a w 5. q t = t t F a / t t t 6. u = F a q / q t q 7. Проверить сходимость, если нет, то идти на 2 8. p t = t t E a / t t t

    После вычисления очередной (a -ой) PLS2 компоненты надо положить: t a =t , p a =p, w a =w , u a =u и q a =q . Для получения следующей компоненты надо вычислить остатки E a +1 = E a t p t и F a +1 = F a tq t и применить к ним тот же алгоритм, заменив индекс a на a +1.

    Приведем код, которой также заимствован из из книги .

    function = plsr(x, y, a)
    % PLS: calculates a PLS component.
    % The output matrices are W, T, U, Q and P.
    % B contains the regression coefficients and SS the sums of
    % squares for the residuals.
    % a is the numbers of components.
    %
    % For a components: use all commands to end.

    For i=1:a
    % Calculate the sum of squares. Use the function ss.
    sx = ;
    sy = ;

    % Use the function pls to calculate one component.
    = pls(x, y);

    % Calculate the residuals.
    x = x - t * p";
    y = y - t * q";

    % Save the vectors in matrices.
    W = ;
    T = ;
    U = ;
    Q = ;
    P = ;
    end;

    % Calculate the regression coefficients after the loop.
    B=W*inv(P"*W)*Q";

    % Add the final residual SS to the sum of squares vectors.
    sx=;
    sy=;

    % Make a matrix of the ss vectors for X and Y.
    SS = ;

    %Calculate the fraction of SS used.
    = size(SS);
    tt = (SS * diag(SS(1,:).^(-1)) - ones(a, b)) * (-1)

    %End of plsr

    function = ss(x)
    %SS: calculates the sum of squares of a matrix X.
    %

    ss=sum(sum(x. * x));
    %End of ss

    О вычислении PLS2 с помощью надстройки Chemometrics Add In рассказано в пособии Проекционные методы в системе Excel.

    Заключение

    MatLab ­ это это очень популярный инструмент для анализа данных. По данным опроса, его используют до трети всех исследователей, тогда как программа the Unsrambler применяется только 16% ученых. Главным недостатком MatLab являются его высокая цена. Кроме того, MatLab хорош для рутинных расчетов. Отсутствие интерактивности делает его неудобным при выполнении поисковых, исследовательских расчетов для новых, неисследованных массивов данных.

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

    Признаком того, что MatLAB готова к восприятию и выполнению очередной команды, является возникновение в последней строке текстового поля окна знака приглашения " >> ", после которого расположена мигающая вертикальная черта.

    В верхней части окна (под заголовком) размещена строка меню, в которой находятся меню File, Edit, View, Windows, Help. Чтобы открыть какое-либо меню, следует установить на нем указатель мыши и нажать ее левую кнопку. Подробнее функции команд меню будут описаны далее, в разделе «Интерфейс MatLab и команды общего назначения. Написание М-книг».

    Здесь отметим лишь, что для выхода из среды MatLAB достаточно открыть меню File и выбрать в нем команду Exit MATLAB, или просто закрыть командное окно, нажав левую клавишу мыши, когда курсор мыши установлен на изображении верхней крайней правой кнопки этого окна (с обозначением косого крестика).

    1.2. Операции с числами

    1.2.1. Ввод действительных чисел

    Ввод чисел с клавиатуры осуществляется по общим правилам, принятым для языков программирования высокого уровня:

    для отделения дробной части мантиссы числа используется десятичная точка (вместо запятой при обычной записи) ;

    десятичный показатель числа записывается в виде целого числа после предшествующей записи символа «е» ;

    между записью мантиссы числа и символом «е» (который отделяет мантиссу от показателя ) не должно быть никаких символов , включая и символ пропуска.

    Если, например, ввести в командном окне MatLAB строку

    то после нажатия клавиши <Еnter> в этом окне появится запись:


    Следует отметить, что результат выводится в виде (формате), который определяется предварительно установленным форматом представления чисел. Этот формат может быть установлен с помощью команды Preferences меню File (рис. 1.3). После ее вызова на экране появится одноименное окно (рис. 1.4). Один из участков этого окна имеет название Numeric Format . Он предназначен для установки и изменения формата представления чисел, которые выводятся в командное окно в процессе расчетов. Предусмотрены такие форматы:

    Short (default) – краткая запись (применяется по умолчанию);

    Long – длинная запись;

    Hex – запись в виде шестнадцатиричного числа;

    Bank – запись до сотых долей;

    Plus – записывается только знак числа;

    Short Е – краткая запись в формате с плавающей запятой;

    Long Е – длинная запись в формате с плавающей запятой;

    Short G – вторая форма краткой записи в формате с плавающей запятой;

    Long G – вторая форма длинной записи в формате с плавающей запятой;

    Rational – запись в виде рациональной дроби.

    Избирая с помощью мыши нужный вид представления чисел, можно обеспечить в дальнейшем выведение чисел в командное окно именно в этой форме.

    Как видно из рис. 1.2, число, которое выведено на экран, не совпадает с введенным. Это обусловлено тем, что установленный по умолчанию формат пред­ставления чисел (Short ) не позволяет вывести больше 6 значащих цифр. На самом деле введенное число сохраняется внутри MatLAB со всеми введенными его цифрами. Например, если избрать мышью селекторную кнопку Long Е (т. е. установить указанный формат представления чисел), то, повторяя те же действия, получим:

    где уже все цифры отображены верно (рис. 1.5).

    Следует помнить:

    - введенное число и результаты всех вычислений в системе Ма tLAB сохраняются в памяти ПК с относительной погрешностью около 2.10-16 (т. е. с точными значениями в 15 десятичных разрядах ):

    - диапазон представления модуля действительных чисел лежит в диапазоне между 10-308 и 10+308 .

    1.2.2. Простейшие арифметические действия

    В арифметических выражениях языка МаtLAB используются следующие знаки арифметических операций:

    + – сложение;

    – – вычитание;

    * – умножение;

    / – деление слева направо;

    \ – деление справа налево;

    ^ – возведение в степень.

    Использование MatLAB в режиме калькулятора может происходить путем простой записи в командную строку последовательности арифметических действий с числами, то есть обычного арифметического выражения, например: 4.5^2*7.23 – 3.14*10.4.

    Если после ввода с клавиатуры этой последовательности нажать клавишу , в командном окне возникнет результат выполнения в виде, представленном на рис. 1.6, т. е. на экран под именем системной переменной ans выводится результат действия последнего выполненного оператора.

    Вообще вывод промежуточной информации в командное окно подчиняется таким правилам:

    - если запись оператора не заканчивается символом ";", результат действия этого оператора сразу же выводится в командное окно;

    - если оператор заканчивается символом ";", результат его действия не отображается в командном окне ;

    - если оператор не содержит знака присваивания (= ), т. е. является просто записью некоторой последовательности действий над числами и переменными , значение результата присваивается специальной системной переменной по имени ans ;

    - полученное значение переменной ans можно использовать в следующих операторах вычислений, применяя это имя ans; при этом следует помнить, что значение системной переменной ans изменяется после действия очередного оператора без знака присваивания ;

    - в общем случае форма представления результата в командном окне имеет вид :

    <Имя переменной> = <результат>.

    Пример. Пусть нужно вычислить выражение (25+17)*7. Это можно сделать таким образом. Сначала набираем последовательность 25+17 и нажимаем . Получаем на экране результат в виде ans = 42.Теперь записываем последовательность ans*7 и нажимаем . Получаем ans = 294 (рис. 1.7). Чтобы предотвратить выведение промежуточного результата действия 25+17, достаточно после записи этой последовательности добавить символ ";". Тогда будем иметь результаты в виде, представленном на рис. 1.8.

    Применяя MatLAB как калькулятор, можно использовать имена переменных для записи промежуточных результатов в память ПК. Для этого служит операция присваивания, которая вводится знаком равенства "=" в соответствия со схемой: <Имя переменной> = <выражение>[;]

    Имя переменной может содержать до 30 символов и должно не совпадать с именами функций, процедур системы и системных переменных. При этом система различает большие и маленькие буквы в переменных. Так, имена "amenu", "Amenu", "aMenu" в MatLAB обозначают разные переменные.

    Выражение справа от знака присваивания может быть просто числом, арифметическим выражением, строкой символов (тогда эти символы нужно заключить в апострофы) или символьным выражением. Если выражение не заканчивается символом ";", после нажатия клавиши <Еnter> в командном окне возникнет результат выполнения в виде:

    <Имя переменной > = <результат >.

    Рис. 1.7. Рис. 1.8.

    Например, если ввести в командное окно строку "х = 25 + 17", на экране появится запись (рис. 1.9).

    Система MatLAB имеет несколько имен переменных, которые используются самой системой и входят в состав зарезервированных:

    i, j – мнимая единица (корень квадратный из –1); pi – число p (сохраняется в виде 3.141592653589793); inf – обозначение машинной бесконечности; Na – обозначение неопределенного результата (например, типа 0/0 или inf/inf); eps – погрешность операций над числами с плавающей запятой; ans – результат последней операции без знака присваивания; realmax и realmin – максимально и минимально возможные величины числа, которое может быть использованы.

    Эти переменные можно использовать в математических выражениях.

    1.2.3. Ввод комплексных чисел

    Язык системы MatLAB, в отличие от многих языков программирования высокого уровня, содержит в себе очень простую в пользовании встроенную арифметику комплексных чисел. Большинство элементарных математических функций допускают в качестве аргументов комплексные числа, а результаты формируются как комплексные числа. Эта особенность языка делает его очень удобным и полезным для инженеров и научных работников.

    Для обозначения мнимой единицы в языке МatLAB зарезервированы два имени i и j. Ввод с клавиатуры значения комплексного числа осуществляется путем записи в командное окно строки вида:

    <имя комплексной переменной > = <значение ДЧ > + i [j ] * <значение МЧ >,

    где ДЧ – действительная часть комплексного числа, МЧ – мнимая часть. Например:

    Из приведенного примера видно, в каком виде система выводит комплексные числа на экран (и на печать).

    1.2.4. Элементарные математические функции

    Общая форма использования функции в MatLAB такова:

    <имя результата > = <имя функции >(<перечень аргументов или их значений> ).

    В языке MatLAB предусмотрены следующие элементарные арифметические функции.

    Тригонометрические и гиперболические функции

    sin (z) – синус числа z;

    sinh (z) – гиперболический синус;

    asin (z) – арксинус (в радианах, в диапазоне от к );

    а sinh (z) – обратный гиперболический синус;

    со s (z) – косинус;

    соsh(z) – гиперболический косинус;

    acos (z) – арккосинус (в диапазоне от 0 к p );

    асо sh (z) – обратный гиперболический косинус;

    tan (z) – тангенс;

    tanh (z) – гиперболический тангенс;

    atan (z) – арктангенс (в диапазоне от от к );

    аtап2 (Х, Y) – четырехквадрантный арктангенс (угол в диапазоне от –p до +p между горизонтальным правым лучом и лучом, который проходит через точку с координатами Х и Y );

    atanh (z) – обратный гиперболический тангенс;

    sec (z) – секанс;

    sech (z) – гиперболический секанс;

    asec (z) – арксеканс;

    asech (z) – обратный гиперболический секанс;

    csc (z) – косеканс;

    csch (z) – гиперболический косеканс;

    acsc (z) – арккосеканс;

    acsch (z) – обратный гиперболический косеканс;

    cot (z) – котангенс;

    coth (z) – гиперболический котангенс;

    acot (z) – арккотангенс;

    acoth (z) – обратный гиперболический котангенс

    Экспоненциальные функции

    exp (z) – экспонента числа z;

    log (z) – натуральный логарифм;

    log 10 (z) – десятичный логарифм;

    sqrt (z) – квадратный корень из числа z;

    abs (z) – модуль числа z.

    Целочисленные функции

    fix (z) – округление к ближайшему целому в сторону нуля;

    floor (z) – округление к ближайшему целому в сторону отрицательной бесконечности;

    ceil (z) – округление к ближайшему целому в сторону положительной бесконечности;

    round (z) – обычное округление числа z к ближайшему целому;

    mod (X, Y) – целочисленное деление X на Y;

    rem (X, Y) – вычисление остатка от деления X на Y;

    sign (z) – вычисление сигнум-функции числа z

    (0 при z = 0, –1 при z < 0, 1 при z > 0)

    1.2.5. Специальные математические функции

    Кроме элементарных в языке MatLAB предусмотрен целый ряд специальных математических функций. Ниже приведен перечень и краткое содержание этих функций. Правила обращения к ним и использования пользователь может отыскать в описаниях этих функций, которые выводятся на экран, если набрать команду help и указать в той же строке имя функции.

    Функции преобразования координат

    cart 2 sph – преобразование декартовых координат в сферические;

    cart 2 pol – преобразование декартовых координат в полярные;

    pol 2 cart – преобразование полярных координат в декартовые;

    sph 2 cart – преобразование сферических координат в декартовые.

    Функции Бесселя

    besselj – функция Бесселя первого рода;

    bessely – функция Бесселя второго рода;

    besseli – модифицированная функция Бесселя первого рода;

    besselk – модифицированная функция Бесселя второго рода.

    Бета-функции

    beta – бета-функция;

    betainc – неполная бета-функция;

    betaln – логарифм бета-функции.

    Гамма-функции

    gamma – гамма-функция;

    gammainc – неполная гамма-функция;

    gammaln – логарифм гамма-функции.

    Эллиптические функции и интегралы

    ellipj – эллиптические функции Якоби;

    ellipke – полный эллиптический интеграл;

    expint – функция экспоненциального интеграла.

    Функции ошибок

    erf – функция ошибок;

    erfc – дополнительная функция ошибок;

    erfcx – масштабированная дополнительная функция ошибок;

    erflnv – обратная функция ошибок.

    Другие функции

    gcd – наибольший общий делитель;

    lern – наименьшее общее кратное;

    legendre – обобщенная функция Лежандра;

    log2 – логарифм по основанию 2;

    pow2 – возведение 2 в указанную степень;

    rat – представление числа в виде рациональной дроби;

    rats – представление чисел в виде рациональной дроби.

    1.2.6. Элементарные действия с комплексными числами

    Простейшие действия с комплексными числами – сложение, вычитание, умножение, деление и возведение в степень – осуществляются при помощи обычных арифметических знаков +,–,*,/, \ и ^ соответственно.

    Примеры использования приведены на рис. 1.11.

    Примечание. В приведенном фрагменте использована функция disp (от слова "дисплей"), которая тоже выводит в командное окно результаты вычислений или некоторый текст. При этом численный результат, как видно, выводится уже без указания имени переменной или ans.

    1.2.7. Функции комплексного аргумента

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

    Благодаря этому, например, функция sqrt вычисляет, в отличие от других языков программирования, квадратный корень из отрицательного аргумента, а функция abs при комплексном значении аргумента вычисляет модуль комплексного числа. Примеры приведены на рис. 1.12.

    В МаtLАВ есть несколько дополнительных функций, рассчитанных только на комплексный аргумент:

    real (z) – выделяет действительную часть комплексного аргумента z;

    і mag (z) – выделяет мнимую часть комплексного аргумента;

    angle (z) – вычисляет значение аргумента комплексного числа z (в радианах в диапазоне от –p до +p);

    conj (z) – выдает число, комплексно сопряженное относительно z.

    Примеры приведены на рис. 1.13.

    Рис. 1.12. Рис. 1.3.

    Кроме того, в MatLAB есть специальная функция cplxpair (V), которая осуществляет сортировку заданного вектора V с комплексными элементами таким образом, что комплексно-сопряженные пары этих элементов располагаются в векторе-результате в порядке возрастания их действительных частей, при этом элемент с отрицательной мнимой частью всегда располагается первым. Действительные элементы завершают комплексно-сопряженные пары. Например (в дальнейшем в примерах команды, которые набираются с клавиатуры , будут написаны жирным шрифтом , а результат их выполнения – обычным шрифтом ):

    >> v = [ -1, -1+2i,-5,4,5i,-1-2i,-5i]

    Columns 1 through 4

    1.0000 -1.0000 +2.0000i -5.0000 4.0000

    Columns 5 through 7

    0 + 5.0000i -1.0000-2.0000i 0 - 5.0000i

    >> disp(cplxpair(v))

    Columns 1 through 4

    1.0000 - 2.0000i -1.0000 + 2.0000i 0 - 5.0000i 0 + 5.0000i

    Columns 5 through 7

    5.0000 -1.0000 4.0000

    Приспособленность большинства функций MatLAB к оперированию с ком­плексными числами позволяет значительно проще строить вычисления с действи­тельными числами, результат которых является комплексным, например, находить комплексные корни квадратных уравнений.

    1. Гультяев А. К. MatLAB 5.2. Имитационное моделирование в среде Windows: Практическое пособие. - Спб.: КОРОНА принт, 1999. - 288 с.

    2. Гультяев А. К. Визуальное моделирование в среде MATLAB: Учебный курс. - Спб.: ПИТЕР, 2000. - 430 с.

    3. Дьяконов В. П. Справочник по применению системы PC MatLAB. - M.: Физматлит, 1993. - 113с.

    4. Дьяконов В. Simulink 4. Специальный справочник. - Спб: Питер, 2002. – 518 с.

    5. Дьяконов В., Круглов В. Математические пакеты расширения MatLAB. Специальный справочник. - СПб.: Питер, 2001. - 475с.

    6. Краснопрошина А. А., Репникова Н. Б., Ильченко А. А. Современный анализ систем управления с применением MATLAB, Simulink, Control System: Учебное пособие. - К.: "Корнійчук", 1999. – 144 с.

    7. Лазарев Ю. Ф. Початки програмування в среде MatLAB: Уч. пособие. - К.: "Корнійчук", 1999. - 160с.

    8. Лазарев Ю. MatLAB 5.x. – К.: "Ирина" (BHV), 2000. – 384 с.

    9. Медведев В. С., Потемкин В. Г. Control System Toolbox. MatLAB 5 для студентов. - Г.: "ДИАЛОГ-МИФИ", 1999. – 287 с.

    10. Потемкин В. Г. MatLAB 5 для студентов: Справ. пособие. - M.: "ДИАЛОГ-МИФИ", 1998. - 314 с.