Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 1804

.pdf
Скачиваний:
9
Добавлен:
30.04.2022
Размер:
2.24 Mб
Скачать

 

исходного массива

 

 

 

 

 

max(x)

Определение наибольшего элемента массива. В случае

 

двумерного массива

это

вектор-строка,

содержащая

 

максимальные элементы каждого столбца. Для комплексных

 

элементов определение максимума происходит

по условию

 

max(abs(x)). Если массив содержит хотя бы один элемент

 

типа NaN, то результатом операции тоже будет NaN

min(x)

Аналогична предыдущей функции, но вместо

 

максимального возвращает минимальный элемент массива

median(x)

Определение срединного значения (медианы) элементов

 

массива.

 

 

 

 

 

mean(x)

Определение

среднего

арифметического значения

 

элементов массива. Для двумерного массива mean(mean(x))

 

есть математическое ожидание элементов массива

 

std(x)

Определение

 

стандартных

отклонений

элементов

 

массива

 

 

 

 

 

cov(x)

Определение

ковариационной матрицы

элементов

 

массива (т.е. определение дисперсии элементов массива)

corrcoef(x)

Определение

коэффициентов

корреляции

элементов

 

массива

 

 

 

 

 

diff(x,n)

Вычисление конечных разностей порядка n для

 

элементов массива. В случае двумерного массива берутся

 

разности столбцов

 

 

 

 

 

spline(x,y,x1)

Интерполяция функции одной переменной кубическим

 

сплайном. x1 новый вектор аргументов функции

 

Пример использования функции spline:

x = [ 0 1 2 3 4 5 6 7 8 9 10 ]; % задан вектор аргумента функции % задаем вектор значений функции

y = [ 0 0.1 0.22 0.35 0.58 0.76 0.95 1.24 1.01 0.87 0.98 ];

%определяем новый вектор функции, с меньшим значением шага x1 = 0 : 0.05 : 10;

%вычисляем вектор значения функции по новым точкам

[ y1] = spline(x, y, x1);

1.9.ГРАФИЧЕСКИЕ СРЕДСТВА СИСТЕМЫ MATLAB

1.9.1.Графики двумерных функций

plot

Построение графиков отрезками прямых

 

 

Функции одной переменной y(x) находят широкое применение в практике математических и других расчетов, а также в технике компьютерного математического моделирования. Для отображения таких функций используются графики в Декартовой системе координат. При этом строятся две оси – горизонтальная X и вертикальная Y – и задаются координаты x и y, определяющие узловые точки y(x). Эти точки соединяются друг с другом отрезками прямых линий. Поскольку MATLAB представляет собой матричную систему, совокупность точек y(x) задается векторами X и Y одинакового размера.

Синтаксис: plot(x,y) plot(y) plot(x,y,‘s‘)

plot(x1,y1,‘s1‘,x2,y2,‘s2‘,…)

plot(x,y) строит график функции y(x). Если X или Y матрица, то строятся графики по данным в матрице.

plot(y) строит график функции y(i), при этом значения берутся из вектора Y, а i представляет собой индекс соответствующего элемента. Если Y содержит комплексные элементы, то выполняется команда plot(real(Y), imag(Y)). Во всех других случаях мнимая часть игнорируется.

plot(x,y,‘s‘) строит график функции y(x) но с заданием типа линии графика в виде строковой константы, которая может принимать следующие значения:

 

Цвет линии

 

Тип точки

 

Тип линии

 

 

 

 

 

 

y

желтый

.

точка

-

сплошная

m

фиолетовый

o

окружность

:

двойной пунктир

c

голубой

x

крест

-.

штрих-пунктир

r

красный

+

плюс

--

штриховая

g

зеленый

*

звездочка

 

 

b

синий

s

квадрат

 

 

w

белый

d

ромб

 

 

k

черный

v

треугольник (вниз)

 

 

 

 

^

треугольник (вверх)

 

 

 

 

p

пятиугольник

 

 

 

 

h

шестиугольник

 

 

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

Функция plot(x1,y1,‘s1‘,x2,y2,‘s2‘,…) строит на одном графике ряд линий, представленных данными вида (x,y,‘s‘).

При отсутствии указания на цвет линий и точек он выбирается автоматически одним из шести табличных цветов (исключая белый). Если линий больше шести, то выбор цветов повторяется. Для монохромных систем линии выделяются стилем.

Пример:

»%Графики трех функций со спецификацией линий каждого графика

»x = - 2*pi : 0.1*pi : 2*pi ;

»y1 = sin(x);

»y2 = sin(x).^2;

»y3 = sin(x).^3;

»plot(x,y1,‘-m‘,x,y2,‘+r‘,x,y3,‘- -ok‘)

1

 

 

 

 

 

 

 

 

0.8

 

 

 

 

 

 

 

 

0.6

 

 

 

 

 

 

 

 

0.4

 

 

 

 

 

 

 

 

0.2

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

-0.2

 

 

 

 

 

 

 

 

-0.4

 

 

 

 

 

 

 

 

-0.6

 

 

 

 

 

 

 

 

-0.8

 

 

 

 

 

 

 

 

-1

 

 

 

 

 

 

 

 

-8

-6

-4

-2

0

2

4

6

8

 

 

 

 

Рис. 1.2

 

 

 

 

loglog

 

 

Графики в логарифмическом масштабе

Для построения графиков функций со значениями x и y, изменяющимися в широких пределах, нередко используются логарифмические масштабы.

Для этого применяется команда loglog(…), синтаксис которой аналогичен рассмотренному для команды plot.

Пример:

»% График экспоненциальной функции в логарифмическом масштабе

»x=logspace(-1,3);

»loglog(x,exp(x)./x,'k');

»grid on

10300

 

 

 

 

10250

 

 

 

 

10200

 

 

 

 

10150

 

 

 

 

10100

 

 

 

 

1050

 

 

 

 

100

 

 

 

 

10-1

100

101

102

103

Рис. 1.3

 

 

 

 

semilogx,

Графики функций в полулогарифмическом

semilogy

масштабе

 

 

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

semilogx(…) – строит график функции в логарифмическом масштабе (основание 10) по оси X и линейным по оси Y.

semilogy(…) – строит график функции в логарифмическом масштабе по оси Y и линейным по оси X.

 

Синтаксис команды аналогичен синтаксису команды plot.

hist

Построение графика в виде гистограммы

Классическая гистограмма характеризует число попаданий значений элементов вектора Y в М интервалов с представлением этих чисел в виде столбиковой диаграммы. Получение данных для гистограммы выполняется функцией hist, имеющей синтаксис:

N = hist(Y) – возвращает вектор числа попаданий для 10 интервалов. Если Y – матрица, то выдаются данные по числу попаданий в ее столбцы;

N = hist(Y,M) – возвращает число попаданий для элементов вектора Y с центральными отчетами, заданными элементами вектора X;

[N,X] = hist(…) – возвращает числа попаданий в интервалы и данные о центрах интервалов;

 

hist(…) – с синтаксисом аналогичным приведенному выше, строит

график гистограммы.

 

 

 

 

 

 

 

 

 

Пример:

 

 

 

 

 

 

 

 

 

 

 

Построим гистограмму для 1000 случайных чисел и выведем вектор с

данными и числах их попаданий в интервалы, заданные вектором X.

» % Построение гистограммы для 1000 случайных чисел

» x=-3:0.2:3;

 

 

 

 

 

 

 

 

 

 

» y=randn(1000,1);

 

 

 

 

 

 

 

 

 

» hist(y,x);

 

 

 

 

 

 

 

 

 

 

 

» h=hist(y,x)

 

 

 

 

 

 

 

 

 

 

h =

 

 

 

 

 

 

 

 

 

 

 

 

Columns 1 through 12

 

 

 

 

 

 

 

 

0

0

3

7

8

9

11

23

33

43

57

55

 

Columns 13 through 24

 

 

 

 

 

 

 

 

70

62

83

87

93

68

70

65

41

35

27

21

Columns 25 through 31

 

 

 

 

 

 

 

 

12

5

6

3

2

1

0

 

 

 

 

 

 

 

100

 

 

 

 

 

 

 

 

 

 

 

 

90

 

 

 

 

 

 

 

 

 

 

 

 

80

 

 

 

 

 

 

 

 

 

 

 

 

70

 

 

 

 

 

 

 

 

 

 

 

 

60

 

 

 

 

 

 

 

 

 

 

 

 

50

 

 

 

 

 

 

 

 

 

 

 

 

40

 

 

 

 

 

 

 

 

 

 

 

 

30

 

 

 

 

 

 

 

 

 

 

 

 

20

 

 

 

 

 

 

 

 

 

 

 

 

10

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

-4

-3

 

-2

 

-1

0

 

1

2

3

4

Рис. 1.4

 

 

 

 

 

 

 

 

 

 

 

stairs

 

 

 

 

Построение лестничного графика функции

 

Лестничные графики представляют собой ступеньки, с огибающей,

представленной функцией y(x). Такие графики используются, например, для

отображения процессов квантования функции y(x), представленной рядом

своих отсчетов. При этом в промежутках между отсчетами значения функции

считаются постоянными и равными величине последнего отсчета.

Синтаксис функции:

stairs(Y) – строит лестничный график по данным вектора Y;

stairs(X,Y) – строит лестничный график по данным вектора Y с координатами х переходов от ступеньки к ступеньке заданными значениями элементов вектора X (они должны идти в возрастающем порядке);

stairs(…,S) – аналогична по действию вышеописанным командам, но строит график линиями, стиль которых задается строками S (см. оператор plot).

Пример:

»% Лестничный график функции x^2

»x=0:0.25:10;

»stairs(x,x.^2);

100

90

80

70

60

50

40

30

20

10

0

0

1

2

3

4

5

6

7

8

9

10

Рис. 1.5

polar

Построение графика в полярной системе координат

 

 

В полярной системе координат любая точка представляется как конец радиус-вектора, исходящего из начала системы координат, имеющего длину RHO и угол THETA (обычно меняется от 0 до 2 ).

Синтаксис команды:

polar(theta,rho) – строит график в полярной системе координат, представляющий собой положение конца радиус-вектора;

polar(theta,rho,S) – аналогична предыдущей команде, но позволяет задавать стиль построения аналогично оператору plot.

Пример:

» % График функции sin(5*t) в полярной системе координат

»t=0:pi/50:2*pi;

»polar(t,sin(5*t))

 

90

1

 

 

120

 

60

 

 

0.8

 

 

0.6

150

 

30

 

 

0.4

 

 

0.2

180

 

0

210

330

240

300

270

Рис. 1.6

compass

Построение векторов

 

 

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

Синтаксис:

compass(U,V) – сроит графики радиус-векторов с компонентами (U,V), представляющими действительную и мнимую части каждого из них;

compass(Z) – эквивалентна compass(real(Z),imag(Z));

compass(U,V,S) – аналогичны представленным выше командам, но позволяет задать спецификацию линий построения аналогично команде plot;

H=compass(…) – возвращает значения длин радиус-векторов.

Пример:

»% Построение радиус-векторов для вектора Z с комплексными

»% элементами

»Z=[-1+2i,-2-3i,2+3i,5+2i];

»compass(Z)

 

90

5.3852

 

 

120

 

60

 

 

4.3081

 

 

3.2311

150

 

30

 

 

2.1541

 

 

1.077

180

 

0

210

330

240

300

 

270

 

Рис. 1.7

contour

Построение контурных графиков

Контурные график являются попыткой отобразить на плоскости функции двух переменных вида z(x,y). Их можно представить в виде совокупности линий равного уровня, которые получаются, если трехмерная поверхность пересекается рядом плоскостей, расположенных параллельно друг другу. При этом контурный график представляет совокупность спроецированных на плоскость y(x) линий пересечения поверхности z(x,y) плоскостями.

Синтаксис:

contour(z) – строит контурный график по данным матрицы z с автоматическим диапазоном изменения x и y;

contour(x,y,z) – строит контурный график по данным матрицы z с указанием спецификаций для x и y;

contour(z,N) и contour(x,y,z,N) – дают построения аналогичные ранее описанным, с заданием N линий равного уровня (по умолчанию N = 10);

contour(z,V) и contour(x,y,z,V) – строят линии равного уровня для высот, указанных значениями элементов вектора V;

[C,H] = contour(…) – возвращает дескриптор – матрицу C и вектор столбцов H. Они используются как входные параметры для команды clabel (см. далее);

contour(…,S) – позволяет использовать перечисленные выше функции с указанием спецификации линий, аналогично команде plot.

Пример:

 

 

 

 

» % Построение контурного графика объекта peaks

 

 

» z=peaks(27);

 

 

 

 

» contour(z,15)

 

 

 

 

25

 

 

 

 

20

 

 

 

 

15

 

 

 

 

10

 

 

 

 

5

 

 

 

 

5

10

15

20

25

 

 

Рис. 1.8

 

 

comet

 

Движение точки по плоскости

Синтаксис: comet(Y) comet(X, Y) comet(X, Y, p)

Для отображения движения точки по траектории используется функция comet. При этом движущаяся точка напоминает ядро кометы с хвостом.

Функции comet(Y) и comet(X,Y) отображают движение ―кометы‖ по траектории, заданной вектором Y и векторами X и Y соответственно.

comet(X,Y,p) аналогична предшествующим, но позволяет задавать длину хвоста кометы как p length (Y ) . По умолчанию значение p = 0,1.

На черно-белом рисунке ―хвост кометы‖ заметить трудно, поскольку он представляет собой отрезок линии с цветом, отличающимся от цвета линии основной части графика.

1.9.2. Построение графиков 3D-поверхностей

meshgrid

Функция создания массивов трехмерной графики

 

 

Трехмерная поверхность обычно описывается функцией двух переменных z(x,y). Специфика построения трехмерных графиков требует не просто задания ряда значений x и y, то есть векторов x и y – она требует определения двумерных массивов для X и Y матриц.

Синтаксис:

[X,Y] = meshgrid(x,y) – преобразует область, заданную векторами x и y в массивы X и Y, которые могут быть использованы для вычисления функции двух переменных и построения трехмерных графиков. Строки выходного массива X являются копиями вектора x, а столбцы Y – копиями вектора y;

meshgrid(x) – аналогична [X,Y] = meshgrid(x,x);

[X,Y,Z] = meshgrid(x,y,z) – возвращает трехмерные массивы, используемые для вычисления функций трех переменных и построения трехмерных 3D-графиков.

plot3

Функция построения трехмерных графиков линиями

 

 

Синтаксис:

plot3(x,y,z) – строит массив точек, представленных векторами x, y и z, соединяя их отрезками прямых. Команда имеет ограниченное применение, т.к. строит не поверхность , а пространственную кривую;

plot3(X,Y,Z) – строит точки с координатами X(i,:), Y(i,:) b Z(i,:) и соединяет их отрезками прямой, получая таким образом трехмерную поверхность;

plot3(X,Y,Z,S) – обеспечивает аналогичные построения, но со спецификацией линий и точек, соответствующих синтаксису команды plot.

Пример:

»x=-3:0.1:3;

»y=x;

»z=x.^2+y.^2;

»subplot(2,1,1),plot3(x,y,z),grid on

»[x,y]=meshgrid(x,y);

»z=x.^2+y.^2;

»subplot(2,1,2),plot3(x,y,z),grid on