Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Glava_2a70_2014.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.6 Mб
Скачать

2.27.2. Построение трехмерных графиков.

Для построения трехмерных графиков в системе MATLAB можно использовать функции ezsurf, ezsurfc, ezmesh, ezmeshc и ezplot3. Рассмотрим их ниже более подробно.

Функция ezsurf(func [, xmin, xmax, ymin, ymax]) строит поверхность вида , где func – правая часть уравнения в символьном виде, а остальные параметры задают область построения поверхности (по умолчанию принимается и ; если при обращении к функции ezsurf указано три параметра вместо пяти, то полагается, что соответствующая область построения поверхности представляет собой квадрат с заданными границами). Отметим, что особенностью данной команды является то, что соответствующая поверхность создается только для допустимых значений аргументов.

Пусть, например, требуется построить поверхность, заданную функцией . Имеем (рис. 2.27.10):

>> syms x y

>> f=x*y*cos(x^2+y^2)

f =

x*y*cos(x^2 + y^2)

>> ezsurf(f,[-2, 2])

Функция ezsurfс(func [, xmin, xmax, ymin, ymax]) отличается от ezsurf лишь тем, что строит не только поверхность, но и визуализирует линии уровня (рис. 2.27.11):

>> ezsurfc(f,[-2, 2])

Функция ezmesh(func [, xmin, xmax, ymin, ymax]) аналогична функции ezsurf, однако выводит поверхность с нанесением контурных линий (рис. 2.27.12):

>> ezmesh(f,[-2, 2])

Функция ezmeshс(func [, xmin, xmax, ymin, ymax]) по аналогии с функцией ezmesh отображает поверхность с нанесением контуров и добавляет линии уровня (рис. 2.27.13):

>> ezmeshc(f,[-2, 2])

Функции ezcontour и ezcontourf строят соответственно карту линий уровня и закрашенную карту линий уровня для рассматриваемой функции (рис. 2.27.14, 2.27.15):

Рис. 2.27.9. График функции .

Рис. 2.27.10. Поверхность, построенная с использованием функции ezsurf.

Рис. 2.27.11. Поверхность и карта линий уровня (функция ezsurfc).

Рис. 2.27.12. Поверхность, построенная с использованием функции ezmesh.

Рис. 2.27.13. Поверхность и карта линий уровня (функция ezmeshc).

Рис. 2.27.14. Карта линий уровня функции .

Рис. 2.27.15. Закрашенная карта линий уровня функции .

Рис. 2.27.16. График параметрически заданной кривой.

>> ezcontour(f,[-2, 2, -5, 5])

>> ezcontourf(f,[-2, 2, -5, 5])

Функция ezplot3(X, Y, Z [, tmin, tmax]) строит поверхности, заданные функциями в параметрическом виде, где X, Y и Z – символьные выражения, задающие правые части уравнений , , ; [tmin, tmax] – границы изменения параметра (по умолчанию ).

Пусть, например, требуется построить поверхность заданную функциями , , , (рис. 2.27.16):

>> ezplot3('t*sin(t)','t*cos(t)','t^2', [0 10*pi])

Часть 6. Основы программирования на m-языке

§ 2.28. Основные понятия программирования в системе matlab

2.28.1. Назначение языка программирования matlab.

До сих пор все вычисления и операции в системе MATLAB выполнялись в «режиме калькулятора»: в командное окно вводилась команда, нажималась клавиша Enter, после чего программа выполняла заданное действие и выдавала результат. Вместе с тем, очевидно, что такого рода организация работ неприемлема, когда речь идет о решениях сложных задач, сопряженных с вводом большого количества команд, при котором тратиться много времени и растет вероятность появления ошибок. Кроме того, пошаговый режим ввода в командном окне хорош лишь для разового расчета, ведь даже, например, повторение одной и той же вычислительной схемы с небольшой модификацией алгоритма или с изменением исходных данных в пошаговом режиме превращается в весьма обременительное занятие. В целом, очевидно, что как бы большой и мощной ни была бы математическая система, в ней одной нельзя предусмотреть возможности решения всех задач, интересующих пользователей. Программирование в системе MATLAB является исключительно эффективным средством ее расширения и адаптации к решению конкретных фундаментальных и прикладных задач. Оно реализуется с помощью языка программирования системы (язык программирования MATLAB или иначе M-язык).

Большинство объектов этого языка, в частности все команды, операторы и функции, одновременно являются объектами входного языка общения с системой в командном режиме работы. Так, что фактически читатель приступил к знакомству с языком программирования системы MATLAB фактически с первых строк данной главы.

Тогда в чем основное отличие входного языка от языка программирования? Прежде всего, в способе фиксации создаваемых ими кодов. Сессии в командном режиме работы не сохраняются в памяти компьютера, хранятся лишь определения созданных в ходе их выполнения переменных и функций. Программы, написанные на языке программирования MATLAB, напротив, традиционно сохраняются в виде текстовых M-файлов и обеспечивают более эффективный способ выполнения команд. Заметим, что при этом могут сохраняться как целые программы, в виде файл-программ (файлов-сценариев), так и отдельные программные модули – файл-функции. Интересно, что программа может менять структуру алгоритмов вычислений в зависимости от входных данных и данных, создаваемых в ходе вычислений.

С позиций программиста язык программирования системы MATLAB является типичным проблемно-ориентированным языком программирования высокого уровня. Более того, иногда в литературе его даже называют языком сверхвысокого уровня, в силу того, что он содержит сложные операторы и функции, реализация которых на многих традиционных языках программирования (например, Basic, Pascal, C и др.) потребовала бы значительных усилий и существенных временных затрат. К таким функциям относятся, например, разного рода матричные функции, функции быстрого преобразования Фурье и другие, а к операторам – операторы построения разнообразных графиков, генерации матриц определенного вида и т.д.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]