Що робить програма matlab. Загальні відомості про MATLAB

). Серед засобів загального призначення, що використовуються у хемометриці, особливе місце займає пакет MatLab. Його популярність надзвичайно висока. Це пояснюється тим, що MatLab є потужним та універсальним обробки багатовимірних даних. Сама структура пакета робить його зручним засобом щодо матричних обчислень. Спектр проблем, дослідження яких може здійснено за допомогою MatLab, охоплює: матричний аналіз, обробку сигналів і зображень, нейронні мережіі багато інших. MatLab - це мова високого рівня, що має відкритий код, що дозволяє досвідченим користувачам розбиратися в запрограмованих алгоритмах. Проста вбудована мова програмування дозволяє легко створювати власні алгоритми. За багато років використання MatLab створено безліч функцій і ToolBox (пакетів спеціалізованих засобів). Найпопулярнішим є пакет PLS ToolBox компанії Eigenvector Research, Inc.

1. Базові відомості

1.1. Робоче середовище MatLab

Щоб запустити програму, двічі клацніть на іконку .

Перед Вами відкриється робоче середовище, зображене на малюнку. Робоче середовище MatLab 6.х

Перед Вами відкриється робоче середовище, зображене на малюнку. Робоче середовищетрохи відрізняється від робочого середовища попередніх версій, вона має більш зручний інтерфейс для доступу до багатьох допоміжних елементів

    містить такі елементи:

    панель інструментів з кнопками і списком, що розкривається; вікно з вкладками Launch Pad та Workspace

    , З якого можна отримати доступ до різних модулів ToolBox і до вмісту робочого середовища; вікно із вкладками Command History і Current Directory

    , призначене для перегляду та повторного виклику раніше введених команд, а також для встановлення поточного каталогу;

    командне вікно, в якому знаходиться запрошення до введення і миготливий вертикальний курсор;

рядок стану. Робоче середовищеЯкщо в робочому середовищі відсутні деякі вікна, наведені на малюнку, слід у меню View вибрати відповідні пункти: Command Window

Команди слід набирати у командному вікні. Символ» , що означає запрошення до введення командного рядка, не потрібно набирати. Для перегляду робочої області зручно використовувати смуги скролінгу або клавіші Home , End для переміщення вліво або вправо, і PageUp , PageDown для переміщення вгору або вниз. Якщо раптом після переміщення робочої області командного вікна зник командний рядок з миготливим курсором, просто натисніть Enter .

Важливо пам'ятати, що набір будь-якої команди або виразу повинен закінчуватися натисканням на Enter для того, щоб програма MatLab виконала цю команду або обчислила вираз.

1.2. Найпростіші обчислення

Наберіть у командному рядку 1+2 та натисніть Enter . В результаті в командному вікні MatLab відображається таке:

Мал. 2 Графічне уявлення способу основних компонент

Що зробила програма MatLab? Спочатку вона обчислила суму 1+2 , потім записала результат у спеціальну змінну ans і вивела її значення, що дорівнює 3 в командне вікно. Нижче відповіді розташований командний рядок з миготливим курсором, що означає, що MatLab готовий до подальших обчислень. Можна набирати в командному рядку нові вирази та знаходити їх значення.Якщо потрібно продовжити роботу з попереднім виразом, наприклад, обчислити (1+2)/4.5 , то найпростіше скористатися наявним результатом, який зберігається в змінній ans .

Наберіть ans/4.5 (при введенні десяткових дробів використовується крапка) та натисніть

Enter

, Виходить

Мал. 3 Графічне уявлення способу основних компонент

1.3. Відлуння команд

Найпростіший спосіб зберегти всі значення змінних – використовувати в меню File пункт Save Workspase As.

При цьому з'являється діалогове вікно Save Workspase Variables, в якому слід зазначити каталог та ім'я файлу. За промовчанням пропонується зберегти файл у підкаталозі work основного каталогу MatLab. Програма збереже результати роботи у файлі з розширенням mat. Тепер можна закрити MatLab. У наступному сеансі роботи для відновлення значень змінних слід відкрити цей збережений файл за допомогою підпункту Open меню File. Тепер усі змінні, визначені у минулому сеансі, знову стали доступними. Їх можна використовувати у нововведених командах.

1.5. Журнал У MatLab є можливість записувати виконувані команди та результати у текстовий файл (вести журнал роботи), який потім можна прочитати чи роздрукувати з текстового редактора. Для початку ведення журналу служить команда diary У MatLab є можливість записувати виконувані команди та результати у текстовий файл (вести журнал роботи), який потім можна прочитати чи роздрукувати з текстового редактора. Для початку ведення журналу служить команда.

Як аргумент команди

    слід задати ім'я файлу, в якому зберігатиметься журнал роботи.

    Набрані далі команди і результати їх виконання будуть записуватися в цей файл, наприклад послідовність команд

    проводить такі дії:

    відкриває журнал у файлі exampl-1.txt;

здійснює обчислення;

зберігає всі змінні у MAT файлі work-1.mat;
зберігає журнал у файлі exampl-1.txt у підкаталозі work кореневого каталогу MatLab та закриває MatLab;
Перегляньте вміст файлу exampl-1.txt у якомусь текстовому редакторі. У файлі виявиться наступний текст:

a1=3;
a2 = 2.5;

a3=a1+a2

Save work-1 quit 1.6. Система допомоги Вікно довідки MatLab з'являється після вибору опції Help Window у меню Help або натисканням кнопки на панелі інструментів.Ця ж операція може бути виконана при наборі команди

helpwin

.

Для виведення вікна довідки за окремими розділами наберіть

Зауважимо, що MatLab розрізняє великі та великі літери, так що p і P - це різні змінні. Для введення масивів (векторів чи матриць) їх елементи укладають у квадратні дужки.

Так для введення вектора-рядка розміром 1×3, використовується наступна команда, в якій елементи рядка відокремлюються пробілами або комами.

При введенні вектора-стовпця елементи поділяють крапкою з комою.

Наприклад,

Вводити невеликі за розміром матриці зручно прямо з командного рядка. При введенні матрицю можна розглядати як вектор-стовпець, кожен елемент якого є вектором-рядком.

або матрицю можна трактувати як вектор рядок, кожен елемент якого є вектором-стовпцем.

2.2. Доступ до елементів

Доступ до елементів матриць здійснюється за допомогою двох індексів - номерів рядка та стовпця, укладених у круглі дужки, наприклад, команда B(2,3) видасть елемент другого рядка і третього стовпця матриці B . Для виділення з матриці стовпця або рядка слід як один з індексів використовувати номер стовпця або рядка матриці, а інший індекс замінити двокрапкою. Наприклад, запишемо другий рядок матриці A у вектор z Також можна здійснювати виділення блоків матриць за допомогою двокрапки. Наприклад, виділимо з матриці P блок відзначений кольором .

Якщо необхідно переглянути змінні робочого середовища, у командному рядку необхідно набрати команду

whos

Видно, що в робочому середовищі містяться один скаляр (p), чотири матриці (A, B, P, P1) і вектор рядок (z).

2.3. Основні матричні операції

При використанні матричних операцій слід пам'ятати, що для додавання або віднімання матриці повинні бути одного розміру, а при перемноженні число стовпців першої матриці має дорівнювати числу рядків другої матриці.

Додавання та віднімання матриць, так само як чисел і векторів, здійснюється за допомогою знаків плюс і мінус

а множення - знаком зірочка *.

Введемо матрицю розміром 3×2 Множення матриці на число теж здійснюється за допомогою зірочки, причому множити на число можна як праворуч, так і зліва.

Зведення квадратної матриці в цілий ступінь здійснюється за допомогою оператора ^ Перевірте отриманий результат, помноживши матрицю саму себе.

2.4. Створення матриць спеціального виду Заповнення прямокутної матриці нулями здійснюється вбудованою функцією

MatLab надає можливість заповнення матриць випадковими числами. Результатом функції randє матриця чисел, рівномірно розподілених між нулем та одиницею, а функції randn- матриця чисел, розподілених за нормальним законом з нульовим середнім та одиничною дисперсією.

Функція diagформує діагональну матрицю з вектора, розташовуючи елементи діагоналі.

2.5. Матричні обчислення

MatLab містить багато різних функцій для роботи з матрицями. Так, наприклад, транспонування матриці здійснюється за допомогою апострофа "

Знаходження зворотної матриці проводиться за допомогою функції invдля квадратних матриць

3. Інтегрування MatLab та Excel

Інтегрування MatLab та Excel дозволяє користувачеві Excel звертатися до численних функцій MatLab для обробки даних, різних обчислень та візуалізації результату. Надбудова excllink.xla реалізує це розширення можливостей Excel. Для зв'язку MatLab та Excel визначено спеціальні функції.

3.1. Конфігурація Excel

Перед тим як настроювати Excel на спільну роботуз MatLab слід переконатися, що Excel Link входить у встановлену версію MatLab. У підкаталозі exclink основного каталогу MatLab або підкаталогу toolbox повинен знаходитись файл із надбудовою excllink.xla. Запустіть Excel та в меню Tools виберіть Add-ins .Відкриється діалогове вікно, що містить інформацію про доступні в Наразінадбудови. Використовуючи кнопку Browse, вкажіть шлях до файлу excllink.xla. У списку надбудов діалогового вікназ'явиться рядок

Excel Link 2.0 для використання з MatLab

зі встановленим прапором.

3.2. Обмін даними між MatLab та Excel

Запустіть Excel, перевірте, чи виконані всі необхідні налаштування так, як описано в попередньому розділі (MatLab має бути закритим). Введіть у комірки з A1 по C3 матрицю, для відділення десяткових знаків використовуйте крапку відповідно до вимог Excel.

Виділіть на аркуші дані комірки і натисніть кнопку putmatrix, з'являється вікно Excel з попередженням про те, що MatLab не запущений. Натисніть OK, дочекайтеся відкриття MatLab.

З'являється діалогове вікно Excel з рядком введення, призначеним для визначення імені змінного робочого середовища MatLab, в яке слід експортувати дані з виділених осередків Excel. Введіть, наприклад, М і закрийте вікно за допомогою кнопки OK .

Перейдіть до командного вікна MatLab і переконайтеся, що в робочому середовищі створилася змінна М , що містить масив три на три:

Виконайте деякі операції в MatLab з матрицею М, наприклад, зверніть її. invВиклик

Для обігу матриці, як і будь-якої іншої команди MatLab, можна здійснити прямо з Excel. Натискання кнопки evalstring , розташованої на панелі Excel Link , призводить до появи діалогового вікна, у рядку введення якого слід набрати команду MatLab

IM=inv(M).

Результат аналогічний отриманому під час виконання команди серед MatLab.

Поверніться до Excel, зробіть поточну комірку A5 і натисніть кнопку getmatrix .

Вищеописаний підхід є найпростішим способом обміну інформацією між додатками - вихідні дані містяться в Excel, потім експортуються до MatLab, обробляються там і результат імпортується в Excel. Користувач переносить дані за допомогою кнопок панелі інструментів Excel Link.

Інформація може бути представлена ​​як матриці, тобто. прямокутної області робочого листа. Осередки, розташовані в рядок або стовпець, експортуються, відповідно, у вектори -рядки та вектори -стовпці MatLab.

Аналогічно відбувається і імпорт векторів-рядків і векторів-стовпців у Excel.

4. Програмування У MatLab є можливість записувати виконувані команди та результати у текстовий файл (вести журнал роботи), який потім можна прочитати чи роздрукувати з текстового редактора. Для початку ведення журналу служить команда 4.1. М-файли Робота з командного рядка MatLab не може, якщо потрібно вводити багато команд і часто їх змінювати.Ведення щоденника за допомогою команди

та збереження робочого середовища трохи полегшують роботу. Найзручнішим способом виконання груп команд MatLab є

використання М-файлів , в яких можна набирати команди, виконувати їх все одразу або частинами, зберігати у файлі та використовувати надалі. p align="justify"> Для роботи з М-файлами призначений редактор М-файлів. З його допомогою можна створювати власні функції та викликати їх, у тому числі з командного вікна.Розкрийте меню File основного вікна MatLab і в пункті New виберіть підпункт M-file. Новий файл відкривається у вікні редактора M-файлів, що зображено на малюнку.М-файли в MatLab бувають двох типів: файл-програми (

Script M-Files

), що містять послідовність команд, та файл-функції, (

Function M-Files ), в яких описуються функції, що визначаються користувачем. 4.2. Файл-програма

Наберіть у редакторі команди, що призводять до побудови двох графіків на одному графічному вікні

Збережіть файл з ім'ям mydemo.m в підкаталозі work основного каталогу MatLab, вибравши пункт Save as меню File редактора. Щоб запустити на виконання всіх команд, які містяться у файлі, слід вибрати пункт Run у меню Debug . На екрані з'явиться графічне вікно Figure 1містить графіки функцій. ), в яких описуються функції, що визначаються користувачем.. Виділіть за допомогою миші, утримуючи ліву кнопку або клавішами зі стрілками при натиснутій клавіші Shift

, перші чотири команди та виконайте їх із пункту Text . Зверніть увагу, що у графічне вікно вивівся лише один графік, який відповідає виконаним: командам.

Запам'ятайте, що для виконання частини команд їх потрібно виділити та натиснути клавішу F9 .

Окремі блоки М-файлу можна постачати коментарями, які пропускаються при виконанні, але зручні при роботі з М-файлом. Коментарі починаються зі знака відсотка та автоматично виділяються зеленим кольором, наприклад:

Відкриття існуючого М-файлу здійснюється за допомогою пункту Open меню File робочого середовища або редактора М-файлів.

4.3. Файл-функція

Розглянута вище файл-програма є лише послідовністю команд MatLab, вона немає вхідних і вихідних аргументів. Для використання чисельних методів та при програмуванні власних додатків у MatLab необхідно вміти складати файл-функції, які роблять необхідні дії з вхідними аргументами та повертають результат дії у вихідних аргументах. Розберемо кілька простих прикладів, що дозволяють зрозуміти роботу з файлами-функціями.

Тепер створену функцію можна використовувати так само, як і вбудовані sin, cos та інші. Виклик власних функцій може здійснюватись із файл-програми та з іншої файл-функції. Спробуйте самі написати файл-функцію, яка шкалюватиме матриці, тобто. ділити кожен стовпець на величину середньоквадратичного відхилення за цим стовпцем.

Можна написати файл-функції з кількома вхідними аргументами, які розміщуються у списку через кому. Можна також створювати функції, що повертають кілька значень. Для цього вихідні аргументи додаються через кому до списку вихідних аргументів, а сам список полягає у квадратних дужках.

Хорошим прикладом є функція, що переводить час, заданий у секундах, годинах, хвилинах і секундах.

Під час виклику файл-функцій з кількома вихідними аргументами, результат слід записувати у вектор відповідної довжини.

4.4 Створення графіка

MatLab має широкі можливості для графічного зображення векторів та матриць, а також для створення коментарів та друку графіків. Дамо опис кілька важливих графічних функцій. Функція plot маєрізні форми

, Пов'язані з вхідними параметрами, наприклад plot(y) створює шматково-лінійний графік залежності елементів y від їх індексів. Якщо аргументами задані два вектори, то plot(x,y) створить графік залежності y від x . ), в яких описуються функції, що визначаються користувачем.

Наприклад, для побудови графіка функції sin в інтервалі від 0 до 2π, зробимо таке

Програма побудувала графік залежності, який відображається у вікні MatLab автоматично надає кожному графіку свій колір (за винятком випадків, коли це робить користувач), що дозволяє розрізняти набори даних.Команда hold onдозволяє додавати криві до існуючого графіка. Функція

subplot

дозволяє виводити безліч графіків в одному вікні 4.5 Друк графіківПункт Print у меню File та команда 4.5 Друк графіків print

друкують графіку MatLab Меню Print викликає діалогове вікно, яке дозволяє вибирати стандартні загальні варіанти друку. Команда

забезпечує велику гнучкість при виведенні вихідних даних та дозволяє контролювати друк з М-файлів.

5.1. Центрування та шкалювання

Часто під час аналізу потрібно перетворити вихідні дані. Найбільш використовуваними методами перетворення даних є центрування і шкалювання кожної змінної на стандартне відхилення. Наводився код функції для центрування матриці. Тому нижче показано лише код функції, яка шкалюєдані. Зверніть увагу, що вихідна матриця має бути центрована

функція Xs = scaling(X)
% scaling: output matrix is ​​Xs
% matrix X must be centered

Xs = X * inv (diag (std (X)));

%end of scaling

5.2. SVD/PCA

Найбільш популярним способом стиснення даних у багатовимірному аналізі є метод основних компонентів (PCA). З математичної точки зору PCA – це декомпозиція вихідної матриці X, тобто. подання її у вигляді добутку двох матриць Command History T

X = P TP t +

E подання її у вигляді добутку двох матрицьМатриця

називається матрицею рахунків (scores), матриця - матрицею залишків. подання її у вигляді добутку двох матриць Command History TНайпростіший спосіб знайти матриці - Використовувати SVD розкладання через стандартну функцію MatLab, звану .

svd

функція = pcasvd(X)
Svd(X);
T = U * D;

P = V;

%end of pcasvd

5.3 PCA/NIPALS XДля побудови PCA рахунків та навантажень використовується рекурентний алгоритм NIPALS, який на кожному кроці обчислює одну компоненту. Спочатку вихідна матриця t + 0 , перетворюється (як мінімум – центрується; див.) і перетворюється на матрицю a

=0. 2. Далі застосовують наступний алгоритм. t =0. p t +t = / =0. p =0. 3. Далі застосовують наступний алгоритм. = Далі застосовують наступний алгоритм. / (Далі застосовують наступний алгоритм. p Далі застосовують наступний алгоритм. t =0. = t +t = Далі застосовують наступний алгоритм. / Далі застосовують наступний алгоритм. p Далі застосовують наступний алгоритм. a

) ½ 4. перетворюється (як мінімум – центрується; див.) і перетворюється на матрицю 5. Перевірити збіжність, якщо ні, то йти на 2 =0.t ===0.Після обчислення черговий ( Далі застосовують наступний алгоритм.t ==Далі застосовують наступний алгоритм. t + перетворюється (як мінімум – центрується; див.) і перетворюється на матрицю+1 = t +t ==0. Далі застосовують наступний алгоритм. перетворюється (як мінімум – центрується; див.) і перетворюється на матрицю-ой) компоненти, вважаємо перетворюється (як мінімум – центрується; див.) і перетворюється на матрицю+1.

і X.

на

Код алгоритму NIPALS може бути написаний і самими читачами, у цьому посібнику автори наводять свій варіант. При розрахунку PCA, можна вводити число основних компонентів (змінна numberPC).
Якщо ж не відомо, скільки необхідно компонент, слід написати в командному рядку = pcanipals (X) і тоді програма задасть число компонент рівним найменшому з показників розмірності вихідної матриці

function = pcanipals(X, numberPC)
% calculation of number of components
= size(X); P=; T=;< X_c
If lenfth(numberPC) > 0
pc = numberPC(1);
elseif (length(numberPC) == 0) & X_r
pc = X_r;

else
pc = X_c;
end;

for k = 1:pc
P1 = rand (X_c, 1); T1 = X * P1; d0 = T1"*T1;
P1 = (T1" * X/(T1" * T1))"; P1 = P1/norm(P1); T1 = X * P1; d = T1" * T1;
While d – d0 > 0.0001;

P1 = (T1" * X/(T1" * T1)); P1 = P1/norm(P1); T1 = X * P1; d0 = T1"*T1;
While d – d0 > 0.0001;

Про обчислення PCA за допомогою надбудови Chemometrics розказано у посібнику

5.4 PLS1

Найпопулярнішим способом для багатовимірного калібрування є метод проекції на латентні структури (PLS). У цьому методі проводиться одночасна декомпозиція матриці предикторів. Xта матриці відгуків Y:

X=P t + t + Y=UQ t + F подання її у вигляді добутку двох матриць=XW(T p W) –1

Проекція будується злагоджено – так, щоб максимізувати кореляцію між відповідними векторами X-Рахунків =0.t = Command History Y-Рахунків ut =. YЯкщо блок даних включає кілька відгуків (тобто. K >1), можна побудувати дві проекції вихідних даних – PLS1 та PLS2. У першому випадку для кожного із відгуків y k подання її у вигляді добутку двох матриць (будується свій проекційний підпростір. При цьому і рахунки U T (W, ) та навантаження Q

) , залежать від того, який відгук використовується. Цей підхід називається PLS1. XПісля обчислення черговий ( YДля методу PLS2 будується лише один проекційний простір, який є загальним всім відгуків.

Детальний опис методу PLS наведено в цій книзі Для побудови рахунків PLS1 і навантажень, використовується рекурентний алгоритм. Спочатку вихідні матриці
центрують

= mc(X); t += mc(Y); і вони перетворюються на матрицю 0 , перетворюється (як мінімум – центрується; див.) і перетворюється на матрицю 0 та вектор

1. f t і вони перетворюються на матрицюt ==0. Далі до них застосовує наступний алгоритм t + перетворюється (як мінімум – центрується; див.) і перетворюється на матрицю 2. f = f / (f p f w =0. = t +t = f 4. t = =0. p і вони перетворюються на матрицюt = / =0. p =0. 5. u = tі вони перетворюються на матрицюt = / t 2 6. Далі застосовують наступний алгоритм. t =0. p t +t = / =0. p =0.

) ½ 4. перетворюється (як мінімум – центрується; див.) і перетворюється на матрицю 5. Перевірити збіжність, якщо ні, то йти на 2 =0.t ===0.Після обчислення черговий ( Далі застосовують наступний алгоритм.t ==Далі застосовують наступний алгоритм.) ½ 3. t + перетворюється (як мінімум – центрується; див.) і перетворюється на матрицю+1 = t +t ==0. Далі застосовують наступний алгоритм. q перетворюється (як мінімум – центрується; див.) і перетворюється на матрицю-ой) компоненти, вважаємо перетворюється (як мінімум – центрується; див.) і перетворюється на матрицю+1.

. Для отримання наступної компоненти треба вирахувати залишки

t і застосувати до них той самий алгоритм, замінивши індекс
Наведемо код цього алгоритму, взятий із книги
function = pls(x, y)
%
%PLS: calculates a PLS component.

%Output vectors є w, t, u, q і p.

% Choose a vector from y as starting vector u.
u = y(:, 1);

% The convergence criterion is set very high.
kri = 100;

% The commands from here to end are repeated until convergence.
while (kri > 1e - 10)
% Each starting vector u is saved as uold.
uold = u; w = (u "* x)"; w = w/norm(w);

t = x * w; q = (t"*y)"/(t"*t);
u = y * q/(q" * q);
pc = X_r;

% Конвергенція критерію є norm u-uold divided norm u.
kri = norm(uold - u)/norm(u);

% After convergence, calculate p.

p = (t "* x)"/(t" * t); % End of plsПро обчислення PLS1 за допомогою надбудови Chemometrics

Add In

розказано у посібнику Проекційні методи в системі Excel. XПісля обчислення черговий ( Y 5.5 PLS2 t +Для PLS2 алгоритм виглядає так. Спочатку вихідні матриці F 0 , перетворюється (як мінімум – центрується; див.) і перетворюється на матрицюперетворюють (як мінімум – центрують; див.), і вони перетворюються на матриці

0 та u 2. f t u p t + перетворюється (як мінімум – центрується; див.) і перетворюється на матрицю 3. f = f / (f p f t =0. = t +t = f 5. t t =0. p Ft = / =0. p =0. 6. u = Ft = t/ t p t=0. Далі до них застосовує такий алгоритм. Далі застосовують наступний алгоритм. t =0. p t +t = / =0. p =0.

) ½ 4. перетворюється (як мінімум – центрується; див.) і перетворюється на матрицю 1. Вибрати початковий вектор =0.t ===0., Далі застосовують наступний алгоритм.t ==7. Перевірити збіжність, якщо ні, йти на 2 8.t ==f, ut ==uПісля обчислення черговий ( t-ой) PLS2 компоненти треба покласти: t) ½ 3. t + перетворюється (як мінімум – центрується; див.) і перетворюється на матрицю+1 = t +t =p, w a = Ft = +1 = F перетворюється (як мінімум – центрується; див.) і перетворюється на матрицюt p t і перетворюється (як мінімум – центрується; див.) і перетворюється на матрицю-ой) компоненти, вважаємо перетворюється (як мінімум – центрується; див.) і перетворюється на матрицю+1.

Наведемо код, який також запозичений з книги .

function = plsr(x, y, a)
% PLS: calculates a PLS component.
% output matrices є W, T, U, Q і P.
% B contains the regression coefficients and SS the sums of
% squares for the residuals.
% a is the numbers of components.
%
% For components: use all commands to end.

For i=1:a
% Calculate sum of squares. Використання функції ss.
sx =;
sy =;

% Use the function pls to calculate один компонент.
= pls (x, y);

% Calculate the residuals.
x = x - t * p";
y = y - t * q";

% Save the vectors in matrices.
W =;
T =;
U =;
Q =;
P =;
pc = X_r;

% Calculate the regression coefficients after the loop.
B = W * inv (P "* W) * Q";

% Add the final residual SS to sum of squares vectors.
sx=;
sy=;

% Make a matrix thess vectors for X and Y.
SS =;

%Calculate the fraction of SS used.
= size (SS);
tt = (SS * diag(SS(1,:).^(-1)) - ones(a, b)) * (-1)

%End of plsr

function = ss(x)
% SS: Визначте суму з квадратів Matrix X.
%

ss = sum (sum (x. * x));
%End of ss

Про обчислення PLS2 за допомогою надбудови % End of plsПро обчислення PLS1 за допомогою надбудови Chemometrics

Висновок

MatLab це дуже популярний інструмент для аналізу даних. За даними опитування, його використовують до третини всіх дослідників, тоді як програма Unsrambler застосовується лише 16% вчених.

Головним недоліком MatLab є його найвища ціна. Крім того, MatLab хороший для рутинних розрахунків. Відсутність інтерактивності робить його незручним у виконанні пошукових, дослідницьких розрахунків нових, недосліджених масивів даних.

Наразі можливості системи значно перевершують можливості початкової версії матричної лабораторії Matrix Laboratory. Нинішній MATLAB, дітище фірми The MathWorks, Inc., – це високоефективна мова інженерних та наукових обчислень. Він підтримує математичні обчислення, візуалізацію наукової графіки та програмування з використанням операційного оточення, яке легко освоюється. Найбільш відомі галузі застосування системи MATLAB:

Математика та обчислення;

Розробка алгоритмів;

Обчислювальний експеримент, імітаційне моделювання, макетування;

Аналіз даних, дослідження та візуалізація результатів;

Наукова та інженерна графіка;

Розробка програм, включаючи графічний інтерфейс користувача.

Версія MATLAB 6.1 – це передостаннє досягнення розробників (останнє – MATLAB 6.5).

Система MATLAB – це одночасно і операційне середовище та мова програмування. Одна з найбільш сильних сторін системи полягає в тому, що мовою MATLAB можуть бути написані програми для багаторазового використання. Користувач може сам написати спеціалізовані функції та програми, які оформлюються у вигляді М-файлів. Саме тому пакети прикладних програм - MATLAB Application Toolboxes, що входять до складу сімейства продуктів MATLAB, дозволяють перебувати на рівні найсучасніших світових досягнень.

Операційне середовище системи MATLAB 6.1.Операційне середовище системи MATLAB 6.1 - це безліч інтерфейсів, які підтримують зв'язок цієї системи із зовнішнім світом через діалог із користувачем через командний рядок, редактор М-файлів, взаємодію із зовнішніми системами Microsoft Word, Excel та ін.

Після запуску програми MATLAB на дисплеї комп'ютера з'являється головне вікно, що містить меню, інструментальну лінійкуз кнопками та клієнтську частину вікназі знаком запрошення. Це вікно прийнято називати командним вікномСистеми MATLAB (рис. 1).

Меню Файл(рис. 2) поєднує звичайні функції: Виправленнявідповідає за зміну змісту Вікнакоманд (скасування, повтор, вирізати, копіювати, вставити, вибрати все, видалити та ін.) та за очищення деяких вікон MATLAB; меню Вид- За оформлення Робочого столу; меню Web - запускає Web-сторінки з Internet; меню Вікно– працює з редактором/налагоджувачем М-файлів (закриває всі М-файли, робить поточним один із них); меню Допомога– працює з довідковою документацією та демонстраціями.


На особливий розгляд заслуговує опція Вподобання... (вибір характеристик), яка при виборі відкриває вікно, що включає зліва дерево об'єктів (рис. 3), а праворуч їх можливі характеристики.

Інструментальна панельКомандне вікно системи MATLAB дозволяє забезпечити простий доступ до операцій над М-файлами: створення нового М-файлу; відкриття існуючого М-файлу; видалення фрагмента; копіювання фрагмента; вставлення фрагмента; відновлення тільки виконаної операції та ін.

У клієнтської частиникомандного вікна MATLAB після запрошення можна вводити різні числа, імена змінних і знаки операцій, що в сукупності становить деякі вирази. Натискання клавіші Enter змушує систему MATLAB обчислити вираз або, якщо воно не обчислюється, повторити його. Хоча знак «;» наприкінці рядка гасить виведення результату (відлуння).

Таким чином, у клієнтській частині командного вікна MATLAB користувач може одразу писати команди, що утворюють окремі обчислення або цілу програму.

Отже, були розбору структурні частини командного вікна MATLAB. Але, крім них, існують ще кілька елементів MATLAB, які допомагають при роботі:

Команди- вікно, що містить по порядку введені раніше команди у вікні команд («історія команд»).

Робоча область– це область пам'яті MATLAB, де розміщені змінні системи. Вміст цієї області можна переглянути з командного рядка за допомогою команд who(виводить тільки імена змінних) та Також можна здійснювати виділення блоків матриць за допомогою двокрапки. Наприклад, виділимо з матриці P блок відзначений кольором(виводить інформацію про розміри масивів та тип змінної) або в окремому вікні під тією ж назвою. У ньому можна виконати такі операції: завантажити файл даних, зберегти Робочу область як (команди дозволяють відкрити та зберегти вміст робочої області у двійковому MAT-файлі), видалити вибрані змінні; відкрити вибрані змінні (де можна змінити їхнє значення). Крім цього в меню Правка можна очистити як Вікно команд та Історію команд, так і Робочу область (або виконати команду у Вікні команд: clear).

Для збереження та запуску Робочої області можна використовувати команди load та save.

приклад.

Saving to: matlab.mat

>> save my.mat

>> load my.mat

>> save my2

>> load my2

Поточний каталог- Вікно, що є своєрідним «провідником» за каталогами MATLAB.

Запустити Редактор– вікно, що відображає дерево структурних елементів MATLAB та інших встановлених разом із ним програмних засобів, які можна запускати подвійним лівим клацанням миші. Наприклад, це вікно може виглядати, як показано на рис.

Редактор/налагоджувач М-файлів– одна з найважливіших структурних частин MATLAB, яка може бути відкрита вибором відповідної опції в головному меню, на інструментальній панелі або викликана з командного рядка командою edit або edit<имя М-файла>і дозволяє створювати та редагувати М-файли.

Редактор/налагоджувач підтримує такі операції: створення нового М-файлу; відкриття існуючого М-файлу; збереження М-файлу на диску; видалення фрагмента; копіювання фрагмента; вставлення фрагмента; допомога; встановити/видалити контрольну точку; продовжити виконання та ін.

GUIDE – графічний інтерфейс користувача, де відбувається створення закінчених додатків.

Інтерактивний сеанс роботи М-файли. Інтерактивний режим – це введення користувача з клавіатури команд і виразів, в результаті виконання яких виходять необхідні числові результати, які можна легко і швидко візуалізувати вбудованими графічними засобами пакету MATLAB. Але використання цього режиму для створення та збереження конкретної програми неможливе. Тому творці MATLAB окрім Вікна команд, у якому реалізовано інтерактивний режим, виділили спеціальні файли, що містять коди мови MATLAB, та назвали M-файлами (*.m). Для створення M-файлу використовується текстовий редактор(Редактор/відладчик М-файлів).

Робота у редакторі M-файлів.Робота з командного рядка MatLab не може, якщо потрібно вводити багато команд і часто їх змінювати. Найзручнішим способом виконання команд є використання M-файлів, в яких можна набирати команди, виконувати їх все одразу або частинами, зберігати у файлі та використовувати надалі. Для роботи з M-файлами призначений редактор M-Файлів. За допомогою редактора можна створювати власні функції та викликати їх, у тому числі з командного рядка.

Розкрийте меню File основного вікна MatLab і у пункті New виберіть підпункт M-file. Новий файл відкривається у вікні редактора M-Файлів (рис. 10). Запишемо у файл програму обчислення середнього арифметичного пере-

змінних a та b, потім збережемо з ім'ям fun1.m. Порівняйте способи розв'язання задачі, подані в таблиці.

Як і більшість інших мов програмування, Matlab надає можливість використання математичних виразів, але, на відміну від багатьох з них, ці вирази в Matlab включають матриці. Основні складові виразу:

Змінні;

Оператори;

Опції.

Змінні. У Matlab немає потреби у визначенні типу змінних або розмірності. Коли Matlab зустрічає нове ім'я змінної, він автоматично створює змінну та виділяє відповідний обсяг пам'яті. Якщо змінна вже існує, Matlab змінює її склад і якщо необхідно виділяє додаткову пам'ять. Наприклад,

num_ students = 25

створює матрицю 1x1 з ім'ям num_ studentsі зберігає значення 25 її єдиному елементі.

Імена змінних складаються з букв, цифр або символів підкреслення. Matlab використовує лише перші 31 символ імені змінної. Matlab чутливий до регістрів, він розрізняє великі і малі літери. Тому Aі перетворюється (як мінімум – центрується; див.) і перетворюється на матрицю- не та сама змінна. Щоб побачити матрицю, пов'язану зі змінною, просто введіть назву змінної.

Числа. Matlab використовує прийняту десяткову систему числення, з необов'язковою десятковою точкою та знаками плюс-мінус для чисел. Наукова система числення використовує букву eвизначення множника ступеня десяти. Уявні числа використовують iабо jяк суфікс. Деякі приклади правильних чисел наведені нижче:

Усі числа для зберігання використовують формат long, це числа з плаваючою точкою володіють обмеженою точністю - приблизно 16 значущих цифр і обмеженим діапазоном - приблизно від 10 -308 до 10 308 .

Оператори.Вирази використовують звичайні арифметичні операції та правила старшинства (табл. 1).

Таблиця 1

Арифметичні операції пакету Matlab

Опції. Matlab надає велику кількість елементарних математичних функцій, таких як abs, sqrt, exp, sin. Обчислення квадратного кореня чи логарифма негативного числа є помилкою: у разі результатом є відповідне комплексне число. Matlab також надає і більш складні функції, включаючи функцію Гамма і функції Бесселя. Більшість із цих функцій мають комплексні аргументи. Щоб вивести список усіх елементарних математичних функцій, наберіть:

helpelfun

Щоб переглянути список усіх функцій Matlab для аналізу даних:

helpdatafun

Якщо вам потрібно дізнатися про StatisticsToolbox, введіть:

helpstats

Список елементарних функцій наведено в табл. 2.

Таблиця 2

Елементарні функції пакету Matlab

Логарифм числа на підставі:.

Для виведення складніших математичних і матричних функцій наберіть:

helpspecfun

helpelmat

відповідно.

Деякі функції, такі як sqrtі sin, - вбудовані. Вони є частиною Matlab, тому вони є дуже ефективними, але їх обчислювальні деталі важко доступні. У той час як інші функції, такі як gammaі sinh, реалізовані у m-файлах. Тому можна побачити їхній код і, у разі потреби, навіть модифікувати його.

Декілька спеціальних функцій надають значення констант, що часто використовуються:

Нескінченність з'являється при розподілі на нуль або при виконанні математичного виразу, що призводить до переповнення, тобто до перевищення realmax. Не число ( NaN) генерується при обчисленні виразів типу 0/0 або Inf/ Inf, які мають певного математичного значення.

Імена функцій не є зарезервованими, тому можна змінювати їх значення на нові, наприклад:

eps = 1. e-6

cleareps

Оператори відносинислужать для порівняння двох величин, векторів або матриць, всі оператори відносини мають дві порівнювані величини та записуються, як показано в табл. 3.

ТАМБІВСЬКИЙ ДЕРЖАВНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ


КАФЕДРА

«Інформаційні процеси та управління»

Методична розробка

для проведення лабораторного заняття №1

з дисципліни "Теорія прийняття рішень"

Назва дисципліни

найменування теми

Тема:Дослідження методів одновимірної оптимізації

Мета роботи:

Вивчення методів одновимірної оптимізації та способів їхньої алгоритмічної реалізації в середовищі багатофункціональної інтегрованої системи автоматизації математичних та науково-технічних розрахунків MATLAB 7.1;

Порівняльна оцінка за обсягом обчислювальних витрат методів: прямого сканування, дихотомії, «золотого перерізу» та методу Фібоначчі.

Література:

1. Аок М. Введення в методи оптимізації. М: Наука, 1977. 444 с.

2. Батіщев Д.І. Методи раціонального проектування. М.: «Радіо та зв'язок», 1984. 248 с.

3. Бодров В.І., Лазарєва Т.Я., Мартем'янов Ю.Ф. Математичні методи прийняття рішень: Навч. допомога. Тамбов: Вид-во Тамб. держ. тех. ун-ту, 2004. 124 с.

4. Полак Е. Чисельні методи оптимізації. М.: Світ, 1997. 376 з.

5. Хіммельблау Д. Прикладне нелінійне програмування. М.: Світ, 1975. 534 з.

6. Юдін Д.Б. Обчислювальні методи теорії ухвалення рішень. М: Наука, 1989. 316 с.

7. Кетков Ю. Л., Кетков А. Ю., Шульц М. М. MATLAB 7: програмування, чисельні методи. – СПб.: БХВ-Петербург, 2005. – 752 с

З проведення заняття

Лабораторні заняття з дисципліни "Теорія прийняття рішень" проводяться з метою поглиблення та закріплення теоретичних знань, отриманих студентами на різних видах занять та у процесі самостійного вивчення навчального матеріалу, набуття ними навичок практичної реалізації математичних методів прийняття рішень. За результатами лабораторних занять студенти мають

Теоретичний матеріал, з урахуванням якого здійснювалося моделювання, і навіть суть формалізованих у програмах фізичних процесів;

Основні методи моделювання відповідних процесів;

Виконувати вибір та оцінку впливу основних параметрів на результат моделювання;

Аналізувати та узагальнювати отримані результати.

Виконання лабораторної роботи включає три етапи: попередню підготовку до лабораторного заняття, безпосередньо заняття, звітність з лабораторного заняття.

Заняття має на меті показати зв'язок теоретичного матеріалу з практикою та навчити студентів застосовувати теорію до вирішення практичних завдань.

Лабораторні роботи побудовані таким чином, що вони не припускають знання студентами MATLAB. Кожна лабораторна робота починається з короткого опису MATLAB, де студенту подаються короткі відомості, необхідні для виконання цієї роботи.

Підготовка до заняття

Напередодні заняття студенти мають:

Ознайомиться з посібником з даного лабораторного заняття;

Повторити лекційний матеріал та вивчити пропоновану літературу з цієї теми;

Вивчити порядок виконання роботи;

Підготуватися до відповіді контрольні питання.

Порядок проведення заняття

У вступній частині заняття здійснюється прийом навчальної групи, дається зв'язок із раніше вивченим матеріалом, оголошуються тема, мета, порядок та особливості проведення даного заняття, перевіряється підготовленість навчальної групи до заняття.

Далі студенти приступають до проведення досліджень відповідно до методики. З усіх незрозумілих питань щодо лабораторного заняття студенти повинні звертатися до викладача, інженерно-технічного складу або інструктора комп'ютерного класу. Результати досліджень та висновки оформлюються у вигляді звіту з лабораторного заняття. Звіт є робочим документом студента та подається провідному викладачеві під час захисту. Далі проводиться захист звітів з лабораторного заняття, а після закінчення - підбиття підсумків заняття.

Звітність із заняття

За лабораторним заняттям студенти мають отримати залік. Принцип звітності є індивідуальним і може проводитися усно або письмово після виконання основної частини заняття. При виставленні залікової оцінки враховуються наявність, грамотність та акуратність оформлення бланка-звіту, якість виконання лабораторної роботи, результати відповідей на контрольні питання. Студенти, які не отримали залік і відсутні на даному лабораторному занятті, звітують за ним в особистий час.

Коротка характеристика MATLAB

Система MATLAB (Matrix Laboratory) складається з великої кількості спеціальних програм, що дозволяють вирішувати широкий спектр математичних та технічних завдань з різних галузей науки. Головним її елементом є ядро ​​системи MATLAB. На додаток до нього система містить близько 80 різних комплектів команд (т.зв. "Toolboxes"), що відповідають різним розділам математики, математичної фізики, проектування, зв'язку, економіки і т.д. У цій роботі використовуються базові засоби програмування MATLAB: М-файли - функції, вбудовані функції, оператори, команди і т.п.

Рис.1. Робочий стіл системи

На рис.1 представлений робочий стіл системи. Рядок меню (File, Edit, тощо) багато в чому схожий з аналогічним рядком редактора Microsoft Word. Розташований нижче ряд іконок також виконують самі операції, що у редакторі Word (крім 3-х останніх). Робочий стіл системи складається з кількох вікон, склад яких можна змінювати за допомогою команд меню Desktop.На рис.1 у верхньому вікні зліва наводиться вміст робочого простору вікно з вкладками Launch Pad та, куди поміщені описи всіх констант та функцій, введених користувачем у процесі роботи. У нижньому вікні Command Historyнаводиться послідовність виконаних команд. Розміри вікон регулюються перетягуванням кордону за допомогою миші. Головне вікно робочого столу – Command Window(Командне вікно). У командному вікні після знака ">>" набирається командний рядок, який виконується після натискання клавіші " Можна набирати в командному рядку нові вирази та знаходити їх значення.".

MATLAB дозволяє створювати програмні файли, аналогічні до інших мов програмування високого рівня. Поряд з тим, він має властивості потужного програмованого калькулятора. У цьому роботі програмна реалізація алгоритмів пошуку здійснюється з допомогою M – файлів-функцій, а запуск програм, і введення вихідних даних може здійснюватися з командного вікна.

Формат числа задається меню File(рис.1) у розділі Preferencesза допомогою функції Numeric Format.Найбільш часто використовуваними з 12 можливих є формати Short Command History Long- Коротка і довга формати чисел.

Одними з основних понять MATLAB є змінні і затвердження .

Зміннапозначається однією літерою або набором літер та цифр, що починається з літери. Число літер та цифр у наборі в сумі не повинно перевищувати дев'ятнадцять. Твердження має таку форму:

>>змінна=вираз

При введенні затвердження змінної надається вираз, який стоїть за знаком рівності, або, якщо воно включає будь-які математичні операції, то результат, який виходить після виконання цих операцій. Вводити твердження можна в М-файлі або командному вікні програми MATLAB. Знак ">>" є командною підказкою, поява якої на екрані дисплея в командному вікні вказує на те, що твердження можна вводити.

Основні арифметичні оператори наведено у табл.1.1. Під час виконання обчислень у командному вікні після натискання клавіші " Можна набирати в командному рядку нові вирази та знаходити їх значення."результат присвоюється параметру" ans", якщо відповідному виразу не присвоєно ім'я, або його імені - в іншому випадку (імена змінних, констант та функцій повинні починатися з літери (літери латинські), можуть містити цифри та символ підкреслення). Для блокування висновку результату обчислень деякого виразу після нього треба встановити знак; (крапка з комою).

Таблиця 1.1

Нехай, наприклад, потрібно обчислити вираз і результат привласнити змінну х. У цьому випадку затвердження (програма) матиме наступний вигляд (у десяткових дробах ціла частина від дробової відокремлюється крапкою):

>> x=log(1+5*((log10(100))^2-0.2*pi)/sqrt(1+2.71828^3))

Після запровадження твердження, тобто. натискання клавіші Enter, нижче відразу видається результат. Якщо результат необхідно заблокувати, тобто. не треба видавати на екран дисплея, то наприкінці затвердження потрібно поставити знак « ; (точку з комою). Попереднє вираз можна уявити і в іншій формі:

>> a=(log10(100))^2;

>> b = sqrt (1 +2.71828 ^ 3);

>> x=log(1+5*(a-0.2*pi)/b)

MATLAB має кілька вбудованих змінних: pi, eps, inf, iі j.Змінна piпозначає число , eps=2 -52 =2.2204*10 -16 – похибка операцій над числами з плаваючою точкою, inf- нескінченність ( ), iі j- уявну одиницю ( i = j= ).

Коли аргумент ліворуч не вказано, результат виразу надається загальної змінної ans.

Оператори відносини (табл. 1.2) використовують у умовних операторах, операторах циклу тощо. при реалізації алгоритмів пошуку з використанням М-функцій (підпрограми-функції записуються у файлах з розширенням m).

Таблиця 1.2

Отже, програмами в системі MATLAB є файли М текстового формату, що містять запис програм у вигляді програмних кодів.

Вхідна мова MATLAB налічує лише 9 операторів, які використовують 14 службових слів. Відповідні синтаксичні конструкції наведені у табл. 1.3.

Таблиця 1.3

Формат оператора Пояснення
var = expr Оператор присвоєння. Обчислює значення виразу expr та заносить результати обчислень у змінну var
ifумова_1 оператори_1 end Умовний оператор. Якщо справедлива умова_1, то виконується група оператори_1, якщо справедлива умова_2, то виконується група оператори_2, ... Якщо всі зазначені умови виявляються помилковими, то виконуються оператори, розташовані між else та end
switchexpr casevail оператори_1 caseval2 оператори_2 . . . . . . . . . Перемикач за значенням виразу expr. Якщо воно збігається з величиною vail , то виконується група оператора_1, якщо воно збігається з величиною val2, то виконується група оператора_2, ... Якщо значення expr не збігається з жодною з перерахованих величин, то виконуються оператори, розташовані між othervise і end
forvar=el:e3 оператори end Цикл типу арифметичної прогресії, в якому змінна var при кожному повторенні тіла циклу змінюється від початкового значення el з кроком е2 до кінцевого еЗ
whileумова оператори end Цикл з передумовою, що повторюється доти, доки істинно зазначена умова
try оператори_1 catch оператори 2 end Спроба виконати групу операторів_1. За умови, що в результаті їх виконання виникає виняткова ситуація, управління передається групі операторів_2 (обробка збійних ситуацій). Якщо помилка не виникла, то група оператора_2 не виконується
break Достроковий вихід з конструкцій типу for , while, switch, try - catch
function f1 function f2 (x1, x2, . . .) function y = f3 (xl, x2, ...) function = f4 (xl, x2, ...) Заголовок функції (xl, х2, ... - вхідні параметри; y, yl, у2, ... -вихідні параметри)
return Достроковий вихід із тіла функції

Під час написання програм-функцій потрібно, щоб ім'я М-файлу, у якому запам'ятовується програма, обов'язково збігалося з ім'ям функції.

Усі змінні, які у тілі функції, крім глобальних змінних (оголошених оператором global), вхідних і вихідних параметрів, вважаються локальними. Вони утворюють локальний робочий простір і доступні тільки в тілі функції, що їх породила, і ніякі інші функції скористатися ними не можуть.

Мова MATLAB не містить оператора goto. У зв'язку з цим у текстах m-файлів відсутні мітки операторів. Для ідентифікації рядків, у яких виникають аварійні ситуації, використовуються внутрішні номери автоматично, що присвоюються системою.

Пакет MatLab був створений компанією Math Works понад десять років тому. Робота сотень вчених та програмістів спрямована на постійне розширення його можливостей та вдосконалення закладених алгоритмів. В даний час MatLab є потужним та універсальним засобом вирішення завдань, що виникають у різних галузях людської діяльності.
Робоче середовище MatLab 6.x, MatLab 7 має зручний інтерфейс для доступу до багатьох допоміжних елементів MatLab.
Під час запуску MatLab 6.x на екрані з'являється робоче середовище , зображена на рис. 1.

Мал. 1. Робоче середовище пакету MatLab 6.x

Цей урок вивчає основи роботи (введення) в matlab.

Робоче середовище містить такі елементи:

Меню;
- панель інструментів з кнопками і списком, що розкривається;
- вікно із вкладками Launch Pad Command History Workspace,з якого можна отримати простий доступ до різних модулів ТооlBох та до вмісту робочого середовища;
- вікно із вкладками Command History Command History Current Directory,призначене для перегляду та повторного виклику раніше введених команд, а також для встановлення поточного каталогу;
- командне вікно Command Windowз командним рядком, в якому знаходиться миготливий курсор;
- Рядок стану.

Усі команди, описані у цій лабораторній роботі, слід набирати у командному рядку. Сам символ», що означає запрошення командного рядка, наведений у прикладах, набирати не потрібно. Для перегляду робочої області зручно використовувати смуги скролінгу або клавіші , для переміщення вліво або вправо та , Для переміщення вгору або вниз. Про використання клавіш , , , буде сказано додатково. Якщо раптом після переміщення по робочій області командного вікна зник командний рядок з миготливим курсором, просто натисніть .
Важливо запам'ятати, що набір будь-якої команди або виразу має закінчуватися натисканням клавіші для того, щоб програма MatLab виконала цю команду або вирахувала вираз.

Зауваження 1

Якщо в робочому середовищі MatLab 6.x відсутні деякі описані вікна, слід у меню Viewвибрати відповідні пункти: Command Window, Command History, Current Directory, Workspace, Launch Pad.

2.1. Арифметичні обчислення

Вбудовані математичні функції MatLab дозволяють знаходити значення різних виразів. MatLab надає можливість керування форматом виведення результату. Команди для обчислення виразів мають вигляд, властивий всім мов програмування високого рівня.

2.1.1. Найпростіші обчислення

Наберіть у командному рядку 1+2 та натисніть . В результаті в командному вікні MatLab відображається таке:

» 1+2
ans =
3
» |

Що зробила програма MatLab? Спочатку вона обчислила суму 1+2, потім записала результат спеціальну змінну ans і вивела її значення, рівне 3, в командне вікно. Нижче відповіді розташований командний рядок з миготливим курсором, що означає, що MatLab готова до подальших обчислень. Можна набирати в командному рядку нові вирази та знаходити їх значення.

Якщо потрібно продовжити роботу з попереднім виразом, наприклад, обчислити (1+2)/4.5, то найпростіше скористатися наявним результатом, який зберігається в змінній ans. Наберіть у командному рядку ans/4.5 (при введенні десяткових дробів використовується крапка) та натисніть , Виходить:

» ans/4.5
ans =
0.6667
» |

Примітка 2

Вигляд, у якому виводиться результати обчислень, залежить від формату виведення, встановленого MatLab. Далі пояснено, як поставити основні формати виведення.

2.1.2. Формати виведення результату обчислень

Необхідний формат виведення результату визначається користувачем у меню MatLab. Виберіть у меню Fileпункт Preferences.На екрані з'явиться діалогове вікно Preferences.Для встановлення формату виводу слід переконатися, що у списку лівої панелі вибрано пункт Command Window. Завдання формату проводиться з списку, що розкривається Numeric formatпанелі Text display.
Розберемо поки тільки формати, що найчастіше використовуються. Виберіть shortу списку, що розкривається Numeric formatу MatLab 6.x. Закрийте діалогове вікно, натиснувши кнопку ОК. Наразі встановлено короткий формат з плаваючою точкою short для виведення результатів обчислень, при якому на екрані відображаються лише чотири цифри після десяткової точки. Наберіть у командному рядку 100/3 та натисніть .
Результат виводиться у форматі short:

» 100/3
ans =
33.3333

Цей формат виводу збережеться для всіх наступних обчислень, якщо не буде встановлено інший формат. Зауважте, що у MatLab можлива ситуація, коли при відображенні занадто великого чи малого числа результат не укладається у формат short. Обчисліть 100000/3, результат виводиться в експоненційній формі:

» 100000/3
ans =
З.ЗЗЗЗе+004

Те саме відбудеться і при знаходженні 1/3000:

» 1/3000
ans =
З.ЗЗЗЗе-004

Однак, початкове встановлення формату зберігається і при подальших обчисленнях, для невеликих чисел виведення результату знову відбуватиметься у форматі short.

У попередньому прикладі пакет MatLab вивів результат обчислень у експоненційної форми.Запис 3.3333е-004 означає 3.3333*10-4 або 0.00033333. Аналогічно можна набирати числа у виразах. Наприклад, простіше набрати 10е9 або l.0e10, ніж 1000000000, а результат буде той самий. Пробіл між цифрами та символом е при введенні не допускається, т.к. це призведе до повідомлення про помилку:

» 10 е9
??? 10 е9

Якщо потрібно отримати результат обчислень більш точно, то слід вибрати в списку, що розкривається long. Результат буде відображатися у довгому форматі з плаваючою точкою long із чотирнадцятьма цифрами після десяткової точки. Формати short e Command History long eпризначені для виведення результату в експоненційній формі з чотирма та п'ятнадцятьма цифрами після десяткової точки відповідно. Інформацію про формати можна отримати, набравши в командному рядку команду help із аргументом format:

У командному вікні з'являється опис кожного формату.

Формат виведення можна задавати безпосередньо з командного рядка за допомогою команди format. Наприклад, для встановлення довгого з плаваючою точкою формату виведення результатів обчислень слід ввести команду format long e у командному рядку:

» format long e
» 1.25/3.11
ans =
4.019292604501608е-001

Зверніть увагу, що команда help format виводить на екран назву форматів великими літерами. Проте команда, яку треба запровадити, складається із малих літер. До цієї особливості вбудованої довідки help треба звикнути. MatLab розрізняє великі та малі літери. Спроба набору команди великими літерами призведе до помилки:

» FORMAT LONG E
??? FORMAT LONG.
Missing operator, comma, або semi-colon.

Для зручнішого сприйняття результату MatLab виводить результат обчислень через рядок після виразу, що обчислюється. Однак іноді буває зручно розмістити більше рядків на екрані, для чого слід вибрати перемикач compact (File, Numeric display)з списку, що розкривається. Додавання порожніх рядків забезпечується вибором looseіз списку, що розкривається Numeric display.

Примітка 3

Усі проміжні обчислення MatLab здійснює подвійною точністю,незалежно від того, який формат виводу встановлено.

2.2. Використання елементарних функцій

Припустимо, що потрібно обчислити значення наступного виразу:

Введіть у командному рядку цей вираз відповідно до правил MatLab та натисніть :

» ехр(-2.5)*lоg(11.3)^0.3-sqrt((sin(2.45*pi)+cos(3.78*pi))/tan(3.3))

Відповідь виводиться у командне вікно:

ans =
-3.2105

При введенні виразу використано вбудовані функції MatLab для обчислення експонентів, натурального логарифму, квадратного кореня та тригонометричних функцій. Які вбудовані елементарні функції можна використовувати та як їх викликати? Наберіть у командному рядку команду help eifun, при цьому в командне вікно виводиться список усіх вбудованих елементарних функцій з коротким описом. Аргументи функцій полягають у круглі дужки, імена функцій набираються малими літерами. Для введення числа лдостатньо набрати pi в командному рядку.

Арифметичні операції в MatLab виконуються в звичайному порядку, властивій більшості мов програмування:

Зведення у ступінь ^;
- множення та розподіл *, /;
- додавання та віднімання +, -.

Для зміни порядку виконання арифметичних операторів слід використовувати круглі дужки.
Якщо тепер потрібно обчислити значення виразу, схожого на попереднє, наприклад

то необов'язково його знову набирати у командному рядку. Можна скористатися тим, що MatLab запам'ятовує всі команди, що вводяться. Для повторного занесення їх у командний рядок служать клавіші , . Обчисліть даний вираз, зробивши наступні кроки.

1. Натисніть клавішу<­>, при цьому в командному рядку з'явиться введений вираз.
2. Внесіть до нього необхідні зміни, замінивши знак мінус на плюс і квадратний корінь на зведення в квадрат (для переміщення рядком з виразом служать клавіші , , , ).
3. Обчисліть змінений вираз, натиснувши .

Виходить

»ехр(-2.5)*log(11.3)^0.3+((sin(2.45*pi)+cos(3.78*pi))/tan(3.3))^2
ans =
121.2446

Якщо необхідно отримати більш точний результат, слід виконати команду format long e, потім натискати клавішу<­>до тих пір, поки в командному рядку не з'явиться необхідний вираз, і обчислити його, натиснувши .

» format long e
» exp(-2.5)*log(11.3)^0.3+((sin.(2.45*pi)+cos(3.78*pi))/tan(3.3))^2
ans =
1.212446016556763e+002

Вивести результат останнього виявленого виразу в іншому форматі можна без повторного обчислення. Слід змінити формат командою short, а потім переглянути значення змінної ans, набравши її в командному рядку і натиснувши :

» format short
» ans
ans =
121.2446

У робочому середовищі MatLab 6.x для виклику раніше введених команд є зручний засіб - вікно Command Historyз історією команд. Історія команд містить час та дату кожного сеансу роботи з MatLab 6.x. Для активізації вікна Command Historyнеобхідно вибрати вкладку з однойменною назвою. Поточна команда у вікні зображена на блакитному тлі. Якщо клацнути на будь-якій команді у вікні лівою кнопкою миші, то ця команда стає поточною. Для її виконання в MatLab треба застосувати подвійне клацання миші або вибрати рядок із командою за допомогою клавіш , та натиснути клавішу . Зайву команду можна забрати з вікна. Для цього її потрібно зробити поточною та видалити за допомогою кнопки . Можна виділити кілька команд, що йдуть поспіль, за допомогою комбінації клавіш. +, +та виконати їх за допомогою або видалити клавішею . Виділення послідовно команд можна проводити лівою кнопкою миші з одночасним утримуванням клавіші . Якщо команди не йдуть одна за одною, для їх виділення слід використовувати ліву кнопку миші з утримуванням клавіші .

При натисканні правою кнопкоюмиші по області вікна Command Historyз'являється спливаюче меню. Вибір пункту Сміттюпризводить до копіювання команди до буфера Windows. За допомогою Evaluate Selectionможна виконати зазначену групу команд. Для видалення поточної команди призначено пункт Delete Selection. Для видалення всіх команд до поточної - Delete to Selection,для видалення всіх команд - Delete Entire Історія.

При обчисленнях можливі деякі виняткові ситуації, наприклад, поділ на нуль, які в більшості мов програмування призводять до помилки. При розподілі позитивного числа на нуль у MatLab виходить inf (нескінченність), а при розподілі негативного числа на нуль виходить -inf (мінус нескінченність) і видається попередження:

» 1/0
Warning: Divide by zero.
ans =
Inf

При розподілі нуля на нуль виходить NaN (не число) і також видається попередження:

» 0/0
Warning: Divide by zero.
ans =
NaN

При обчисленні, наприклад, sqrt(-1) , ніякої помилки чи попередження не виникає. MatLab автоматично переходить у область комплексних чисел:

»sqrt(-1.0)
ans =
0+l.0000i

Як дізнатися, які вбудовані елементарні функції можна використовувати та як їх викликати? Наберіть у командному рядку команду help eifun, у командне вікно виводиться список всіх вбудованих елементарних функцій зі своїми коротким описом.