Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Практическая работа в MATLAB. Учебное пособие
.pdf
,,0
,,
))((4
)())((4
exp
,,0
3
31
13
2
1313
1
14
bxd
dxd
dxxd
dddxxd
dxa
y
y
1
d
3
b
d
2
1 x 0
a
d
1
y3 y
d
3
b
d
2
1 x 0
a
d
1
y3 y
2.1
y
2
d
3
b
d
2
1 x 0
a
d1 y3 y
d
3
b
d
2
1 x 0
a
d1 y3 y
2.2
b
a
x
1
d
3
d
1
y
14
0.5
d
2
0
y
Рис. 1.16
где d2 = (d1 + d3)/2.
Задание 2
Согласно выданному варианту, используя соотношения y3, y4, …, y14,
построить и отформатировать графики функций принадлежности, приведенные
ниже.
При a = 2, d1 = 4, d2 = 10, d3 = 16, b = 20.
При a = 2, d1 = 4, d2 = 10, d3 = 16, b = 20.
21

d
4
y
3
d
3
b'
d
2
1 x 0
a
d
1
y
3
y
d
3
b"
d
2
1 x 0
a
d
1
y
3
y
2.3
1
x
d4 d
3
b
d
2
0
a
d1 y4 y
2.4
1
x
d4 d
3
b
d
2
0
a
d1 y4 y
y
1
y
6
d
3
d
1
a
y
5
b x
1
d
2
0
y
d
3
d
1
a
y
5
b x
1
d
2
0
y
2.7
1
x
d4 d
3
b
d
2
0
a
d
1
y
4
y
2.5
1
x
d4 d
3
b
d
2
0
a
d1 y
y4 y2 y2 y4 y
4
d5 d
6
1
x
d4 d
3
b'
d
2
0
a
d1 y
1
x
d4 d
3
b"
d
2
0
a
d1 y
При a = 2, d1 = 4, d2 = 10, d3 = 16, b' = 18, d4 = 22, b" = 24.
При a = 2, d1 = 4, d2 = 8, d3 = 14, d4 = 18, b = 20.
При a = 2, d1 = 4, d2 = 8, d3 = 12, d4 = 16, b = 18.
При a = 2, d1 = 4, d2 = 8, d3 = 14, d4 = 18, b' = 20, d5 = 22, d6 = 26, b" = 28.
При a = 2, d1 = 4, d2 = 10, d3 = 16, b = 18.
22

y
7
d
3
d
1
a
y
5
b x
1
d
2
0
y
d
3
d
1
a
y
5
b x
1
d
2
0
y
2.8
x d
4
y
5
d
3
d
1
a
y
5
b' x
1
d
2
0
y
d
3
d
1
a
y
5
b"
1
d
2
0
y
2.9
2.10
1
d6 d5 d4 d
3
d
1
a
y
8
b x
0.5
d
2
0 y 1
d6 d5 d4 d
3
d
1
a
y
8
b x
0.5
d
2
0
y
y
9
2.11
1
d6 d5 d4 d
3
d
1
a
y
8
b x
0.5
d
2
0 y 1
d6 d5 d4 d
3
d
1
a
y
10
b x
0.5
d
2
0
y
y
8
d8 d
7
2.12
1
d6 d5 d4 d
3
d
1
a
y
8
b' x
0.5
d
2
0 y 1
d6 d5 d4 d
3
d
1
a
y
8
b" x
0.5
d
2
0
y
y
8
При a = 2, d1 = 4, d2 = 10, d3 = 16, b = 18.
При a = 2, d1 = 4, d2 = 10, d3 = 16, b' = 18, d4 =22, b" = 24.
При a = 1, d1 = 2, d2 = 4, d3 = 6, d4 = 8, d5 = 10, d6 = 12, b = 14.
При a = 1, d1 = 2, d2 = 4, d3 = 6, d4 = 8, d5 = 10, d6 = 12, b = 14.
При a = 1, d1 = 2, d2 = 4, d3 = 6, d4 = 8, d5 = 10, d6 = 12, b' = 14, d7 = 14, d8 = 16,
b" = 18.
23

a
x
Δd Δd
0.38
1
d
3
d
1
y
11
0.5
d
2
0
y
x
Δd Δd
0.38
1
d
3
d1d
y
11
0.5
d
2
0
y
y
12
2.13
b b
x
Δd Δd
0.38
1
d
3
d
1
y
11
0.5
d
2
0
y
x
Δd Δd
0.38
1
d d
3
d1
y
11
0.5
d
2
0
y
y
13
2.14
y
11
Δd Δd
d6 d5 x
Δd Δd
0.38
1
d
3
d
1
y
11
0.5
d
2
0
y
x
Δd Δd
0.38
1
d4 d
3
d1
0.5
d
2
0
y
y
11
2.15
d
4
b' a
x
1
d
3
d
1
y
14
d
2
0
y
2.16
b"
a
x
1
d
3
d
1
y
14
d
2
0
y
y
14
При d1 = 4.5, d2 = 5, d3 = 5.5, Δd = 0.5, а = 3.
При d1 = 4.5, d2 = 5, d3 = 5.5, Δd = 0.5, b = 8.
При d1 = 4.5, d2 = 5, d3 = 5.5 , d4 = 5.3, d5 = 5.8, , d6 = 6.3, Δd = 0.5.
При a = 2, d1 = 4, d2 = 10, d3 = 16, b' = 20, d4 = 22, b" = 26.
1.4.2. Трехмерные графики функций
Программа MATLAB обладает рядом инструментов для визуализации
графиков в трехмерном пространстве. Такие задачи обычно возникают при
отображении графиков функций типа z = f (x, y). Довольно часто для
визуализации графика в трехмерных координатных осях используется функция
24

plot3(X,Y,Z),
в которой три аргумента X,Y,Z - это матрицы с координатами точек по осям
Ox, Oy и Oz. Рассмотрим работу данной функции на примере отображения
графика функции
z(x, y) = exp(- x2 - y2) (1.1)
при x = -1,-0.9,…, 1 и y = -2, -1.9,…, 2.
Сформируем матрицы X и Y, содержащие координаты точек данного
графика по осям Ox и Oy соответственно. Эти матрицы нужны для того, чтобы
функция plot3() «знала», какие реальные координаты соответствуют точке
Z(i,j) матрицы значений по оси Oz. Для этого достаточно взять i-ю и j-ю
компоненту матриц X и Y:
x=X(i,j),
y=Y(i,j).
Формирование матриц X и Y можно осуществить с помощью функции
[X,Y]=meshgrid(x,y)
языка MATLAB. Здесь x и y – одномерные векторы значений координат по
осям Ox и Oy, соответственно, которые можно сформировать как
координаты точек по оси Ox: x=-1:0.1:1;
координаты точек по оси Oy: y=-2:0.1:2
и затем вычислить матрицы координат точек по осям Ox и Oy
[X,Y]=meshgrid(x,y);
В результате матрицы X и Y будут содержать следующие первые восемь
значений по строкам и столбцам:
Матрица X:
-1 -0,9 -0,8 -0,7 -0,6 -0,5 -0,4 -0,3
-1 -0,9 -0,8 -0,7 -0,6 -0,5 -0,4 -0,3
-1 -0,9 -0,8 -0,7 -0,6 -0,5 -0,4 -0,3
-1 -0,9 -0,8 -0,7 -0,6 -0,5 -0,4 -0,3
25

-1 -0,9 -0,8 -0,7 -0,6 -0,5 -0,4 -0,3
-1 -0,9 -0,8 -0,7 -0,6 -0,5 -0,4 -0,3
-1 -0,9 -0,8 -0,7 -0,6 -0,5 -0,4 -0,3
-1 -0,9 -0,8 -0,7 -0,6 -0,5 -0,4 -0,3
Матрица Y:
-2 -2 -2 -2 -2 -2 -2 -2
-1,9 -1,9 -1,9 -1,9 -1,9 -1,9 -1,9 -1,9
-1,8 -1,8 -1,8 -1,8 -1,8 -1,8 -1,8 -1,8
-1,7 -1,7 -1,7 -1,7 -1,7 -1,7 -1,7 -1,7
-1,6 -1,6 -1,6 -1,6 -1,6 -1,6 -1,6 -1,6
-1,5 -1,5 -1,5 -1,5 -1,5 -1,5 -1,5 -1,5
-1,4 -1,4 -1,4 -1,4 -1,4 -1,4 -1,4 -1,4
-1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3
Используя данные матриц X и Y, можно вычислить значения матрицы Z
следующим образом:
Z=exp(-X.^2-Y.^2);
и отобразить результат на экране
plot3(X,Y,Z);
Теперь необходимо набрать программу графика функции (1.1) в одну строчку и
нажать Enter.
>> x=-1:0.1:1; y=-2:0.1:2;[X,Y]=meshgrid(x,y);
Z=exp(-X.^2-Y.^2); plot3(X,Y,Z)
График функции (1.1) показан на рис. 1.17.
26

Рис. 1.17
Из рис. 1.17 видно, что график функции (1.1) отображается в виде набора
линий, каждая из которых соответствует сечению графика функции z = exp(- x2 y2) вдоль оси Oy. Такое представление графика не всегда удобно, так как набор
одномерных не дает полное представление о характере двумерной плоскости.
Лучшую визуализацию можно получить, используя функцию
mesh(X,Y,Z),
отображающую график в виде сетки С этой функцией в одной строке нужно
набрать приведенную ниже программу вывода графика функции (1.1)
>>x=-1:0.1:1; y=-2:0.1:2;[X,Y]=meshgrid(x,y);
Z=exp(-X.^2-Y.^2); mesh(X,Y,Z)
с использованием функции mesh(X,Y,Z) и нажмать Enter. В результате
получится несколько обновленный вид (рис. 1.18) графика функции (1.1).
Рис. 1.18
27

Благодаря использованию функции mesh() получается график, образованный
интерполяцией точек массивов X, Y и Z линиями по осям Ox и Oy. Кроме того,
цветом указывается уровень точки по оси Oz: от самого малого значения
(синего) до самого большого (красного) и производится удаление «невидимых»
линий. Это позволяет лучше визуально оценить структуру трехмерного графика
по сравнению с функцией plot3(). Если же необходимо отобразить
«прозрачный» график, то следует выключить режим рисования скрытых линий
hidden off.
Тогда последнюю программу запишите как
>> x=-1:0.1:1; y=-2:0.1:2;[X,Y]=meshgrid(x,y);
Z=exp(-X.^2-Y.^2); mesh(X,Y,Z); hidden off
Нажатием Enter и получается новый график функции (1.1) на рис. 1.19.
Рис. 1.19
В системе MATLAB предусмотрена функция визуализации непрерывной
поверхности surf(X,Y,Z). С этой функцией программа запишется как
>> x=-1:0.1:1; y=-2:0.1:2;[X,Y]=meshgrid(x,y);
Z=exp(-X.^2-Y.^2); surf(X,Y,Z)
В результате выводится график, представленный на рис. 1.20.
28

3,0,0,3 yx
3,1,0,3 yx
5,5,5,5 yx
Рис. 1.20
Форматирование полученных трехмерных графиков (рис. 1.17-1.20)
выполняется так же как и двумерных и достаточно подробно описывается в
предшествующем разделе 1.4.1.
Для сохранения графического изображения необходимо выполнить в
графическом окне команду меню File / Save или File / Save as. После этого на
экране появится стандартное окно для сохранения данного графического окна в
рабочем пространстве Work. В данном окне следует указать имя файла и
выбрать расширение fig, предлагаемое MATLAB по умолчанию.
Графическая информация будет сохранена в двоичном файле того же
формата, как и рассмотренный ранее МАТ-файл. Для считывания ранее
сохраненного файла, содержащего графическое изображение следует
выполнить команду File / Open.
Для экспорта файла в другие графические форматы следует выполнить
команду File / Save as и затем в появившемся окне указать выбранный формат и
имя файла.
Задание 3
Составьте программу и получите график функции двух переменных.
3.1. z = x2 + y2 для
3.2. z = sin(x)/(x2 + y2 + 0.3) для
3.3. z = sin(x2 + y2)/(x2 + y2) для
, используя функцию surf.
, используя функцию plot3.
, используя функцию mesh.
29

3.4. z = x2 – y2 для
5,5,5,5 yx
3,3,3,3 yx
1,1,1,1 yx
1,1,1,1 yx
3,3,3,3 yx
3,3,3,3 yx
1,1,1,1 yx
7,3,5,0 yx
2,2,3,3 yx
4,0,8,0 yx
2,2,2,2 yx
1,1,1,1 yx
ubyayaya
0012
cubyyay
, используя функцию plot3.
3.5. z = cos(x - y) для
3.6. z = sin(xy) для
3.7. z = x3 – 3xy2 для
3.8. z = sin(x) sin(y) для
3.9. z = sin(x2 + y2) + exp(–x
3.10. z = (x2 + y2)3 – 4x2 y2 для
3.11. z = x sin(x y) для
3.12. z = x ∙ exp(–x2 – y2) для
3.13. z = 2∙cos(x + y) + y∙cos(x – y) для
3.14. z = 2x exp(x – y) для
3.15. z = (sin(x2) + cos(y2))xy для
2
) для
, используя функцию surf.
, используя функцию mesh.
, используя функцию plot3.
, используя функцию surf.
, используя функцию plot3.
, используя функцию mesh.
, используя функцию surf.
, используя функцию plot3.
, используя функцию surf.
, используя функцию mesh.
, используя функцию surf.
1.5. Символьные вычисления
Для выполнения символьных вычислений предназначен Symbolic Math
Toolbox. Ниже приводятся примеры выполнения символьных вычислений.
1.5.1. Решение дифференциальных уравнений
Классический метод решения будем применять к неоднородному
линейному дифференциальному уравнению
,
приведенному к виду
путем деления на a2 левой и правой части исходного дифференциального
уравнения. Тогда a = a0/a2; b = a0/a2; с = b0/a
. Рассмотрим пример решения
2
приведенного неоднородного дифференциального уравнения, у которого корни
характеристического уравнения являются отрицательными и действительными.
Пример 1.5.1. Найти решение неоднородного линейного
дифференциального уравнения
30
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
