- •Основы работы и программирования, компьютерная математика Учебный курс
- •Isbn ооо «Харвест», 2008
- •Предисловие
- •Введение
- •Глава 1 знакомство с matlab и простейшие вычисления
- •1.1. Рабочая средаMatlab
- •1.2. Арифметические вычисления
- •1.3. Вещественные числа
- •1.4. Форматы вывода результата вычислений
- •1.5 Комплексные числа
- •1.6 Векторы и матрицы
- •1.7 Встроенные функции. Функции, задаваемые пользователем
- •1.8 Сообщения об ошибках и их исправление
- •1.9 Просмотр и сохранение переменных
- •1.10 Матричные и поэлементные операции над векторами и матрицами
- •1.11 Решение систем линейных уравнений
- •Вопросы для самопроверки
- •Глава 2 работа с массивами
- •2.1 Создание векторов и матриц
- •2.2 Применение команд обработки данных к векторам и матрицам
- •2.3 Создание специальных матриц
- •2.4 Создание новых массивов на основе существующих
- •2.5 Вычисление собственных значений и собственных векторов. Решение типовых задач линейной алгебры
- •Вопросы для самопроверки
- •Глава 3 м-файлы
- •3.1 Файл-программы
- •3.2 Файл-функции
- •Вопросы для самопроверки
- •Глава 4 программирование
- •4.1 Операторы отношения и логические операторы
- •4.2 Операторы цикла
- •4.3 Операторы ветвления
- •4.4 Оператор переключения switch
- •4.5 Оператор прерывания цикла break
- •4.6 Пример сравнения быстродействия матричных и скалярных операций
- •Вопросы для самопроверки
- •Глава 5 высокоуровневая графика
- •5.1 2D графика
- •5.1.1 Графики в линейном масштабе
- •5.2 Специальные виды 2d - графиков
- •5.2.1 Представление функции в виде дискретных отсчетов
- •5.2.2 Лестничные графики
- •5.2.3 Графики с указанием погрешности
- •5.2.4 Графики в логарифмическом и полулогарифмическом масштабах
- •5.2.5 Графики параметрических функций
- •5.3 3D графика
- •5.3.1 Линейчатые поверхности
- •5.3.2 Каркасные поверхности
- •5.3.3 Контурные графики
- •5.3.4 Сплошная освещенная поверхность
- •5.4 Оформление, экспорт и анимация
- •5.4.1 Оформление графиков
- •5.4.2 Сохранение и экспорт графиков
- •5.4.3 Анимация
- •Вопросы для самопроверки
- •Глава 6 прикладная численная математика
- •6.1 Операции с полиномами
- •6.2 Решение уравнений и их систем
- •6.3 Минимизация функции одной переменной
- •6.4 Минимизация функции нескольких переменных
- •6.5 Вычисление определенных интегралов
- •6.6 Решение дифференциальных уравнений
- •6.7 Аппроксимация и интерполяция данных
- •6.8 Интерполяция двумерных и многомерных данных
- •Вопросы для самопроверки
- •Глава 7 символьные вычисления
- •7.1 Символьные переменные, константы и выражения
- •7.2 Вычисления с использованием арифметики произвольной точности
- •7.3 Команды упрощения выражений – simplify, simple
- •7.4 Команда расширения выражений – expand
- •7.5 Разложение выражений на простые множители – команда factor
- •7.6 Приведение подобных членов – команда collect
- •7.7 Обеспечение подстановок – команда subs
- •7.8 Вычисление пределов – команда limit
- •7.9 Вычисление производных – команда diff
- •7.10 Вычисление интегралов – команда int
- •7.11 Разложение в ряд Тейлора – команда taylor
- •7.12 Вычисление суммы ряда – команда symsum
- •7.13 Решение уравнений и их систем – команда solve
- •7.14 Решение дифференциальных уравнений – команда dsolve
- •7.15 Прямое и обратное преобразования Лапласа – команды laplace,ilaplace
- •7.16 Графики символьных функций – команды ezplot, ezpolar
- •7.17 Прямой доступ к ядру системы Maple – командаmaple
- •7.18 Разложение рациональной дроби на сумму простейших дробей
- •7.19 Интерполяционный полином Лагранжа
- •7.20 Решение неравенств и систем неравенств
- •7.21 Разложение в ряд Тейлора функции нескольких переменных
- •7.22 Решение дифференциальных уравнений с помощью степенных рядов
- •7.23 Решение тригонометрических уравнений
- •Вопросы для самопроверки
- •Приложения Приложение 1. Справочная система matlab
- •Приложение 2. Знакомство с пакетами расширения системыMatlab
- •Приложение 3. Задания для самостоятельной работы
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Литература
5.3 3D графика
Под 3D графикой будем понимать построение графической зависимости функции двух переменных z(x,y). График такой функции представляет собой изображение некоторой поверхности в трехмерном пространстве и строится с использованием аксонометрического метода.
Для графической визуализации функции двух переменных следует:
а) сформировать матрицу [x;y] с координатами узлов сетки на прямоугольной области определения функции. Матрица с координатами узлов сетки генерируется с помощью команды meshgrid(x,y). Аргументами x и y являются векторы, элементы которых задают координаты узлов прямоугольной сетки. Если область определения функции – квадрат, то в meshgrid(…) можно задать интервал и шаг изменения лишь одного из аргументов функции:
б) вычислить значения функции в узлах сетки;
в) использовать для вывода графика одну из графических команд MATLAB;
г) используя команды оформления графика, нанести дополнительную информацию.
Как и прежде, главным условием для отображения графических зависимостей функции z(x,y) является понимание того, как в среде MATLAB осуществляются поэлементные операции с векторами и матрицами.
5.3.1 Линейчатые поверхности
Для построения линейчатых поверхностей используются команды plot3(…) и contour3(…).
Пример 14. Построить график функции z(x,y) = x+y3 (рис. 5.16), где переменные x и y изменяются на интервале [-8;8] с шагом 0,5. Для построения графика использовать непрерывные линии черного цвета.
>> [x,y]=meshgrid(-8:0.5:8);
>> z=x+y.^3;
>> plot3(x,y,z,’k’)
Обсудим построенный график.
а) Как видно из условия задачи, область определения функции z представляет собой квадрат. Поэтому в команде meshgrid(…) указаны пределы и шаг изменения только одного из аргументов функции.
б) Команда meshgrid(…) лишь подготавливает матрицу [x,y], но не выводит ее на экран монитора.
в) В команде plot3(…) присутствует дополнительный параметр, который заключен в апострофы и определяет цвет линий на графике.
г) Все точки каждой из линий, с помощью которых построен график, находятся на одинаковом расстоянии от плоскости zOy. На языке начертательной геометрии они носят название линий профильного уровня.
Следует отметить, что правила применения команды plot3(…) аналогичны правилам применения команды plot(…) в 2D графике.
Рис. 5.16
Используем теперь для построения линейчатой поверхности команду contour3(…).
Пример 15. С использованием команды contour3(…) построить линейчатую поверхность функции z = x2+y2 (рис. 5.17). Переменные x и y изменяются на интервале [–3;3] с шагом 0,1. Количество линий на графике 40.
>> [x,y]=meshgrid(-3:0.1:3);
>> z=x.^2+y.^2;
>> contour3 (x,y,z,40)
>> colormap (bone)
>> colorbar
Из рис. 5.17 видно, что линии, с помощью которых построена поверхность, параллельны плоскости xOy. На языке начертательной геометрии они носят название линий горизонтального уровня.
Использование команд colormap и colorbar в приведенном листинге будет пояснено ниже.
Команда contour3(…) может быть использован без указания количества линий горизонтального уровня. В этом случае MATLAB самостоятельно определяет их количество.
Рис. 5.17