- •§ 2.2. Командное окно системы matlab
- •§ 2.3. Рабочее пространство системы matlab
- •§ 2.4. Скаляры и массивы. Индексированные переменные
- •§ 2.5. Форматы представления вещественных чисел
- •§ 2.6. Арифметические выражения
- •2.6.1. Некоторая специфика использования вещественных данных
- •2.6.2. Некоторая специфика использования комплексных данных
- •2.6.3. Некоторые приемы работы с матрицами и векторами
- •2.6.4. Некоторые специфика выполнения арифметических и логических операций.
- •§ 2.7. Элементарные математические функции
- •Часть 2. Визуализация результатов вычислений
- •§ 2.8. Особенности графической подсистемы matlab
- •§ 2.9. Построение графиков функций одной переменной
- •2.9.1. Простые графики в декартовой системе координат.
- •2.9.2. Визуализация нескольких графиков.
- •2.9.3. Функция fplot.
- •2.9.4. Построение графиков в логарифмическом и полулогарифмическом масштабах.
- •2.9.5. Построение графиков в полярных координатах.
- •§ 2.10. Оформление графиков и графических окон
- •2.10.1. Выбор свойств линий.
- •2.10.2. Оформление осей координат.
- •2.10.3. Добавление надписей, заголовков и координатной сетки.
- •§ 2.11. Средства управления в графическом окне
- •§ 2.12. Общее знакомство с трехмерной графикой в matlab
- •2.12.1. Общий алгоритм визуализации функций двух переменных.
- •2.12.2. Построение трехмерных линий.
- •2.12.3. Построение поверхностей.
- •2.12.4. Задание дополнительных параметров трехмерных графиков.
- •2.12.5. Построение линий уровня.
- •2.12.6. Построение траектории точки, движущейся в пространстве.
- •2.12.7. Интерактивное редактирование графиков.
- •Часть 3. Вычисления с действительными и комплексными массивами чисел
- •§ 2.13. Операции отношения и логические операции над числами
- •2.13.1. Операции отношения.
- •2.13.2. Логические операции.
- •2.13.3. Приоритет операций.
- •§ 2.14. Формирование одномерных числовых массивов
- •2.14.1. Задание одномерных массивов и доступ к их элементам.
- •2.14.2. Об ускорении операций задания массива.
- •2.14.3. Об использовании операции формирования диапазона.
- •§ 2.15. Матрицы и векторы. Двумерные массивы чисел
- •2.15.1. Создание матриц и векторов.
- •2.15.2. Доступ к отдельным фрагментам матриц.
- •2.15.3. Удаление строк и столбцов матрицы.
- •2.15.4. Использование функций перестановки частей матриц.
- •2.15.5. Определение размеров и размерностей массивов.
- •2.15.6. Использование операций индексации.
- •2.15.7. Изменение размеров массива.
- •2.15.8. Специальные функции формирования массивов.
- •§ 2.16. Вычисления с массивами
- •2.16.1. Поэлементные и групповые операции над массивами.
- •2.16.2. Решение некоторых типовых задач линейной алгебры и аналитической геометрии.
- •2.16.3. Применение операций отношения и логических операций к массивам.
- •2.16.4. Некоторые функции для работы с массивами.
- •Часть 4. Стандартные средства решения некоторых типовых задач линейной алгебры и математического анализа
- •§ 2.17. Решение систем линейных алгебраических уравнений
- •§ 2.18. Решение некоторых задач линейной алгебры. Матричные функции
- •§ 2.19. Разреженные матрицы
- •§ 2.20. Решение нелинейных уравнений
- •§ 2.21. Поиск минимального значения функции
- •§ 2.22. Численное интегрирование
- •2.22.1. Использование метода трапеций.
- •2.22.2. Использование методов Симпсона и Гаусса-Лобатто.
- •2.22.3. Вычисление двойных интегралов.
- •§ 2.23. Операции над полиномами
- •2.23.1. Вычисление значения полинома.
- •2.23.2. Вычисление корней полинома.
- •2.23.3. Умножение и деление полиномов.
- •2.23.4. Дифференцирование и интегрирование полиномов.
- •§ 2.24. Интерполяция и аппроксимация данных
- •2.24.1. Полиномиальная аппроксимация.
- •2.24.2. Интерполяция сплайнами.
- •Часть 5. Символьные вычисления
- •§ 2.25. Создание символьных переменных, выражений и матриц
- •2.25.1. Создание символьных переменных.
- •2.25.2. Создание символьных выражений.
- •2.25.3. Создание символьных матриц.
- •§ 2.26. Символьные вычисления
- •2.26.1. Символьное дифференцирование.
- •2.26.2. Вычисление пределов.
- •2.26.3. Символьное интегрирование.
- •2.26.3. Вычисление суммы ряда. Разложение функций в ряды.
- •2.26.4. Упрощение выражений. Подстановки.
- •2.26.5. Управление точностью вычислений.
- •2.26.6. Операции над векторами. Операции над матрицами. Некоторые операции линейной алгебры.
- •2.26.7. Решение уравнений и систем уравнений.
- •§ 2.27. Визуализация результатов символьных вычислений
- •2.27.1. Построение двумерных графиков.
- •2.27.2. Построение трехмерных графиков.
- •Часть 6. Основы программирования на m-языке
- •§ 2.28. Основные понятия программирования в системе matlab
- •2.28.1. Назначение языка программирования matlab.
- •2.28.2. Основные средства программирования.
- •2.28.3. Основные типы данных.
- •2.28.4. Виды программирования.
- •2.28.5. Двойственность операторов, команд и функций.
- •2.28.6. Некоторые ограничения.
- •§ 2.29. Создание и использование m-файлов
- •2.29.1. Понятие об m-файлах.
- •2.29.2. Типы m-файлов.
- •2.29.3. Создание файл-программ.
- •2.29.4. Создание файл-функций.
- •2.29.5. Глобализация переменных и функций.
- •2.29.6. Синтаксический контроль программ.
- •§ 2.30. Управляющие структуры
- •2.30.1. Понятие об управляющих структурах.
- •2.30.2. Операторы цикла.
- •2.30.3. Операторы ветвления.
- •2.30.4. Прочие операторы.
- •§ 2.31. Работа с файлами
- •2.31.1. Общие замечания.
- •2.31.2. Подготовка файла к работе.
- •2.31.3. Завершение работы с файлами.
- •2.31.4. Контроль за исчерпанием данных.
- •2.31.5. Чтение из текстового файла.
- •2.31.6. Анализ ошибок в файловых операциях.
- •§ 2.32. Форматный ввод-вывод данных
- •2.32.1. Форматные преобразования (sprintf, sscanf).
- •2.32.2. Форматные преобразования при работе с файлами (fprintf, fscanf).
- •§ 2.33. Рекурсивные файл-функции. Производительность файл-функций
- •2.33.1. Понятие о рекурсивных файл-функциях.
- •2.33.2. Оценка производительности файл-функции.
- •§ 2.34. Файл-функции с переменным числом входных параметров и выходных значений
- •§ 2.35. Диалоговые программы
- •2.35.1. Ввод числовых и символьных данных.
- •2.35.2. Вывод результатов вычислений.
- •§ 2.36. Анимационные эффекты
- •§ 2.37. Контроль входных и выходных параметров файл-функции
- •§ 2.38. Отладка программы
- •2.38.1. Понятие о способах отладки программы.
- •2.38.2. Рекомендации по созданию и отладке программ.
- •Часть 7. Создание программ с визуальным интерфейсом
- •§ 2.39. Понятие о графическом интерфейсе пользователя (gui)
- •2.39.1. Предварительные замечания.
- •2.39.2. Основные команды для создания gui.
- •§ 2.40. Общие сведения о визуальной среде guide
- •§ 2.41. Программирование событий в matlab
- •§ 2.42. Свойства основных компонентов в matlab
- •§ 2.43. Диалоговые окна в matlab
- •§ 2.44. Динамическое создание компонентов
- •§ 2.45. Создание меню
- •§ 2.46. Некоторые рекомендации по созданию приложений с графическим интерфейсом пользователя
2.28.5. Двойственность операторов, команд и функций.
Для языка системы MATLAB различие между командами (выполняемыми в командном окне при вводе с клавиатуры) и программными операторами (выполняемыми из программы) является в известной мере условным. В самом деле, и команды, и программные операторы могут выполняться как из программы, так и в режиме прямых вычислений. Под командами в специализированной литературе [7,69-71,109,132,177] зачастую понимают средства, управляющие периферийным оборудованием, а под операторами – средства, выполняющие операции с операндами (данными).
Функция преобразует одни данные в другие, причем для многих функций характерен возврат значений в ответ на обращение к ним с указанием списка входных параметров (аргументов).
Важное значение имеет двойственность операторов и функций – многие операторы имеют свои аналоги в виде функций. Так, например, оператор «+» имеет свой аналог в виде функции sum. Команды вида
Command argument
нередко имеют форму записи в виде функции
Command('argument')
Такая двойственность лежит в основе выбора между процедурным и функциональными типами программирования, каждый из которых в той или иной мере может оказаться более эффективным при решении тех или иных задач.
2.28.6. Некоторые ограничения.
В силу того, что язык программирования системы MATLAB ориентирован на структурное программирование, в нем отсутствуют номера строк (характерные, например, для языка программирования FORTRAN) и программных операторов безусловного перехода (типа GO TO или GOTO в FORTRAN). Вместе с тем, имеются управляющие конструкции следующих типов: условные выражения if...else...elseif...end, циклы for ...end, и while...end, по форме похожие на ту, которые используются в языке Pascal (т.е. область действия управляющих структур начинается их заголовком, но без слова begin, а заканчивается словом end). С точки зрения теории структурного программирования перечисленных средств достаточно для решения практически любых задач. В системе MATLAB также имеются операторы-переключатели типа case (аналоги имеются, например, в языке программирования FORTRAN), облегчающие создание программных конструкций со множественным ветвлением. С другой стороны в MATLAB исключены все средства, возможности которых можно реализовать уже имеющимися средствами, при этом существенным образом увеличен набор средств для программирования решений математических задач, сводящихся, прежде всего, к матричным вычислениям и сопряженных с реализацией современных численных методов.
Для ускорения вычислений на программные конструкции MATLAB также традиционно накладывались и накладываются определенные ограничения, применяются разного рода специализированные ускорители.
§ 2.29. Создание и использование m-файлов
2.29.1. Понятие об m-файлах.
Более эффективным способом выполнения команд в системе MATLAB является применение M-файлов.
M-файлом называется текстовый файл с расширением .m, содержащий набор инструкций на языке системы MATLAB (т.е. в M-файлах хранятся программные коды). Для решения различных математических задач MATLAB предоставляет весьма мощный и удобный язык программирования высокого уровня, интуитивно понятный даже для пользователей, не являющихся профессиональными программистами. Вместе с тем цель последующего изложения, разумеется, не начать осваивать с нуля новый и неизвестный язык программирования MATLAB, ведь на протяжении всей второй главы, при изучении различных команд и функций MATLAB и их выполнении в «режиме калькулятора», по сути, рассматривались особенности данного языка. Несмотря на то, что работу в командной строке нельзя назвать программированием, тем не менее, все команды, операторы и функции, описанные ранее, составляют типичный инструментарий языка программирования системы MATLAB.
Поясним, что создать M-файл можно в любом текстовом редакторе, поддерживающим формат ASCII-файлов (например, текстовый процессор Microsoft Word). Вместе с тем, в системе MATLAB имеется собственный, рекомендуемый к использованию встроенный редактор M-файлов, который отличают удобные визуальные средства создания и отладки программ. В этом редакторе можно набрать команды, выполнить их сразу или частично, а после сохранить в файле, который можно использовать в дальнейшем.
M-файлы должны иметь уникальные имена. Длина имен при этом не ограничивается, но лишь первый 31 символ учитывается при идентификации имени. При исполнении программного объекта его имя сравнивается со списком имен, хранящихся в рабочей области и в директориях M-файлов. Если имя файла оказывается неуникальным, соответствующий программный объект не исполняется и выдается сообщение об ошибке, а если уникальным, то программный объект исполняется в интерпретирующем режиме.
