Основи роботи в середовищі пакету MatLab.
1. Типи та формати даних
- Matlab відрізняє великі та малі літери, окрім того, запис імені файлу та повного шляху до його розміщення повинні підкорятися формату системи MS-DOS.
- Для запису комплексних чисел використовують символи i та j.
- Тип нескінченність inf (число/0);
- Тип невизначеність nan (0/0).
- У пакеті визначені значення змінних pi та eps (2-52).
Табл. 3. - Формати даних.
Запис | Значення |
Short | 5 значущих цифр числа |
Long | 15 значущих цифр числа |
Short e | Число з плаваючою комою і п'ятьма значущими цифрами числа |
Long e | Число з плаваючою комою і 15 значущими цифрами числа |
Short g | 5 значущих цифр як у форматі з фіксованою, так і з плаваючою комою |
Long g | 15 значущих цифр як у обох форматах |
Hex | Шістнадцяткова система числення |
Format + | +, або пробіл для додатних, від’ємних елементів і нуля. Уявна частина ігнорується |
2. Елементарні функції пакету (Всі функції пакету визначені малими літерами.)
Табл. 4. - Елементарні функції пакету.
Запис | Значення |
Тригонометричні | |
sin, cos, tan, cot | Тригонометричні функції |
asin, acos, atan, atan2,acot | Обернені тригонометричні функції |
sinh,cosh, tanh,coth | Гіперболічні функції |
asinh, acosh, atanh, acoth | Обернені гіперболічні функції |
sec, csc | Секанс і косеканс |
asec, acsc | Обернені функції секанса і косеканса |
sech, csch | Гіперболічний секанс і косеканс |
asech, acsch | Обернені гіперболічні функції |
Логарифмічні та експонента | |
exp | Експонента |
log | Натуральний логарифм |
log10 | Десятковий логарифм |
log2 | Логарифм за основою два |
Піднесення до степеня | |
pow2 | Піднесення до квадрату |
sqrt | Корінь квадратний |
nextpow2 | Піднесення числа до степеня n |
Функції комплексного аргументу | |
abs | Модуль комплексного числа |
angle | Фаза комплексного числа |
conj | Комплексно-спряжене число |
imag | Уявна чистина комплексного числа |
real | Дійсна частина комплексного числа |
cplxpair | Сортування на комплексно-спряжені пари |
Функції закруглення та визначення остачі від ділення чисел | |
fix | Заокруглення ® 0 |
floor | Заокруглення ® -: |
ceil | Заокруглення ® : |
round | Заокруглення до найближчого цілого |
mod | Остача від ділення зі знаком |
rem | Остача від ділення |
sign | Знак |
Зауваження: довідкову інформацію отримують використовуючи наступний формат запису функції - help ___.
3. Матричні операції. Матричні функції.
У середовищі пакету всі змінні трактуються як матриці. Наприклад змінна а=1,2 записується у вигляді а=1.2 (матриця розмірністю 1*1). Елементи матриці вводяться за рядками, які відділяються один від одного символом “;” або переходом на новий рядок a = [1 2 3; 4 5 6].
Табл. 5. - Стандартні функції для генерації певних типів матриць
Назва функції | Визначення генерованої матриці |
zeros | Матриця, всі елементи якої дорівнюють 0 |
ones | Матриця, всі елементи якої дорівнюють 1 |
eye | Одинична матриця |
rand | Матриця випадкових чисел |
Спосіб виклику подібних матриць є однаковим: А=zeros(5,8) і т.д.
Спосіб введення векторів є ідентичним введенню матриці, однак є можливість генерування вектору наступним командним рядком: Х=Хпоч: крок: Хкін
Табл. 6. - Операції з матрицями з використанням оператору “:”
A(:,j) | Виведення j-го стовпця матриці А |
A(:,j:k) | Виведення стовпців A(j), A(j+1), .. , A(k) |
A(i,:) | Виведення і-го рядка матриці А |
A(i:k,:) | Виведення рядків А(і), А(і+1), .. , А(k) |
A(:) | Виведення всіх елементів матриці в стовпець |
A(j:k) | Виведення в рядок елементів матриці А від елемента з індексом j до елемента з індексом k |
Розмірність порожньої матриці – 0*0, визначається як A=[].
Табл. 7. - Перелік базових матричних операцій
Запис | Значення |
A’ | Транспонування матриці |
A6B | Додавання (віднімання) матриць |
A*B | Множення матриць |
A/B | Праве ділення матриць (хА=У) |
AB | Ліве ділення матриць (Ах=У) |
A^p | Піднесення матриці до степеня |
a^p | Піднесення скаляра до матричного степеня |
У пакеті визначені операції додавання, віднімання і множення, якщо один з операндів є скаляр.
Окремим типом матричних операцій є табличні операції (скалярні операції), визначені на елементах матриці. Табличні операції мають ідентичний запис з матричними, однак перед знаком операції ставитися символ “.”.
Табл. 8. - Елементарні матричні функції та операції
Запис | Значення | |
expm | Матрична експонента | |
logm | Матричний логарифм | |
sqrtm | Матричний корінь квадратний | |
lu | Декомпозиція трикутна LU | |
qr | Декомпозиція ортогональна QR | |
norm | Норма вектора і матриці | |
rank | Ранг матриці | |
det | Детермінант матриці | |
trace | Сума діагональних елементів матриці | |
inv | Обернена матриця | |
size | Розмір матриці | |
reshape | Зміна розміру матриці | |
lenght | Довжина вектора | |
diag | Діагональні елементи матриці | |
triu | Верхня трикутна частина матриці | |
tril | Нижня трикутна частина матриці |
Матрична функція poly визначає коефіцієнти характеристичного полінома, який визначається як det(sI-A). Результатом виконання функції є вектор-рядок коефіцієнтів характеристичного полінома, впорядкований у порядку спадання степенів.
4. Статистичний аналіз.
Табл. 9. - Основні функції пакету для статистичного аналізу
Запис | Значення | |||
min | Найменший елемент | |||
max | Найбільший елемент | |||
mean | Середнє значення | |||
std | Стандартне відхилення | |||
cov | Коваріація | |||
corrcoef | Коефіцієнт кореляції | |||
sum | Сума елементів | |||
prod | Добуток елементів | |||
5. Графічне подання інформації.
Табл. 10. - Функції для виводу двовимірного графіку
Запис | Значення | |||
plot | Побудова графіка в декартовій системі координат | |||
loglog | Побудова графіка в логарифмічних осях | |||
semilogx | Побудова графіка з логарифмічною віссю абсцис | |||
semilogy | Побудова графіка з логарифмічною віссю ординат | |||
polar | Побудова графіка в полярній системі координат | |||
plotyy | Вивід осей як ліворуч, так і праворуч вікна графіка | |||
Активізація описаних у табл.10 функції є подібною до виклику функції plot.
Якщо 'у' є вектором, plot(y) виконує побудову графіку залежності значення елемента вектора від його порядкового номера. Якщо визначені два вектори як аргументи функції, plot(x,y) будує графік залежності y=f(x).
У випадку декількох пар векторів х-у за допомогою команди plot можна на одному графіку вивести декілька залежностей. Структура команди при цьому – plot(x1,y1,x2,y2,x3,y3).
Для виводу графіків можна завдавати колір залежності, тип лінії та маркери за допомогою наступної структури: plot(x,y,’colorstylemarker’).
Кольори: c - голубий; m – бузковий; y –жовтий; r – червоний; g- зелений; b-синій; w- білий; k-чорний.
Знаки стилів ліній: - - неперервна; -і - штрихова; : - пунктирна; -. – штрих- пунктирна; none – без лінії.
Знаки маркерів: '+', '0', '*', 'х'.
Для відкриття нового вікна для виводу графіків необхідно виконати команду figure. Команда figure(n) задає поточне вікно з номером n серед відкритих графічних вікон.
Для виводу нових залежностей у створеному вікні графіку необхідно виконати команду hold on.
Команда subplot(vha) дозволяє здійснювати поділ вікна виводу графіків на чотири, або на два. У даній команді v та h дорівнюють 1 або 2, таким чином задають відповідно поділ екрану по вертикалі та по горизонталі, а параметр “а” визначає номер активного вікна.
Використання під час побудови графіку функції axis дає змогу задавати діапазон зміни координат. Структура такої команди: axis([Xmin Xmax Ymin Ymax]). Окрім цього команда axis equal формує однаковий крок розбиття по осі абсцис і ординат, а команда axis off дозволяє не виводити мітки та розбиття координатних осей.
Використання команди grid дозволяє нанести сітку на графік.
Для опису графіків існують команди, які дають можливість задавати наступне:
- назви x-,y-осей, відповідно, - xlabel (‘Назва осі’), ylabel (‘Назва осі’);
- назва графіку – title (‘Назва графіку’);
- підпис у будь якому місті – text(x,y,’Текст підпису’).
5.2 Тривимірна графіка.
Табл. 11. - 3D функції пакету
Запис | Значення | |||
plot3 | Побудова 3D графіку | |||
mesh | Побудова сітки на поверхні графіку | |||
surf | Побудова поверхні графіку | |||
contour3 | Побудова контурів поверхні графіку | |||
6. Циклічні оператори та організація розгалужень у середовищі пакету.
Цикл for повторює виконання групи операторів фіксовану кількість разів. for змінна = вираз оператори; end | Структура циклічного оператору While While умова оператори; end Для виходу з циклу до його завершення є команда break. |
Структура умовного оператора if if умова1 оператори1 elseif умова2 оператори2 else оператори end | Оператор switch виконує групу команд залежно від значення виразу або змінної. switch вираз або змінна case значення 1 оператори 1 case значення 2 оператори 2 case значення 3 оператори 3 otherwise оператори 4 end |
7. Структура m-файлів.
Файли, що містять написані користувачем програми мовою MatLab, які виконують певні операції, називаються m-файлами. Розрізняють два види m-файлів:
- script – не має ні вхідних, ні вихідних аргументів. Працює з даними робочої області.
- function – має вхідні та вихідні аргументи. Внутрішні змінні є локальними змінними функції.
Запис m-файлу (function) починається наступним рядком:
Function вихідні аргументи = назва функції (вхідні аргументи).
Після описаного рядка розміщують коментар, котрий виводиться командою - help назва функції.
8. Числове інтегрування та диференціювання функцій.
Для знаходження значення означеного інтеграла в середовищі пакету передбачена функція quad, яка розраховує значення інтеграла F(x) у діапазоні від А до В з допустимою точністю 1е-3 використовуючи метод Сімпсона.
Q= quad('F', a, b)
де 'F' – текстова змінна (назва файлу, у якому зберігається підінтегральна функція).
Функція quad8 реалізує рекурсивну адаптивну восьми-точкову формулу Ньютона-Котеса.
Для визначення наближеного значення похідної, необхідно знайти різницю між сусідніми значеннями функції. Цю операцію виконує функція diff. Якщо х є вектором, то результатом виконання команди diff(x) буде вектор [x(2)-x(1) .. x(n)-x(n-1)]. Якщо вектори х та в складаються з координат точок кривої, то наближене значення похідної:
dydx=diff(y)./diff(x) .
Основи роботи в середовищі пакету MathCAD
У пакеті використовуються вбудовані функції. До основних функцій відносяться тригонометричні і зворотні, гіперболічні і зворотні, експонентні і логарифмічні, статистичні, Фур'є, Беселя, комплексних змінних. Основні функції:
1. Тригонометричні і зворотні функції: sin(z), cos(z), tan(z), asin(z), acos(z), atan(z). Де z - кут у радіанах.
2. Гіперболічні і зворотні функції: sinh(z), cosh(z), tanh(z), asinh(z), acosh(z), atanh(z) .
3. Експонентні і логарифмічні: exp(z) - ez; ln(z) - натуральний логарифм; log(z)- десятковий логарифм.
4. Статистичні функції: mean(x)- середнє значення; var(x)- дисперсія; stdev(x) - середньоквадратичне відхилення; cnorm(x)- функція нормального розподілення; erf(x)- функція помилки; Г(x) - гамма-функція Ейлеру.
5. Функції Беселя: J0(x), J1(x), Jn(n,x) - функції Беселя першого порядку; Y0(x), Y1(x), Yn(n,x) - функції Беселя другого порядку.
6. Функції комплексних змінних: Re(z)- дійсна частина комплексного числа; Im(z)- уявна частина комплексного числа; arg(z)- аргумент комплексного числа.
7. Перетворення Фур'є: U:=fft(V)- пряме перетворення (V- дійсне) ; V:=ifft(U)- зворотне перетворення (V- дійсне); U:=cfft(V)- пряме перетворення (V- дійсне); V:=icfft(U)- зворотне перетворення (V- дійсне).
8. Кореляційна функція - дозволяє розраховувати коефіцієнт кореляції двох векторів vx і vy і визначити рівняння лінійної регресії:
corr(vx,vy)- коефіцієнт кореляції;
slope(vx,vy)- коефіцієнт нахилу лінії регресії;
intercept(vx,vy)- початкова координата лінії регресії.
9. Лінійна інтерполяція:
linterp(vx,vy,x)
vx,vy- вектори значень аргументу і функцій, де x- значення аргументу, для якого проводиться інтерполяція.
10. Функція для визначення коренів алгебраїчних і трансцендентних рівнянь: root(рівняння, змінна)
11. Датчик випадкових чисел: rnd(x) - випадкове число з рівномірним розподілом від 0 до x
12. Ціла частина змінної: floor(x)- найближче найменше ціле число; ceil(x)- найближче найбільше ціле число.
13. Виділення залишку: mod(x,y)- залишок від розподілу x на y.
14. Зупинка ітерації: until(x,y) - коли x<0
15. Функція умовного переходу: if(умова, x, y) - якщо умова виконується, то функція дорівнює x, інакше y.
16. Одинична функція (функція Хевисайда): Ф(x) - якщо x>0 то функція дорівнює 1, інакше 0.