- •§ 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.12.5. Построение линий уровня.
Для построения так называемых контурных
графиков в MATLAB
предусмотрены функции как contour,
contourf
и contour3,
с помощью которых строятся так называемые
линии уровня или изолинии. Под
последними понимаются кривые, получающиеся
в результате пересечения поверхности
с плоскостями
.
Эти линии можно спроектировать на одну
плоскость, и получить двумерное
изображение, а можно воспроизвести как
пространственные кривые и получить
трехмерное изображение. Наглядным
примером двумерных изображений изолиний
являются линии рельефа поверхности на
топографических картах (по последним,
как известно, можно легко локализовать
впадины и вершины, оценить их глубины
и высоты, особенно, если в разрывах
изолиний проставлены числовые значения
соответствующих уровней).
В частности, с использованием функции contour можно строить проекции линий уровня на плоскости . Необходимо отметить, что данная функция имеет несколько вариантов вызова. Так, например, если обратиться к ней с тремя аргументами (в данном случае X, Y, и Z – матрицы одинаковой размерности, задающие координаты узлов сетки, в которых определены аппликаты поверхности).
>> [X,Y]=meshgrid(-2:0.1:2);
>> Z=-2*X.*exp(-X.^2-Y.^2);
>> colormap(gray)
>> contour(X,Y,Z)
то получим график, представленный на рис. 2.12.9 (заметим, что в представленном фрагменте использована серая полутоновая матрица цветности (colormap(gray)).
Заметим, что если область определения поверхности квадратная и шаги по осям и совпадают, то вместо пары аргументов X, Y может быть задан только один массив.
Для того, чтобы такой график стал более информативным, целесообразно возле каждой линии уровня отобразить значение, которое соответствует значению функции. Для этого используется функция clabel(C,h), при вызове которой необходимо задать два входных параметра – матрицу C, содержащую информацию о линиях уровня (эту матрицу можно рассматривать как таблицу, состоящую из двух строк – первая колонка задает значение уровня изолинии и количество содержащихся в ней точек, следом располагается указанное количество пар с координатами точек изолинии; вслед за первой изолинией в том же формате располагается информация о второй изолинии и т.д. (данный массив требуется, когда необходимо оцифровывать изолинии, т.е. включать в разрыв линии значение ее уровня), и вектор h, представляющий собой набор указателей на созданные графические массивы (также требуется при оцифровке изолиний). Требуемые для функции clabel параметры автоматически генерирует функция contour, если ее вызвать с двумя входными аргументами (параметрами) C и h:
>> [C,h]=contour(X,Y,Z);
>> clabel(C,h)
Таким образом, если выполнить приведенные ниже команды, можно получить график, показанный на рис. 2.12.16.
Использование функции contourf в виде
>> contourf(X,Y,Z)
позволяет заполнить разными цветами промежутки между изолиниями (рис. 2.12.17), что может оказаться весьма удобным при визуализации результатов решения тестовых, модельных и практически важных задач.
Для построения изолиний в пространстве применяется функция contour3 (рис. 2.12.18).
>> contour3(X,Y,Z)
Задав четвертым входным аргументом функций contour и contour3 скалярное значение, можно указать количество уровней, для которых следует построить изолинии (по умолчанию количество уровней выбирается автоматически). Количество самих изолиний при этом может не совпадать с указанным количеством уровней, т.к. соответствующая плоскость может дать несколько разных линий пересечения с поверхностью.
Заметим, что среди многочисленных параметров функций contour, contourf и contour3, могут присутствовать пары типа
Рис. 2.12.15. Пример использования функции contour.
Рис. 2.12.16. Пример выполнения оцифровки изолиний.
Рис. 2.12.17. Пример использования функции contourf.
Рис. 2.12.18. Пример использования функции contour3.
('Свойство', значение)
инициализирующие значения соответствующих свойств.
Для изменения свойств изолиний можно воспользоваться массивом указателей, который возвращает функция contour3:
>> [X,Y]=meshgrid(-2:0.1:2);
>> Z=-2*X.*exp(-X.^2-Y.^2);
>> colormap(gray)
>> [C,h]=contour3(X,Y,Z,7);
>> set(h,'LineWidth',5)
Результат работы представленного фрагмента, в котором толщина изолиний была увеличена до 5 пунктов, приведен на рис. 2.12.19.
Рис. 2.12.19. Пример утолщенных пространственных изолиний.
