Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЗ_Матлаб Введение 120206.doc
Скачиваний:
2
Добавлен:
03.05.2019
Размер:
489.47 Кб
Скачать

Практическое занятие

Тема: Введение в Матлаб. Основы работы в среде Матлаб. Операторы и функции. Операции с векторами и матрицами

Время: 2ч.

Вопросы:

  1. Введение в Матлаб.

  2. Основы работы в среде Матлаб.

  3. Операторы и функции.

  4. Операции с векторами и матрицами.

Теоретические сведения

Реферат

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

  1. Введение в Матлаб

Интегрированные математические системы

Около 25 лет назад, когда персональных компьютеров еще не было и в помине, довольно широкое распространение имели выносные терминалы к большим вычислительным машинам. Их пользователи, как и пользователи больших машин, должны были осваивать языки программирования и тонкости численных методов расчетов; гарантии правильности и эффективности таких кустарно выполненных программ были сомнительны, а пользовательский интерфейс примитивен. Действительно, серьезная программа должна содержать, в частности, многочисленные пути обхода неизбежных вырожденных случаев (когда определитель матрицы близок к нулю, собственные числа становятся кратными, при поиске минимума появляется многомерный овраг и т.д.), а оптимальные в вычислительном отношении алгоритмы очень далеки от тех, которые предлагают на лекциях по математике. Хорошие программные продукты уже тогда создавались большими коллективами, оснащенными прекрасной техникой и программными средствами отладки, однако разыскать их в необъятном море литературы и адаптировать к своей машине было достаточно трудно.

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

Первое направление, представляемое системой MatLAB (МАТричная ЛА­Боратория), было реализовано Молером и с конца 70-х годов широко ис­пользовалось на больших ЭВМ. В начале 80-х годов Литл из фирмы Math- Work Incorporated переработал ее для персональных компьютеров фирм IBM, VAX и Macintosh. В основе системы лежит простой входной язык программирования, напоминающий BASIC с примесью FORTRAN'а и PASCAL'я.

Этот язык ориентирован на матричные и векторные вычисления, которые выполняются в интерактивном режиме столь же просто, как и обычные ал-гебраические вычисления. Числа рассматриваются как матрицы (1 х 1), о чем пользователь, к счастью, вовсе не обязан помнить. На основе этого простого набора базовых слов (имен операторов и функций) пользователь создает новые слова-функции и слова-сценарии, которые набираются в любом текстовом редакторе (со словесными комментариями, помечаемыми знаком %) и хранятся на жестком диске в виде текстовых файлов с расширением .m. Имена этих файлов совпадают с именами реализованных в них функций. В отличие от большинства языков программирования, обращение к новым функциям производится без каких-либо предварительных объявлений.

В базовый набор слов системы входят несколько спецзнаков, знаки арифметических и логических операций, основные элементарные и некото­рые специальные функции, функции прямого и обратного преобразований Фурье и цифровой фильтрации, векторные и матричные функции, операции с полиномами, средства для работы с комплексными числами, функции обработки экспериментальных данных, очень удобные операторы построения графиков в декартовой и полярной системах координат, трехмерных поверхностей и их линий уровня и др., в том числе функции для организации экранного диалога. В последней доступной версии MatLAB 4.2 добавлены возможности последовательного вызова файлов данных в цикле (по маске) и некоторые базовые операции для работы с графами. Все версии снабжаются библиотеками готовых m-файлов. Система MatLab оказала большое влияние на разработку более специализированных пакетов для расчета систем управления (таких, как CTRL C, MATRIX x).

В 1997 году появилась еще одна версия MatLAB 5.0 для станций SUN. Сейчас имеются более совершенные версии 5.1-5.4, которые могут работать на обычных ПК с Windows 95-98. Они содержат, в частности, библиотеку TOOLBOXов ("ящиков с инструментами", около 300 Мб), которые можно устанавливать выборочно. К числу этих библиотек относятся:

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

- моделирование систем в реальном масштабе времени;

- библиотека математических функций;

- сплайн - аппроксимации;

- статистика;

- оптимизация;

- размытые множества;

- нейронные сети;

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

- символьная математика;

- проектирование нелинейных систем;

- робастное управление;

- проектирование робастных систем с обратной связью;

- синтез систем управления на основе линейных матричных неравенств;

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

- спектральный анализ на основе спектров высших порядков;

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

- импульсная декомпозиция (волновые пакеты);

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

- системы связи и коммуникаций;

- финансы.

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

- разобраться в одном из блоков важной библиотеки;

- перевести комментарии и объяснить, что, собственно, делает та или иная программа;

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

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

- дать примеры решения содержательных задач по специальности.

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

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

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

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

  • прочитать;

  • заставить работать как демонстрационную программу;

  • просмотреть с измененными входными данными;

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

Первые версии системы с номерами 2.50, 2.52, 2.53, 2.54 были ис тинной жемчужиной компьютерной математики: они работали на машинах типа PC XT-286 даже без жесткого диска и занимали всего около 600 Кб. Некоторые сложности были связаны только с русскими буквами (при их использовании пропадали буквы греческие) и с настройкой принтера. Системы начиная с 3.0 требуют оболочки Windows и полностью совместимы со стандартами фирмы MicroSoft. Очень важная их особенность - включение в состав системы символьного процессора. Недостаток состоит в том, что интерпретация формульных выражений отнимает очень много времени, система работает примерно в 10 раз медленнее, чем MatLAB.

Особенности наиболее распространенных версий таковы.

Версия 5.0. Работает с версией Windows 3.1 и выше, содержит прек­расный вводный курс и 2 электронные книги.

Версия 6.0. В отличие от более ранних версий содержит операторы цикла того же вида, что и в языках типа Pascal и возможности анимации изображений. Кроме обычного справочного материала включает специальные "шпаргалки" (Quicksheets). Упрощенный вариант русифицирован, но в нем отсутствуют многие важные возможности. При попытке установить профес­сиональную версию система сообщает, что она разработана только для Америки и Канады и предлагает обратиться к своему дилеру за вариантом для развивающихся стран. Для установки профессиональной версии нужно замаскировать свой компьютер под американский: установить страну - США и основную раскладку клавиатуры - американскую (после первого запуска можно вернуться к прежним установкам).

Версия 7.0. Работает с Windows 95 и выше, никаких проблем при установке не создает.

В настоящее время появилась версия 8.0, несколько расширяющая возможности программирования в среде Mathcad и содержащая ряд пользовательских библиотек.

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

Вместе с последними версиями Mathcad обычно поставляются еще два вспомогательных пакета:

  • система геометрического программирования MathConnex, позволяющая объединить несколько программ, написанных в средах Mathcad, MatLab и некоторых других;

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

Появившаяся в самое последнее время система MathCad 2000 занимает 230 Мб дискового пространства и включает целый ряд пакетов, которые раньше рассматривались как самостоятельные продукты. По мнению автора, ее целесообразно устанавливать только на Pentium-3 при наличии не менее 128 Мб оперативной памяти.

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