Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Моделирование инженерных систем и технологических процессов. Учебное пособие.pdf
X
- •ОГЛАВЛЕНИЕ
- •ВВЕДЕНИЕ В MATLAB
- •ПОСТРОЕНИЕ ГРАФИКОВ
- •СИМВОЛЬНЫЕ ВЫЧИСЛЕНИЯ
- •СИСТЕМНЫЙ АНАЛИЗ В MATLAB
- •ПРАКТИЧЕСКАЯ РАБОТА № 1
- •ПРАКТИЧЕСКАЯ РАБОТА № 2
- •ПРАКТИЧЕСКАЯ РАБОТА № 3
- •ПРАКТИЧЕСКАЯ РАБОТА № 4
- •ПРАКТИЧЕСКАЯ РАБОТА № 5
- •ПРАКТИЧЕСКАЯ РАБОТА № 6
- •ПРАКТИЧЕСКАЯ РАБОТА № 7
- •ПРАКТИЧЕСКАЯ РАБОТА № 8
- •ПРАКТИЧЕСКАЯ РАБОТА № 9
- •ПРАКТИЧЕСКАЯ РАБОТА № 10
- •ПРАКТИЧЕСКАЯ РАБОТА № 11
- •ПРАКТИЧЕСКАЯ РАБОТА № 12

command block3
end
For
for counter = values
command block
end
Values b:g:e (начало: шаг: конец). Если значение шага отсутству-
ет, то по умолчанию шаг равен 1.
While
while expression
command block
end
Switch
switch expression
case value1
command block
case value2
command block
otherwise
command block
end
11

ПОСТРОЕНИЕ ГРАФИКОВ
-6 -4
-2 0 2 4 6
-2
-1
0
1
2
3
4
Процедура поcтроения графиков в Matlab в 2D основана на опре-
делении координаты вектор х = [x1 ... хn] и вектора у = [y1 ... уn].
Векторы х и у должны быть одинаковой длины. Matlab находит координаты (Xi, Yi), i = 1 ... n и рисует их, пространство между координатами апроксимируется прямой линией.
Функция stem используется для построения отдельных графиков.
Первый аргумент значения по х, а во-вторых, значения по оси у.
Примеры:
x=-6:6;
y1=[0 1 4 0 -2 3 0 2 4 1 0 2 0];
stem(x,y1);
Рис. 2. Пример полученного графика функции stem(x,y1)
x=-6:6;
y2=sin(x);
stem(x,y2);
12

Рис. 3. Пример полученного графика функции stem(x,y2)
-6
-4
-2
0
2
4
6
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
-6 -4 -2 0
2 4 6
-2
-1
0
1
2
3
4
Функция plot используется таким же образом, как и stem.
Примеры:
x=-6:6;
y1=[0 1 4 0 -2 3 0 2 4 1 0 2 0];
plot(x,y1);
Рис. 4. Пример полученного графика функции plot(x,y1)
x=-6:0.1:6; %шаг 0.1
y2=sin(x);
plot(x,y2);
13

рые из общих: оси (xlabel, ylabel), название графика (title), сетка
Цвет
Символы
Тип линии
b синий
.
-
g зеленый
o : c розовый
x
-.
m розовый
--
y желтый
+
(none)
k черный
*
w белый
s квадрат
r красный
d ромб
v
^ <
>
p пентаграмма
h гексаграмма
-6
-4
-2
0
2
4
6
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
(grid), определяющий диапазон значений оси, которая будет показа-
на (axis) и другие.
применением plot (х, у, s), где S — строка символов, которая состоит
из одного, двух или трех элементов.
Рис. 5. Пример полученного графика функции plot(x,y2)
Matlab также позволяет сделать описание для графиков. Некото-
Различные типы линий, символы и цвета могут быть получены с
Таблица 3
Аттрибуты строки S
14

Пример:
0
1
2
3
4
5
6
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
x=0:2
π
sin(x)
Sinusoid
x=0:0.1:2*pi;
plot(x,sin(x),'--r')
xlabel('x=0:2\pi')
ylabel('sin(x)')
title('Sinusoid')
grid
axis([0 2*pi -1.1 1.1])
Рис. 6. Полученный в примере график
Для построения нескольких графиков, команда figure должна
быть в коде перед командой plot. Таким образом, каждый участок
будет отображаться на отдельном рисунке. В противном случае,
графики будут переписаны на том же рисунке и будет показан последний график.
Пример:
x=0:0.1:2*pi;
figure
plot(x,sin(x))
figure
plot(x,2*sin(x))
15

Есть два способа построения множества функций на одном гра-
0 1
2
3
4
5
6
7
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
x=0:2
π
sin(x)
Sinusoide
sin(x)
2sin(x)
0.5sin(x)
фике, используя plot (более сложный способ) и с помощью команды
hold.
Пример для первого способа:
x=0:0.1:2*pi;
plot(x,sin(x),'--r',x,2*sin(x),'-.b',x,0.5*sin(x),':m') leg-
end('sin(x)','2sin(x)','0.5sin(x)')
xlabel('x=0:2\pi')
ylabel('sin(x)')
title('Sinusoide')
grid
Рис. 7. Полученный в примере график
Пример второго способа (график выглядит так же):
x=0:0.1:2*pi;
plot(x,sin(x),'--r')
hold on
plot(x,2*sin(x),'-.b')
hold on
plot(x,0.5*sin(x),':m')
hold off
legend('sin(x)','2sin(x)','0.5sin(x)')
xlabel('x=0:2\pi')
ylabel('sin(x)')
16

title('Sinusoide')
0
2
4
6
8
-1
-0.5
0
0.5
1
x
sin(x)
0
2
4
6
8
-1
-0.5
0
0.5
1
x
sin(2*x)
0
2
4
6
8
-1
-0.5
0
0.5
1
x
sin(4*x)
0
2
4
6
8
-1
-0.5
0
0.5
1
x
sin(8*x)
grid
Можно написать несколько графиков с помощью команды
subplot.
Пример:
x=0:0.1:2*pi;
subplot(2,2,1) % dimensions are 2x2,position of graph is 1
plot(x,sin(x))
xlabel('x')
ylabel('sin(x)')
subplot(2,2,2)
plot(x,sin(2*x))
xlabel('x')
ylabel('sin(2*x)')
subplot(2,2,3)
plot(x,sin(4*x))
xlabel('x')
ylabel('sin(4*x)')
subplot(2,2,4)
plot(x,sin(8*x))
xlabel('x')
ylabel('sin(8*x)')
Рис. 8. Полученные в примере графики
17

Команда plot3 используется для 3D графиков. Все, что было на-
-1
-0.5
0
0.5
1
-1
-0.5
0
0.5
1
0
10
20
30
40
sin(t)
spiral
cos(t)
t
писано для plot применяется также для plot3.
Пример:
t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
xlabel('sin(t)')
ylabel('cos(t)')
zlabel('t')
grid on
axis square
Рис. 9. Полученный в примере график
18

СИМВОЛЬНЫЕ ВЫЧИСЛЕНИЯ
Математическое описание
Команда MatLab
df
dx
diff(f) или diff(f,x)
df
da
diff(f,a)
2
2
df
db
diff(f,b,2)
Операции с символьными выражениями обеспечиваются
Symbolic Matlab Toolbox.
>> a = sqrt(sym(2)) % symbolic type
a = 2^(1/2)
>> b = sym(1)/sym(2) + sym(1)/sym(3)
b = 5/6
>> f = sym('2*x^2 - 3*x + 1')
f = 2*x^2 - 3*x + 1
Помимо команды sym, команда syms может быть использована
для определения символьных объектов.
>> syms x y
Команда subs используется для подстановки символа в функции
со значением или другим символом.
>> syms x y
>> f2 = sym('x^2+y^2 + x*y')
f2 = x^2 + x*y + y^2
>> subs(f2, x, 3)
ans = y^2 + 3*y + 9
>> subs(f2, {x, y}, [3, 1])
ans = 13
Команда ezplot используется для построения символических
функций
Команды для дифференциации приведены в следующей таблице:
Соответствие математических операций и команд MatLab
Таблица 4
19

>> syms x t
0
lim ( )xfx
→
lim ( )
xafx→
lim ( )
xa
fx
→−
lim ( )
xa
fx
→+
>> f = exp(x)*cos(x);
>> diff(f)
ans = exp(x)*cos(x) - exp(x)*sin(x)
>> diff(f, x, 2)
ans = -2*exp(x)*sin(x)
>> g = x*sin(x*t);
>> diff(g,x)
ans = sin(t*x) + t*x*cos(t*x)
>> diff(g,t)
ans = x^2*cos(t*x)
Команда int используется для интегрирования.
>> syms x n
>> int(1/(1+x^2))
ans = atan(x)
>> int(x^n,x) % resavanje neodredjenog integrala
ans = piecewise([n == -1, log(x)], [n ~= -1, x^(n + 1)/(n + 1)])
>> int(1/x,x,1,2) % resavanje odredjenog integrala
ans = log(2)
Таблица 5
Команды для расчета пределов
Математическое описание Команда MatLab
limit(f)
limit(f,x,a) или
limit(f,a)
limit(f,x,a,’left’)
limit(f,x,a,’right’)
>> syms x n
>> limit( (1+x/n)^n, n, inf )
ans = exp(x)
>>limit( x/abs(x), x, 0, 'left' )
ans = -1
20
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
