8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 37 38 39 40 41 42 43 ... 365

2. Вычисление значений функции в точках пересечения линий сетки и запись их в матрицу.

Построим график функции z(x,y) = x2 +у2 на области определения в виде

квадрата *g[0, I], уе[0, 1]. Необходимо разбить квадрат равномерной

сеткой {например, с шагом 0.2) так, как показано на рис. 2.12, и вычислить значения функций в узлах, обозначенных точками.

J6-I.0

wkj.S I ►

\4 0.6

уЗ НА

• - - < I

!<хХ>4»

хИу!=0х2-0.2 \J-04 v0,6 \5-08 *б=1.0 *

Рис. 2.12. Прямоугольная область построения графика

Удобно использовать два двумерных массива х и y размерностью шесть на шесть для хранения информации о координатах узлов. Массив х состоит из одинаковых строк, в которых записаны координаты xl, х2, хб, a y содержит одинаковые столбцы с yl, у2, уб. Значения функции в узлах

сетки запишем в матрицу z такой же размерности (6x6), причем для вычисления матрицы z используем выражение для функции, но с поэлементными матричными операциями. Тогда, например, z (3,4) как раз будет равно зна-


чению функции z(x,y) в точке (лЗ, у4). Для генерации массивов сетки х и

y по координатам узлов в MATLAB предусмотрена функция meshgrid, для построения графика в виде каркасной поверхности — функция mesh. Следующие операторы приводят к появлению на экране окна с графиком функции, изображенным на рис. 2.13 (точка с запятой в конце операторов не ставится для того, чтобы проконтролировать генерацию массивов):

» [X, Y] = meshgrid(0:0.2:l, 0:0.2:1) X =

О 0.2000 0.4000 0.6000 0.8000 1.0UOO 0 0.2000 0.4000 0.6000 0.8000 1.0000 О 0.2000 0.4000 0.6000 0.8000 1.0000 О 0.2000 0.4000 0.6000 0.8000 1.0000 0 0.2000 0.4000 0.6000 0.8000 1.0000 0 0.2000 0.4000 0.6000 0.8000 1.0000 Y = 0 0 0 0 0 0

0.2000 0.2000 0.2000 0.2000 0.2000 0.2000

0.4000 0.4000 0.4000 0.4000 0.4000 0.4000

0.6000 0.6000 0.6000 0.6000 0.6000 0.6000

0.8000 0.8000 0.8000 0.8000 0.8000 0.8000

1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 » Z = Х.Л2 + У.Л2 2 =

О 0.0400 0.1600 0.3600 0.6400 1.0000 D.0400 0.0800 0.2000 0.4000 0.6800 1.0400 С.1600 0.2000 0.3200 0.5200 0.8000 1.1600 0.3600 0.4000 0.5200 0.7200 1.0000 1.3600 0.6400 0.6800 0.8000 1.0000 1.2800 1.6400 1.0000 1.0400 1.1600 1.3600 1.6400 2.0000 » mesh(X, Y, Z)

График функции, изображенный на рис. 2.13, получился достаточно грубым из-за редкой сетки, покрывающей область изменения аргументов. Для более точного построения следует выбрать меньший шаг сетки:

» [X, Y] = meshgrid(0:0.05:l, 0:0.05:1); » Z = Х.Л2 + Y.~2; » mesh{X, Y, Z)

Соответствующий график приведен на рис. 2.14.


Рис. 2.13. График функции z(x, у)

Рнс. 2.14. График функции г (л, у) на более мелкой сетке

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



0 ... 37 38 39 40 41 42 43 ... 365