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

Лаб_практикум_ОВИ_03_06_13

.pdf
Скачиваний:
61
Добавлен:
14.04.2015
Размер:
4.1 Mб
Скачать

»contourf(X, Y, Z, 20)

»colorbar

4.1.5. Оформление графиков функций

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

»surfc(X, Y, Z)

»colorbar

»colormap(gray)

»title('График функции z(x,y)')

»xlabel('x')

»ylabel('у')

»zlabel('z')

Обратите внимание, что команда colormap(gray) изменяет палитру графического окна, т.е. следующие графики будут выводиться в этом окне также в серых тонах. Для восстановления первоначального значения палитры следует применить команду colormap('default'). Цветовые палитры, доступные в MATLAB, приведены в табл. 4.2.

4.1.6. Вывод нескольких графиков на одни оси

Для отображения нескольких графиков функций одной переменной на одних осях использовались возможности функций plot, plotyy, semilogx, semilogy, loglog. Они позволяют выводить графики нескольких функций,

задавая соответствующие векторные аргументы парами, например

81

plot(x, f, x, g). Однако для объединения трехмерных графиков их использовать нельзя.

Таблица 4.2 – Цветовые палитры

Палитра

Изменение цвета

 

autumn

Плавное изменение красный оранжевый желтый

 

bone

Похожа на палитру gray, но с легким оттенком синего цвета

 

colorcube

Каждый цвет изменяется от темного к яркому

 

cool

Оттенки голубого и пурпурного цветов

 

copper

Оттенки медного цвета

 

flag

Циклическое изменение красный белый синий черный

 

gray

Оттенки серого

 

hot

Плавное изменение черный красный оранжевый

 

 

желтый белый

 

hsv

Плавное изменение как цветов радуги

 

jet

Плавное изменение синий голубой красный зеленый

 

желтый красный

 

pink

Похожа на палитру gray, но с легким оттенком коричневого

 

цвета

 

prism

Циклическое изменение красный оранжевый желтый

 

зеленый синий фиолетовый

 

spring

Оттенки пурпурного и желтого

 

summer

Оттенки зеленого и желтого

 

vga

Палитра Windows из шестнадцати цветов

 

white

Один белый цвет

 

winter

Оттенок синего и зеленого

 

Для объединения таких графиков предназначена команда hold on, которую нужно задать перед построением графика. В следующем примере объединение двух графиков (плоскости и конуса) приводит к их пересечению. Конус задается параметрически следующими зависимостями:

x(u,v) 0,3 u cos v ; y(u,v) 0,3 u sin v ; z(u,v) 0,6 u ; u,v [ 2 , 2 ] .

82

a jbk .

Для графического отображения конуса сначала необходимо сгенерировать с помощью двоеточия вектор-столбец и вектор-строку,

содержащие значения параметров на заданном интервале (важно, что u

вектор-столбец, а v вектор-строка):

»u = [-2*pi:0.1*pi:2*pi]';

»v = [-2*pi:0.1*pi:2*pi];

Далее формируются матрицы X, Y, содержащие значения функций x(u,v) и y(u,v) в точках, соответствующих значениям параметров.

Формирование матриц выполняется с помощью внешнего произведения векторов.

Замечание 2

 

 

 

 

 

 

 

Внешним

произведением

векторов

 

a (a1 ,...,a j ,...,aN ) ,

 

 

 

 

 

b (b1,...,bk ,...,bM )

называется матрица C (c jk ),

j

1,N

, k

1,M

размера

N M, элементы которой вычисляются по формуле c jk

Вектор а является вектор-столбцом и в MATLAB представляется в виде двухмерного массива размера N на один. Вектор-столбец b при транспонировании переходит в вектор-строку размера один на М. Вектор-

столбец и вектор-строка есть матрицы, у которых один из размеров равен единице. Фактически, С = abT, где умножение происходит по правилу матричного произведения. Для вычисления матричного произведения в

MATLAB используется оператор "звездочка". Определим внешнее произведение для двух векторов:

»a = [1;2;3];

»b = [5;6;7];

»C = a*b'

83

C =

5 6 7

10 12 14

15 18 21

Сформируем матрицы X, Y, необходимые для графического

отображения конуса:

»X = 0.3*u*cos(v);

»Y = 0.3*u*sin(v);

Матрица Z должна быть того же размера, что и матрицы X и Y. Кроме того, она должна содержать значения, соответствующие значениям

параметров. Если бы в функцию z(u,v) входило произведение и и v, то

матрицу Z можно было заполнить аналогично матрицам X и Y при помощи внешнего произведения. С другой стороны, функцию z(u,v) можно представить в виде z(u,v) 0,6 u g(v) , где g(v) 1. Поэтому для

вычисления Z можно применить внешнее произведение векторов u и g(v) ,

где вектор-строка g(v) имеет ту же размерность, что v, но состоит из единиц:

» Z = 0.6*u*ones(size(v));

Все требуемые матрицы для отображения конуса созданы. Задание плоскости выполняется следующим образом:

»[X,Y] = meshgrid(-2:0.1:2);

»Z = 0.5*X+0.4*Y;

84

Теперь не сложно записать и полную последовательность команд для построения пересекающихся конуса и плоскости:

»u = [-2*pi:0.1*pi:2*pi]';

»v = [-2*pi:0.1*pi:2*pi];

»X = 0.3*u*cos(v);

»Y = 0.3*u*sin(v);

»Z = 0.6*u*ones(size(v));

»surf(X, Y, Z)

»[X,Y] = meshgrid(-2:0.1:2);

»Z = 0.5*X+0.4*Y;

»hold on

»mesh(X, Y, Z)

»hidden off

В результате работы программы получим геометрическую фигуру,

приведенную на рис. 4.1.

Команда hidden off применена для того, чтобы показать часть конуса,

находящуюся под плоскостью.

Обратите внимание, что команда hold on распространяется на все последующие выводы графиков в текущее окно. Для размещения графиков в новых окнах следует выполнить команду hold off. Команда hold on может применяться и для расположения нескольких графиков функций одной переменной, например,

» plot(x,f,х,g)

эквивалентно последовательности

» plot(х,f)

85

»hold on

»plot(x,g)

Рис. 4.1. Результат работы программы

4.2. Индивидуальные задания

1. В соответствии с номером N по списку в журнале группы,

записанном в виде N = СМ, где С старшая цифра, М младшая цифра, в

целочисленном интервале [N, N+5] рассчитайте таблицу значений для выражения, заданного с помощью табл. 4.3 и табл. 4.4.

2.Выполните задание 1, используя отрицательный шаг 1.

3.Отобразите в линейном масштабе на одних осях два графика функции f (x) из задания один с шагами 1.0 и 0.05 в интервале [N, N+5].

86

С помощью функции plotyy постройте с шагом 0.1 в интервале [N, N+5] графики функций f (x) и 102 f (x) sin( x) .

4. Выполните задание 3, используя:

логарифмический масштаб по обеим осям;

логарифмический масштаб по оси абсцисс;

логарифмический масштаб по оси ординат.

При выполнении этого пункта используйте шесть типов маркеров,

шесть различных цветов линий и разные типы линий.

5.Сформируйте матрицу и вектор размерами соответственно не менее 5 6 и 1 7, первыми элементами которых является Ваш номер по списку в журнале группы. Постройте графики вектора и матрицы.

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

ввиде квадрата х [0, l], y [0, l] с шагом 0.2 и график функции с меньшим шагом сетки.

7.Постройте прозрачную и непрозрачную каркасную поверхность

для функции z(x, y) 4sin(2 x) cos(1,5 y) (1 x2 ) y (1 y) на

прямоугольной области определения х [ l, l], y [0, l].

Измените функцию z(x, y) каким-либо образом, но таким, чтобы в

выражении функции фигурировал Ваш номер по списку в журнале группы.

Приведите в отчете прозрачную и непрозрачную каркасную поверхность для вашей функции.

8. Постройте каркасную поверхность функции z(x, y) с помощью команд surf(X,Y,Z), shading flat, shading interp и приведите их в отчете.

9. Постройте каркасную поверхность функции z(x, y) с помощью команд surf(X,Y,Z) и colorbar. Результаты приведите в отчете.

10. Постройте каркасную поверхность функции z(x, y) с помощью команд surfс, meshc и colorbar. Результаты приведите в отчете.

87

11. Постройте поверхности функции z(x, y) , состоящие из линий уровня, с помощью функции contour3 с тремя и четырьмя аргументами.

Результаты приведите в отчете.

12. Постройте контурные графики функции z(x, y) с помощью функций contour, contourf, clabel. Результаты приведите в отчете.

13.Выполните три различных цветовых оформления графика функции z(x, y) . Результаты приведите в отчете.

14.Выполните построение пересекающихся конуса и плоскости.

15.Выполните пересечение конуса двумя различными плоскостями.

16.Оформить отчет по лабораторной работе.

Таблица 4.3 – Индивидуальное задание по младшей цифре М

Младшая

 

 

 

0 или 5

 

1 или 6

 

2 или 7

 

 

3 или 8

 

 

4 или 9

 

цифра М

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C 2 / 5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D

 

 

 

 

 

 

 

 

 

 

 

 

A2 / 3 C 3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выражение

 

 

 

 

ABC

 

 

A B

 

 

 

 

 

 

AC 3

D

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

(B D)2

 

A2 D

D1 / 3 / C 2

 

 

 

 

 

 

 

 

C 2 / 3 B2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B 3 5 A2

 

 

Таблица 4.4 – Индивидуальное задание по старшей цифре С

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Старшая

 

 

 

 

 

A

 

 

 

 

B

 

 

 

 

 

C

 

D

 

цифра С

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

(sin(N )cos(N ))2

 

(ln(N 2)) / N

 

(exp(N / N 2 ))2

 

A B

 

1

 

 

1 (cos(N 1))2

 

(ln(N 2 ))2

 

exp( N) 1

 

A C

 

2

 

 

 

(tg(N ))2 N 1

 

 

(log(N ))2

 

1 N / exp(N)

 

B / C

 

3

 

sin(N ) / (ctg(N ))4

 

log( N 3 N 3 )

 

N / exp( N)

 

C /( A B)

 

88

Лабораторная работа 5

ИССЛЕДОВАНИЕ СПОСОБОВ ФОРМИРОВАНИЯ НЕЧЕТКИХ МНОЖЕСТВ И ОПЕРАЦИЙ НАД НИМИ

Цель лабораторной работы: получение и закрепление знаний,

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

Ознакомление с наиболее распространенными логическими операциями над нечеткими множествами.

5.1.Краткие сведения из теории

5.1.1.Функции принадлежности

Треугольная функция принадлежности

Инструментарий нечеткой логики (ИНЛ) в составе пакета MATLAB

содержит 11 встроенных типов функций принадлежности (ФП),

формируемых на основе кусочно-линейных функций, распределения Гаусса, сигмоидной кривой, квадратических и кубических полиномиальных кривых. К наиболее простым ФП можно отнести треугольную и трапециевидную. Наименование треугольной ФП – trimf

(triangle membership function). В параметрическом виде она представляет собой не что иное, как набор трех точек, образующих треугольник.

Описание функции:

у = trimf (x, [a, b, с]),

где вектор х – базовое множество, на котором определяется ФП. Величины

а и с задают основание треугольника, b – его вершину.

89

В аналитическом виде треугольная ФП может быть задана следующим образом (рис. 5.1, а):

0, x a,

x a , a x b, f (x, a,b, c) b a

c x ,b x c,c b

0, x c.

а б

Рис. 5.1. Треугольная (а) и трапециевидная (б) функции принадлежности

Далее рассмотрим примеры использования различных ФП в системе.

Примеры представляют собой фрагменты программ и комментариев на языке пакета MATLAB.

Пример 5.1. Программа использования ФП trimf.

»х = 0 : 0,1 : 10;

»у = trimf (x, [3 6 8]);

»plot (х, у);

»xlabel ('trimf (x, P), P = [3 6 8]');

90

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