"MATLAB 7 (Наиболее полное руководство в подлиннике)" - читать интересную книгу автора (Ануфриев И.Е., Смирнов А.Б., Смирнова Е.Н.)

П импортирование статистических данных с финансовых рынков и проведение на их основе технического анализа с привлечением большого количества индикаторов.
Как мы уже упоминали, MATLAB поддерживает символьные вычисления. Symbolic Math Toolbox содержит функции, обеспечивающие доступ к вычислительному ядру Maple. Пользуясь ими, вы можете: производить интегрирование и суммирование, вычислять пределы и находить разложение функций в ряд, упрощать выражения, находить определители, решать задачи на собственные значения, применять различные преобразования, решать алгебраические и дифференциальные уравнения, проводить вычисления с любой точностью, словом, использовать все возможности символьной математики Maple. Интерфейс с Maple и входящими в его состав пакетами может быть налажен средствами Extended Symbolic Math Toolbox.
Optimization Toolbox нацелен на решение основных линейных и нелинейных задач оптимизации, причем для задач с большим числом неизвестных предусмотрены весьма эффективные специальные методы. Класс задач, охватываемый данным Toolbox, включает:
? линейное и квадратичное программирование;
? минимизацию нелинейных функций при наличии нелинейных ограничений;
? подбор параметров;
П минимаксные задачи и задачи о достижении цели.
Partial Differential Equations Toolbox (PDE Toolbox) создан для решения задач математической физики, описываемых дифференциальными уравнениями и системами в частных производных, методом конечных элементов. Решение задач значительно упрощается благодаря приложению с графическим интерфейсом, которое позволяет легко и наглядно осуществить все этапы решения задач методом конечных элементов — от задания области и граничных условий до визуализации результата. Приложение может быть легко настроено на определенный класс решаемых задач, например таких, как;
О теория упругости;
О электростатика и магнитостатика;
10
Введение
? теплопроводность;
? теория диффузии.
Нестационарные процессы отображаются при помощи анимированных графиков. В состав PDE Toolbox входят солверы для решения нелинейных задач и задач в адаптивном режиме. Возможности PDE Toolbox не ограничиваются вышеперечисленными типами задач, в частности, встроенные функции могут быть использованы для решения систем уравнений произвольной размерности.
PDE Toolbox является хорошим компактным пакетом для обучения основам метода конечных элементов и введения в конечпоэлементные пакеты. Однако серьезные инженерные практические задачи вряд ли могут быть решены в нем, поскольку он поддерживает только один тип конечных элементов — линейные треугольные. До 2003 г. в состав MATLAB входило приложение FEMLAB, которое затем стало отдельным программным продуктом, но FEMLAB может быть установлен и как приложение MATLAB. FEMLAB позволяет моделировать двумерные и трехмерные задачи, описываемые дифференциальными уравнениями в частных производных: перенос, течения, упругость и электромагнетизм.
Следует подчеркнуть, что MATLAB и его расширения могут с успехом применяться для интерактивного моделирования и анализа нелинейных систем, исследования устойчивости, разработки цифровых и аналоговых систем связи, передачи и хранения информации. Многие практические задачи, возникающие в области нечеткой логики и нейронных сетей, могут быть решены с использованием соответствующих Toolbox. В 7-ую версию MATLAB включен Bioinfonnatics Toolbox, предназначенный для решения некоторых задач, лежащих на стыке биологии и информатики.
В начале введения мы упомянули пакет Simulink, поставляемый вместе с MATLAB, который служит для исследования нелинейных динамических систем. Он хорошо интегрируется в среду MATLAB и расширяет ее возможности. Например, сочетание Simulink и Signal Processing Blockset позволяет в удобной среде разрабатывать алгоритмы обработки сигналов и генерировать код на С. Обзор возможностей, предоставляемый Simulink, занимает много места— мы отсылаем заинтересованных читателей к нескольким книгам [2, 5].
В2. О содержании книги
Разумеется, ограниченность объема книги не позволяет подробно описать все средства, которые MATLAB и Toolbox предоставляют в распоряжение исследователя и инженера.
Введение____________ 1 1
Первая часть книги посвящена основам работы в MATLAB. В главе I описаны рабочая среда и приемы эффективной работы из командной строки. Объяснено использование переменных и вычисление арифметических выражений, изменение формата вывода чисел и основные встроенные математические функции.
Глава 2 книги подробно разъясняет принципы работы с матрицами и векторами, включая основы визуализации векторных и матричных данных. Особенности представления данных в виде массивов, в частности, матриц и векторов, дают пользователю более широкие возможности по сравнению с большинством языков программирования. Набор специальных функций и средств унифицирует работу с массивами данных, делая ее очень эффективной. Отсутствие навыков оперирования с массивами в MATLAB приводит к многочисленным затруднениям даже при решении самых простых задач,
Глава 3 нацелена на обучение читателя свободному владению средствами высокоуровневой графики для построения диаграмм и гистограмм, линий, поверхностей и векторных полей. Пакет MATLAB обладает чрезвычайно мощными возможностями визуализации одномерных и многомерных данных различных типов, включая и построение графиков функций. Приведены команды, служащие для организации и оформления графических результатов с целью получения хорошо читаемых графиков.
Интерактивная среда для построения графиков позволяет визуализировать данные, не прибегая к командам MATLAB. Кроме того, инструменты интерактивной среды могут быть использованы для редактирования существующих графиков, изменения свойств всех содержащихся на них объектов и манипулирования графиком, в частности, для осмотра поверхности со всех сторон. Эти вопросы, а также экспорт графических результатов и их печать описаны в главе 4.
Работа из командной строки, разумеется, не очень удобна и подходит только для решения простых задач. Выход состоит в использовании М-файлов, т. е. программ и функций, содержащих нужную последовательность команд MATLAB. Написание основных типов М-файлов (файл-программ и файл-функций) во встроенном редакторе разобрано в главе 5. М-файлы сохраняются на диске и запускаются на выполнение так же, как и другие команды и функции MATLAB, что позволяет расширять набор стандартных средств MATLAB и создавать собственные пакеты программ для решения специальных задач. Более того, подавляющее большинство функций MATLAB и Toolbox имеют открытый код, они запрограммированы в М-файлах, что дает опытному пользователю уникальную возможность разбираться в осо-
12
Введение
бенностях реализации алгоритмов и изменять их, приспосабливаясь к решению сложных специальных задач.
Вторая часть книги посвящена более сложным вопросам — применению численных методов и программированию собственных, алгоритмов. Программирование в MATLAB не требует специальных знаний, достаточно понимать принципы алгоритмизации. Пользователи, имеющие опыт программирования на одном из алгоритмических языков, например, Basic, С или Pascal, легко освоят встроенный язык программирования, основанный на минимальном наборе конструкций.
Решение классических задач численными методами при помощи функций MATLAB требует, в отличие от программирования, знаний, как минимум в объеме программы технических вузов. Поиск корней и минимизация функций, интегрирование и интерполирование, решение задач линейной алгебры, обыкновенных дифференциальных уравнений и систем разобраны в главе 6. Вычислительные алгоритмы MATLAB допускают их настройку на получение результата с определенной точностью и задание ряда опций для управления ходом вычислений. Данный круг вопросов также освещается в главе 6.
Глава 7 содержит описание основных конструкций языка программирования MATLAB, включая операторы ветвления и циклов. Описаны логические операции и логическое индексирование в применении к массивам, которые зачастую позволяют сократить объем программы и повысить ее эффективность.
Работа со строками, текстовыми файлами и специальными типами данных— массивами ячеек и структур — продемонстрирована в главе 8 на нескольких содержательных примерах. В этой же главе описан простейший способ организации взаимодействия программы MATLAB с пользователем на основе интерфейса из командной строки. Несколько разделов главы 8 информируют читателя о принципах написания файл-функций с переменным числом входных и выходных аргументов, поскольку подавляющее большинство функций MATLAB допускают именно такое универсальное обращение к ним. Уделено внимание созданию рекурсивных функций. Программирование сложных алгоритмов нередко требует их отладки. Редактор MATLAB содержит набор средств для отладки программ, использование которых также пояснено в главе 8.
Разработка в MATLAB программ, связанных с визуализацией данных, основана на управлении свойствами графических объектов прямо в ходе работы программы. Хорошо написанная программа не должна требовать от пользователя доработки графических результатов, к примеру, при помощи интерактивной среды для редактирования графиков. MATLAB является
.
Введение
13
объектно-ориентированной системой, все его графические объекты выстроены в некоторую иерархию и имеют определенные свойства. Полный доступ к свойствам всех графических объектов эффективно реализуется средствами дескрипторной графики. Глава 9 раскрывает принципы управления свойствами графических объектов и содержит описание основных свойств. Простые примеры, приведенные в главе 9, демонстрируют основные возможности, имеющиеся в распоряжении разработчика графических программ в системе MATLAB.
Третья часть книги предназначена для поэтапного обучения процессу создания приложений с графическим интерфейсом пользователя в среде GUIDE. Простота программирования и работы в среде GUIDE компенсируется потенциалом вычислительных и визуальных средств MATLAB и Toolbox. Разработка приложений с графическим интерфейсом пользователя в среде GUIDE занимает немного времени, но существенно облегчает и ускоряет проведение исследований.
В главе 10 на примере простого приложения показан процесс размещения элементов интерфейса в окне приложения и программирование событий. Следует иметь в виду, что обработка событий элементов управления требует понимания основ дескрипторной графики, которые изложены в главе 9.
Читая главу 11, вы продолжите работу над созданным приложением, пополняя его интерфейс флагами, переключателями, областями ввода и полосами скроллинга и программируя их с учетом обеспечения согласованной работы всех элементов управления.
О том, как снабдить собственное приложение диалоговыми окнами, меню, в том числе контекстными, сообщается в главе 12. Удобство работы с приложением во многом определяется хорошо продуманной структурой меню. Изменение структуры меню так же описано в этой главе.
Глава 13, завершающая третью часть книги, содержит некоторые дополнительные сведения о программировании событий графических объектов, например, щелчка мышью или нажатия клавиши, и ряде свойств, связанных с этими событиями.
Четвертая часть книги посвящена применению Toolbox для исследования некоторых специальных задач. Глава 14 раскрывает перед читателем возможности Toolbox Partial Differential Equations (PDE), позволяющего решать задачи математической физики, описываемые уравнениями в частных производных методом конечных элементов. Детально разобраны этапы решения задач в среде pdetool с графическим интерфейсом: описание геометрии области, задание уравнения и граничных условий, разбиение области
14
Введение
сеткой, поиск приближенного решения и визуализация результата. Разобраны примеры стационарных и нестационарных задач. Следует иметь в виду, что среда pdetool лишь облегчает доступ к большому набору функций PDE Toolbox. Непосредственное использование данных функций в собственных программах позволяет проводить более сложные исследования по сравнению с возможностями pdetool. В связи с этим в главе 14 приведено описание форматов представления данных, связанных с реализацией метода конечных элементов в PDE Toolbox, и разобраны примеры использования функций Toolbox.
Решение многих современных сложных задач численными методами приводит к так называемым разреженным матрицам, т. е. матрицам, содержащим достаточно много нулевых элементов. Работа с разреженными матрицами в MATLAB с точки зрения пользователя происходит практически так же, как и с обычными. Разреженные матрицы принадлежат специальному классу, в котором обычные матричные операции переопределены в соответствии со спецификой разреженных матриц. Глава 15 поясняет схему хранения, создание и операции с разреженными матрицами. Профайлер MATLAB позволяет отчетливо выявить преимущества учета структуры матрицы при решении задач линейной алгебры и матричного анализа, например таких, как факторизация матриц.
Решение различных типов линейных и нелинейных оптимизационных задач на основе функций Optimization Toolbox разобрано в главе 16. Эффективное использование оптимизационных алгоритмов для решения сложных задач требует понимания методов и умения работать с разреженными матрицами. Приведен пример решения большой системы нелинейных уравнений. Отдельный раздел главы 16 посвящен написанию приложения с графическим интерфейсом пользователя для решения практически важной задачи о подборе параметров.
Исследователи, чья работа сопряжена с проведением большого количества аналитических выкладок и программированием модулей для соответствующих расчетов, несомненно, заинтересуются Symbolic Math Toolbox. Символьные вычисления основаны на мощном ядре Maple, при этом пользователь имеет доступ ко всем ресурсам MATLAB. Глава 17 этой книги нацелена на обучение пользователя работе с символьными выражениями, включая упрощение, преобразование и вычисление с произвольной точностью. Отдельные разделы данной главы описывают технику решения задач в аналитическом виде, включая матричный анализ, суммирование, разложение в ряды, нахождение пределов функций и интегрирование, поиск решения дифференциальных уравнений и систем.