Материал: Matlab. Практический подход. Самоучитель

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Глава 9. Символьные вычисления

Рис. 9.52. Просмотр анимации

рис. 9.52. В результате анимация запускается, а пиктограмма кнопки с треугольника меняется на квадрат. Повторный щелчок на этой кнопке приведет к остановке анимации. Некоторые анимационные кадры (по умолчанию всего их 50) представлены в табл. 9.1.

Практически так же просто создается трехмерная анимация. Чтобы картинка была трехмерной, в аргументах функции plot() указываем инструкцию #3D, а чтобы это была анимация, а не статическое изображение, добавляем дополнительный аргумент, который определяет диапазон изменения переменной, отождествляющей время. Пример создания трехмерной анимации приведен на рис. 9.53.

Это фактически расширенный до трехмерного случая предыдущий пример. Анимируются четыре пространственных Гауссовых пика. В начальный момент все пики находятся в начале системы координат, а затем начинают "разбегаться" в разные стороны вдоль координатных осей. Некоторые кадры анимации приведены в табл. 9.2.

Как и в предыдущем случае, командой f:=x->exp(-x^2/2)/ sqrt(2*PI) создаем функцию Гауссового типа. После этого командой F:=(x,y,t)->(f(x-t)+f(x+t))*(f(y-t)+f(y+t))/4 определяем базовую функцию, на основе которой будем строить трехмерную анимацию. Непосредственно анимация создается с помощью команды plot(F(x,y,t),x=-4..4,y=-4..4,Mesh=[80,80],t=0..2,#3D).

Первым аргументом функции plot() передается функция от трех аргу-

411

Самоучитель Matlab

Табл. 9.1. Кадры двумерной анима

Номер

Кадр

Номер

Кадр

кадра

 

кадра

 

 

 

 

 

1

 

12

 

5

16

7

25

8

40

9

50

412

Глава 9. Символьные вычисления

Рис. 9.53. Трехмерная анимация

ментов F(x,y,t). Также указан диапазон изменения пространственных переменных x и y, а также переменной t, которую отождествляем со временем. Инструкция #3D свидетельствует о том, что создается трехмерный график. Все эти аргументы вполне ожидаемы. Несколько неожиданным может показаться аргумент-опция Mesh=[80,80]. Она определяет количество узловых точек по каждой из координатных осей, на основе которых строится график функции (по умолчанию значение опции Mesh равно [50,40]). Эта опция не является обязательной. Мы ее использовали для того, чтобы график выглядел достаточно плавным. Если оставить для этой опции настройки по умолчанию, поверхность будет немного "угловатой" – особенно в районе пика.

413

Самоучитель Matlab

Табл. 9.2. Кадры трехмерной анимации

Номер

Кадр

Номер

Кадр

кадра

 

кадра

 

 

 

 

 

1

 

19

 

10

20

13

23

15

28

17

45

414

Глава 9. Символьные вычисления

Несколько замечаний о создании графики

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

К/ф "Приключения Шерлока Холмса и доктора Ватсона. Король шантажа"

В общем, для минимального использования возможностей среды MuPAD при создании графики и анимации достаточно функции plot(). Тем не менее, это даже не верхняя часть айсберга от тех возможностей в области графики и анимации, а намного меньше. Все описать здесь в силу объективных причин не получится. Выше мы рассмотрели только наиболее общие возможности среды MuPAD в плане создания графики и анимации. Здесь мы несколько расширим свои познания в этой области. Хотя скорее материал этого раздела можно рассматривать как напутственные пожелания.

На заметку

Значительная часть возможностей среды MuPAD реализована через библиотеки. Для того чтобы использовать функцию, описанную в той или иной библиотеке, перед именем функции следует еще указать и имя библиотеки. Имя библиотеки и имя функции разделяются оператором расширения контекста :: (два двоеточия). Другими словами, если функция описана в библиотеке, то вызывать функцию следует инструкцией вида библиотека::функция. Исключением является стандартная библиотека, функции из которой мы рассматривали до этого, и которые вызываются напрямую, без указания имени библиотеки. Обычно под библиотечными подразумевают те функции, что описаны не в стандартной библиотеке. Кроме того, библиотечную функцию можно загрузить в глобальное пространство имен с помощью инструкции вида use(библиотека,функция). После этого функцию можно вызывать без указания библиотеки. Если из библиотеки загружается несколько функций, они перечисляются через запятую. Чтобы экспортировать (загрузить в глобальное пространство имен) всю библиотеку, используют инструкцию вида use(библиотека). Значительная часть графических возможностей среды MuPAD реализована через функции библиотеки plot. Читателю, который планирует систематически использовать в своей работе среду MuPAD, имеет смысл обратить внимание на эту библиотеку.

Конечно же, не следует игнорировать опционные параметры, которые позволяют задавать основные свойства создаваемых графических объектов. Такие дополнительные опционные параметры могут задаваться непосредственно в функции plot(). Есть и другие функции для работы с графикой. Например, среди графических функций стандартной библиотеки имеется функция plotfunc2d(), предназначенная для создания двумерных графиков функций от одного переменного. Аналогичная ей функция

415

Источник: https://studfile.net/preview/16433384/