Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Уч. пособие. ПТ.Сахаров, Андрианов.docx
Скачиваний:
12
Добавлен:
01.04.2025
Размер:
3.31 Mб
Скачать

1. Краткие сведения о правилах работы в вычислительной среде matlab

1.1. Краткие сведения о правилах работы в среде MATLAB.

После запуска пакета MATLAB на экране монитора появятся комбинированное окно MATLAB (Текущий каталог) и окно CommandWindow (Командное окно), приведенные на рис 1.1

Рис1.1 Вид "Рабочего стола" компьютера при работес программой MATLAB

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

К командам главного меню относятся: ФАЙЛ (File), ПРАВКА (Edit), ВИД (View), ВЕБ (WEB) и т.д.

Остановимся на команде ФАЙЛ (File), в выпадающем меню которого содержатся команды, позволяющие производить различные операции с файлом:

1. Новый (New) – открытие нового файла, в котором записывается текстпрограммы.

2. Открыть (Open) – позволяет открыть существующий файл с программой.

3. Закрыть (CloseCommandWindows) - позволяет закрыть ранее открытый файл с программой.

4. Сохранить Рабочую Область как … (SaveWorkspaseAs…) - сохраняет значения всех переменных в файле с указанием места сохранения.

5. Печать (Print) – вывод на печать активного окна программы MATLAB.

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

Новый (New)  М-файл (M – file) - режим текстового редактора новой программы с возможностью отладки программы.

Открыть (Open) - позволяет открыть существующий файл с программой.

В режиме Редактора (Edit) появляются следующие пункты меню: ФАЙЛ (File), ПРАВКА (Edit), ВИД (View), ТЕКСТ (Text), ОТЛАДКА (Debug), ТОЧКИ ОСТАНОВА (Breakpoints), ВЕБ (WEB), ОКНО (Window).

В меню ОТЛАДКА (Debug) находится команда ЗАПУСК (Run) или СОХРАНИТЬ И ЗАПУСТИТЬ (SaveandRun) позволяющая выполнить М – ФАЙЛ (M – file).

При работе в среде MATLAB в основном используются следующие режимы:

1.Режим прямых вычислений.

2.Режим редактора.

3.Режим записи\чтения файлов.

Правила работы в режиме прямых вычислений:

1.Открыть MATLAB.

2.Открыть Командное окно (CommandWindow).

3.После появления приглашения к работе, обозначенного знаком " >> ", можно ввести строку с данными, формулой или командой, завершив ввод строки нажатием клавиши "ВВОД" ("Enter''). Результат выполнения введенных данных, формул или команд должен появиться в командном окне (см. рис. 1.2).

Рис 1.2 Окно редактора программы MATLAB

Правила работы в режиме редактора:

1.Открыть MATLAB.

2.При создании нового файла в окне текущего каталога MATLAB на панели инструментов вызвать режим редактора -->Новый --> М-файл.

3.Набрать текст новой программы.

Различные изменения и коррекцию команд следует выполнять с помощью текстового редактора с последующимсохранением созданного (откорректированного) файла путем воздействия левой кнопкой мыши на «дискету», расположенную на панели окна редактора.

4.Проверить сохранение созданного файла.

1.2.Вычисление математических выражений:

Основные операторы: "+ " (сложение), " – " (вычитание), " * " (умножение), ".* " (поэлементное умножение), " / " (деление слева направо), "./ " (поэлементное деление слева направо), " \ " (деление справа налево), " .\ " (поэлементное деление справа налево), " ^ " (возведение в степень), " .^ " (поэлементное возведение в степень), " ' " (апостроф, транспонирование матрицы, вектора).

Функции: sin, cos, tan, cot, sec, csc (тригонометрические), asin, acos (обратные тригонометрические), sqrt (корень квадратный), log (натуральный логарифм), log2, log10 (логарифмы по основанию 2 и 10 соответственно), round(округление), abs (модуль числа).

ЗАНЯТИЕ № 1

1.2.1.Примеры вычислений

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

Современный матричный аппарат применяется практически во всех сферах инженерной деятельности и научных исследованиях, в той или иной мере связанных с количественными оценками, необходимыми для выполнения различных расчетов и принятия количественно обоснованных решений. В вычислительной среде MATLAB пользователю предоставлена возможность получения таких оценок практически без составления программ, путем выполнения расчетов в режиме прямых вычислений. Рассмотрим последовательность выполнения вычислений на ряде примеров. С этой целью вкомандной строке после мигающего знака " >> ", называемого промптом и означающего приглашение к работе, следует ввести требуемую операцию, нажать клавишу "ВВОД" (ENTER) и получить результат «ans».Рассмотрим кратко выполнение операций над векторами и матрицами в режиме прямых вычислений:

ПРИМЕР 1

>> 7-9+12-4

ans = 6

ПРИМЕР 2

>>log(1)

ans =0

>>exp(0)

ans =1

ПРИМЕР 3

>>log(73.8030)

ans =4.3014

>>exp(4.3014)

ans =73.8030

ПРИМЕР 4

>>>>exp(1)

ans = 2.7183

>>log(2.7183)

ans = 1.0000

>>log10(1000)

ans = 3

>> 10^3

ans = 1000

>>log2(32)

ans = 5

>> 2^5

ans = 32

Выполним несколько операций над векторами и матрицами. Условимся матрицы обозначать большими буквами, а вектора – малыми.При задании матрицы в квадратных скобках указываются значения чисел строк матрицы, разделяемые пробелами. Строки разделяются точкой с запятой "; ".

1.2.2. Матрицы.

Сложение и вычитание матриц:

ПРИМЕР 5

A=[1 -2 -4;3 -5 6]; B=[4 5 -1;-2 2 -3];

A+B;

ans =

5 3 -5

1 -3 3

ПРИМЕР 6

A=[1 3;-2 5]; B=[-4 2;3 -3]; C=[3 -1;-4 2];

D=A+B+C

ans =

0 4

-3 4

ПРИМЕР 7

A1=D-B-C

A1 =

1 3

-2 5

Умножение матрицы на число

ПРИМЕР 8

A=[2 -4 3 1 5;-1 3 -2 6 2];

mu=4;

Найти

mu*A

ans =

8 -16 12 4 20

-4 12 -8 24 8

ПРИМЕР 9

A=[1 -3 5;-4 3 -2;2 7 1]; B=[4 5 -6;2 -2 1;3 -9 2];

Найти

A+B

ans =

5 2 -1

-2 1 -1

5 -2 3

ПРИМЕР 10

2*B

ans =

8 10 -12

4 -4 2

6 -18 4

ПРИМЕР 11

3*A+2*B

ans =

11 1 3

-8 5 -4

12 3 7

ПРИМЕР 12

2*(3*A-2*B)

ans =

-10 -38 54

-32 26 -16

0 78 -2

ПРИМЕР 13

Умножение векторов (строка на столбец):

a=[-3 2 1 -2]; b=[2 -3 4 1]';

a*b

ans =

-10

Поэлементное умножение векторов:

a.*b'

ans =

-6 -6 4 -2

ПРИМЕР 14

Матрицы неперестановочны, что подтверждается путем выполнения следующих операций:

A=[1 -3 5;-4 3 -2;2 7 1]; B=[4 5 -6;2 -2 1;3 -9 2];

A*B

ans =

13 -34 1

-16 -8 23

25 -13 -3

B*A

ans =

-28 -39 4

12 -5 15

43 -22 35

ПРИМЕР 15

Умножение прямоугольных матриц:

A=[2 -1;4 3;1 -2;5 1]; B=[1 -5 4;7 1 3];

A =

2 -1

4 3

1 -2

5 1

>> B

B =

1 -5 4

7 1 3

A*B

ans =

-5 -11 5

25 -17 25

-13 -7 -2

12 -24 23

ПРИМЕР 16

Транспонирование:

A=[4 7;-2 -3;5 -6]

A'

ans =

4 -2 5

7 -3 -6

Получение симметрической матрицы:

A=[2 5 -3;-1 3 1;4 -3 6]

B=A+A'

B =

4 4 1

4 6 -2

1 -2 12

ПРИМЕР 17

Многочлены от матриц.

а). Найти многочлен от матрицы A,если f(x)=x^2+2*x+3 и

A=[1 1 0;1 1 1;1 0 1]; I=eye(3);

Решение: f(A)=

A^2+2*A+3*I

ans =

7 4 1

5 7 4

4 1 6

b).Найти B^2,если B=[cos(alf) -sin(alf);sin(alf) cos(alf)].

Введем символьную переменную «alf» и используем «simple» – операцию упрощения математической записи D:

symsalf

B=[cos(alf) -sin(alf);sin(alf) cos(alf)]

D=B^2;

D=simple(D)

D =

[ cos(2*alf), -sin(2*alf)]

[ sin(2*alf), cos(2*alf)]

c). Найти для той же B матрицу B^5:

D1=B^5;

D1=simple(D1)

D1 =

[ cos(5*alf), -sin(5*alf)]

[ sin(5*alf), cos(5*alf)]

Выполним численную проверку полученного результата (углы в вычислительных средах принято задавать в «радианах»):

alf=pi/180*37;

B=[cos(alf) -sin(alf);sin(alf) cos(alf)]

B*B*B*B*B

ans =

-0.9962 0.0872

-0.0872 -0.9962

D1=[cos(5*alf) -sin(5*alf);sin(5*alf) cos(5*alf)]

D1 =

-0.9962 0.0872

-0.0872 -0.9962

ПРИМЕР 17

Обращение (инверсия) матрицы.

Для обращения матрицы используем оператор «inv». С помощью оператора «rand» зададим квадратную матрицу Aразмерности (4 x4) из случайных чисел с равномерным распределением. Затем определим обратную матрицу B. Проверим решение путем умножения A*B или B*A. В обоих случаях получим единичную матрицу I:

A=rand(4,4)

A =

0.6948 0.4387 0.1869 0.7094

0.3171 0.3816 0.4898 0.7547

0.9502 0.7655 0.4456 0.2760

0.0344 0.7952 0.6463 0.6797

>> B=inv(A)

B =

-0.0503 0.8024 0.8645 -1.1895

1.4711 -3.2118 -0.0787 2.0627

-3.2986 3.6604 1.2312 -1.1216

1.4180 0.2363 -1.1225 0.1848

>> A*B

ans =

1.0000 -0.0000 -0.0000 -0.0000

0.0000 1.0000 -0.0000 -0.0000

0.0000 -0.0000 1.0000 0.0000

0.0000 -0.0000 -0.0000 1.0000

>> B*A

ans =

1.0000 -0.0000 -0.0000 -0.0000

-0.0000 1.0000 0 0.0000

-0.0000 0.0000 1.0000 0.0000

-0.0000 -0.0000 -0.0000 1.0000

Инвертировать можно только квадратные матрицы, имеющие одинаковое число строк и столбцов.

ПРИМЕР 18

Для задания мнимой части комплексного числа используют операторы «i», либо «j», означающие квадратный корень из числа (-1), т.е. sqrt(-1).

Определим произведение двух комплексно – сопряженных чисел:

>>z1=3-j*5;z2=3+j*5;

z=z1*z2

z = 34

С помощью функций real и imagможно выделить вещественную и мнимую части комплексного выражения:

>>real(z1)

ans = 3

>>imag(z2)

ans = 5

Комплексное сопряженное число получим, используя апостроф " ' ":

>> z1'

ans = 3.0000 + 5.0000i

ПРИМЕР 19

Формирование матриц специального вида

Функция zeros генерирует матрицу с нулевыми элементами.

>> a=zeros(5) %Формирует матрицу 5х5

a =

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

>> b=zeros(3,4) % Формирует матрицу c нулевыми элементами

%размерности 3х4 (строки и столбцы)

b =

0 0 0 0

0 0 0 0

0 0 0 0

Функция ones генерирует матрицу с единичными элементами.

>> c = ones(3,4) %Формирует матрицу размерности 3х4

c =

1 1 1 1

1 1 1 1

1 1 1 1

Функция eye генерирует матрицу с единичными диагональными элементами.

>> d = eye(3)

d = 1 0 0

0 1 0

0 0 1

Функция diag(v,k) используется для генерирования диагональных матриц:

>> v=[3 4 5 1];

>>diag(v)

ans =

3 0 0 0

0 4 0 0

0 0 5 0

0 0 0 1

>>diag(v,1) % k=1, получена наддиагональ.

ans =

0 3 0 0 0

0 0 4 0 0

0 0 0 5 0

0 0 0 0 1

0 0 0 0 0

>>diag(v,-1) % k=1, получена подддиагональ.

ans =

0 0 0 0 0

3 0 0 0 0

0 4 0 0 0

0 0 5 0 0

0 0 0 1 0

В заключение отметим, что примеры (5 ÷17) можно найти в файле sah559.m, предоставляемом пользователям для выполнения лабораторных работ и самостоятельного изучения материала.

Для очистки экрана используется команда " clc ".

Теперь получим решение системы линейных алгебраических уравнений.

Рассмотрим пример:

Представим систему (1.1) в матричном виде:

А·x = b

где

, , .

Представим систему () в виде илиx = inv(A) * b.

>> A=[7 2 -1;1 3 -1;5 -2 2];

>> b=[8 11 9]';

>> x=inv(A)*b

x = [0.61296.6774 9.6452]’

>>A*x % Проверка:

ans = [8.0000 11.00009.0000]’

ЗАНЯТИЕ № 2

Графические построения

Для построения графика функции y = f (x) необходимо сформировать два вектора одинаковой размерности - вектор значений аргументов (x) и вектор значений функции (y). Для вывода графика функции на экран используется оператор "plot".

Построение графика функции: .

>>x = 0:0.1:6.28;

>> y = sin(x).*exp(-x);

>>plot(x,y)

Рис. График функции y=sin(x).*exp(-x)

Теперь рассмотрим способ построения графиков m- фазной симметричной системы синусоидальных э.д.с.по формуле

/m),

где k=1,2,3,…,m; Em- амплитуда фазнойэ.д.с. (в);ω– угловая частота (рад/с); t- время (с), для чего воспользуемся файлом sah743.m:

% sah743.m

% Построение ЭДС многофазных систем (m=3,...,12):

m=12;

e=[];Em=230*sqrt(2); f=50; w=2*pi*f;

for t=0:0.0001:0.02;

k=1:m;

ek=Em*cos(w*t-(2*k-1)*pi/m);

e=[e;ek];

end

Рис. .Пример построения графика функции в программе MATLAB.

Рис. Двенадцатифазная система э.д.с.

e;

t=0:0.0001:0.02;

plot(t,e),grid

Выбор цвета графиков.

Для выбора цвета графика необходимо указать в операторе “plot” символ цветности, в соответствии с таблицей 1.1.

Таблица 1.1

Символы цветности

символ цвета

цвет графика

символ цвета

цвет графика

y

желтый

g

зеленый

m

малиновый

b

синий

c

голубой

w

белый

r

красный

k

черный

>> x1 = 0:0.2:6.28;

>>y1 = sin(x1);

>>y2 = cos(x1);

>>plot (x1,y1,x1,y2,'g'), grid

% графикy2=cos(x1) будетиметьзеленыйцвет.

Стиль линии графика.

По умолчанию предусматривается график в виде сплошной линии, можно также задать:

"-"– сплошная линия,

"- -" – штриховая линия,

":" – двойная пунктирная линия,

"-." – штрих-пунктирная линия.

>> x1 = 0:0.2:6.28;

>> y1 = sin(x1);

>> y2 = cos(x1);

>> y3 = 0.5*cos(x1);

>> y4 = cos(2*x1);

>> plot (x1,y1,x1,y2,'g --',x1,y3,'m :',x1,y4,'b -.'), grid

Способы отображения точек на графике, при использовании оператора "plot", приведены в таблице 1.2.

Таблица 1.2

Символы отображения точек

Тип точки

Точка

Плюс

Звездочка

Кружок

Квадрат

Крестик

Используемыйзнак

.

+

*

о

s

>>x1 = 0:0.2:6.28;

>> y1 = sin(x1);

>> y2 = cos(x1);

>> y3 = 0.5*cos(x1);

>> y4 = cos(2*x1);

>> plot (x1,y1,x1,y2,'g --',x1,y3,'m : +',x1,y4,'b -. *'), grid

ТРЕХМЕРНАЯ ГРАФИКА

Построение трехмерной поверхности: z(x,y)=x.^2+y.^2.

[x,y]=meshgrid([-3:0.15:3]);

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

plot3(x,y,z),grid

Оператор "meshgrid" – формирует узлы двумерной и трехмерной сеток.

[x,y] = meshgrid формирование узлов прямоугольника, задаваемого векторами x и y.

Рис.1.14 Пример построения трехмерной поверхности

Рисунок сохранен средствами программы MATLAB – из графического окна. В меню ФАЙЛ (File) выбираем подменю Экспортировать (Export…), где указываем: место сохранения рисунка, его формат и имя.

Построение линий уровней трехмерных поверхностей:

% z=x*exp(-x.^2-y.^2) в областях: -2=<x<=2, -2=<y<=3;

[x,y]=meshgrid([-2:0.2:2,-2:0.2:3]);

z=x.*exp(-x.^2-y.^2);

%surf(x,y,z

meshc(x,y,z)

Операторы "surf" ("surfc") выводят затененную сетчатую поверхность. Операторы "meshc" ("mesh", "meshz") создают трехмерную сетчатую поверхность.

Рис.1.15 Пример построения трехмерной сетчатой поверхности

Рис.1.16 Пример построения затененной поверхности

Построение затененной поверхности:

[x,y]=meshgrid([-2:0.2:2,-2:0.2:3]);

z=x.*exp(-x.^2-y.^2);

surf(x,y,z)

Построение сферы.

[x,y,z]=sphere(32);

c=z;

surf(x,y,z,c)

%colormap (pink)

colormap (prism)

colorbar

Рис.1.17 Пример построения сферы

colormap (С) - палитра цветов С, например, pink – розовая палитра, prism –палитра с чередованием цветов радуги.

colorbar - шкала палитры.

ЗАНЯТИЕ № 3

Метод наименьших квадратов (МНК)