Пакет MatLab був створений компанією Math Works більше десяти років тому. Робота сотень вчених і програмістів спрямована на постійне розширення його можливостей і вдосконалення закладених алгоритмів. В даний час MatLab є потужним і універсальним засобом вирішення задач, що виникають в різних областях людської діяльності.
Робоче середовище MatLab 6.x,MatLab 7 має зручний інтерфейс для доступу до багатьох допоміжних елементів MatLab.
пякщо запуску MatLab 6.x на екрані з'являється робоче середовище, зображена на рис. 1.
Рис. 1. Робоче середовище пакету MatLab 6.x
Даний урок вивчає основи роботи (введення) в matlab.
Робоче середовище містить наступні елементи:
- меню;
- панель інструментів з кнопками і спадним списком;
- вікно з вкладками Launch Pad і Workspace, з якого можна отримати доступ до різноманітних модулів ТооlBох і до вмісту робочого середовища;
- вікно з вкладками Command History і Current Directory, призначене для перегляду і повторного виклику раніше введених команд, а також для встановлення поточного каталогу;
– командне вікно Command Window з командним рядком, у якому перебуває курсор блимає;
- рядок стану.
Всі команди, описані в цій лабораторній роботі, слід набирати в командному рядку. Сам символ », що означає запрошення командного рядка, наведений у прикладах, набирати не потрібно. Для перегляду робочої області зручно використовувати смуги прокрутки або клавіші <Home>, <End> для переміщення вліво або вправо і <PageUp>, <PageDown> для переміщення вгору або вниз. Про використання клавіш <up>, <down>, <rigth>, <left> буде повідомлено додатково. Якщо раптом після переміщення по робочої області вікна командного пропала командний рядок з миготливим курсором, просто натисніть <Enter>.
Важливо запам'ятати, що набір будь-якої команди або вирази повинен закінчуватися натисканням на клавішу <Enter> для того, щоб програма MatLab виконала цю команду або вирахувала вираз.
Примітка 1
Якщо в робочому середовищі MatLab 6.x відсутні деякі описані вікна, то варто в меню View вибрати відповідні пункти: Command Window, Command History, Current Directory, Workspace, Launch Pad.
2.1. Арифметичні розрахунки
Вбудовані математичні функції MatLab дозволяють знаходити значення різних виразів. MatLab надає можливість управління форматом виводу результату. Команди для обчислення виразів мають вигляд, властивий всім мов програмування високого рівня.
2.1.1. Найпростіші обчислення
Введіть у командному рядку 1+2 і натисніть <Enter>. В результаті в командному вікні MatLab відображається таке:
» 1+2
ans =
3
» |
Що зробила програма MatLab? Спочатку вона назвала суму 1+2, потім записала результат в спеціальну змінну ans і вивела її значення, рівне 3, в командне вікно. Нижче відповіді розташована командний рядок з миготливим курсором, що позначає, що MatLab готова до подальших обчислень. Можна набирати в командному рядку нові вирази і знаходити їх значення.
Якщо потрібно продовжити роботу з попереднім виразом, наприклад, обчислити (1+2)/4.5, то найпростіше скористатися вже наявними результатом, який зберігається у змінній ans. Введіть у командному рядку ans/4.5 (при введенні десяткових дробів використовується точка) і натисніть <Enter>, виходить:
» 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 і натисніть <Enter>.
Результат виводиться у форматі 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
Missing operator, comma, or semi-colon.
Якщо потрібно отримати результат обчислень більш точно, то слід вибрати в списку long. Результат буде відображатися в довгому форматі з плаваючою точкою long з чотирнадцятьма цифрами після десяткової крапки. Формати short e і long e призначені для виведення результату в експоненційної формі з чотирма і п'ятнадцятьма цифрами після десяткової крапки відповідно. Інформацію про форматах можна отримати, набравши в командному рядку команду help з аргументом format:
» help format
У командному вікні з'являється опис кожного з форматів.
Задавати формат виводу можна безпосередньо з командного рядка за допомогою команди format. Наприклад, для установки довгого з плаваючою точкою формату виводу результатів обчислень слід ввести команду long format e у командному рядку:
» long format e
» 1.25/3.11
ans =
4.019292604501608е-001
Зверніть увагу, що команда help format виводить на екран назва форматів прописними літерами. Проте команда, яку треба додати, складається з літер. До цієї особливості внутрішньої довідки help треба звикнути. MatLab розрізняє великі та малі літери. Спроба набору команди прописними літерами призведе до помилки:
» LONG FORMAT E
??? FORMAT LONG.
|
Missing operator, comma, or semi-colon.
Для більш зручного сприйняття результату MatLab виводить результат обчислень через рядок після обчислюваного вирази. Однак іноді буває зручно розмістити більше рядків на екрані, для чого слід вибрати перемикач compact (File, Numeric display) з розкривного списку. Додавання порожніх рядків забезпечується вибором loose з розкривного списку Numeric display.
Примітка 3
Всі проміжні обчислення MatLab виробляє подвійною точністю, незалежно від того, який формат виводу встановлений.
2.2. Використання елементарних функцій
Припустимо, що потрібно обчислити значення наступного виразу:
.
Введіть у командному рядку це вираження згідно з правилами MatLab і натисніть <Enter>:
» ехр(-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 запам'ятовує всі команди, що вводяться. Для повторного занесення їх в командний рядок використовуйте клавіші <up>, <down>. Обчисліть даний вираз, виконавши наступні кроки.
1. Натисніть клавішу <>, при цьому в командному рядку з'явиться введене раніше вираз.
2. Внесіть необхідні зміни, замінивши знак плюс і мінус на квадратний корінь на зведення в квадрат (для переміщення по рядку з виразом використовуйте клавіші <right>, <left>, <Home>, <End>).
3. Обчисліть змінене вираз, натиснувши <Enter>.
Виходить
»ехр(-2.5)*log(11.3)^0.3+((sin(2.45*pi)+cos(3.78*pi))/tan(3.3))^2
ans =
121.2446
Якщо необхідно отримати більш точний результат, то слід виконати команду long format e, потім натискати клавішу <> до тих пір, поки в командному рядку не з'явиться потрібний вирази, і обчислити його, натиснувши <Enter>.
» long format 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, набравши її в командному рядку і натиснувши <Enter>:
» format short
» ans
ans =
121.2446
В робочому середовищі MatLab 6.x для виклику раніше введених команд є зручний засіб - вікно Command History з історією команд. Історія команд містить дату та час кожного сеансу роботи з MatLab 6.x. Для активізації вікна Command History необхідно вибрати вкладку з однойменною назвою. Поточна команда у вікні зображена на синьому тлі. Якщо клацнути на якийсь команді у вікні лівою кнопкою миші, то дана команда стає поточної. Для її виконання в MatLab треба застосувати подвійне клацання миші або вибрати рядок з командою за допомогою клавіш <up>, <down> і натиснути клавішу <Enter>. Зайву команду можна прибрати з вікна. Для цього її треба зробити поточної і видалити за допомогою клавіші <Delete>. Можна виділити кілька що йдуть підряд команд за допомогою комбінації клавіш <Shift>+<up>, <Shift>+<down> і виконати їх за допомогою <Enter> або видалити клавішею <Delete>. Виділення послідовно що йдуть команд можна виробляти лівою кнопкою миші з одночасним утримуванням клавіші <Shift>. Якщо команди не йдуть одна за одною, то для їх виділення слід використовувати ліву кнопку миші з утриманням клавіші <Ctrl>.
При клацанні правою кнопкою миші по області вікна Command History з'являється спливаюче меню. Вибір пункту Сору призводить до команди копіювання в буфер Windows. За допомогою Evaluate Selection можна виконати зазначену групу команд. Для видалення поточної команди призначений пункт Delete Selection. Для видалення всіх команд до поточної - Delete to Selection, для видалення всіх команд - Delete Entire History.
При обчисленнях можливі деякі надзвичайні ситуації, наприклад ділення на нуль, які в більшості мов програмування призводять до помилки. При поділі додатного числа на нуль в 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, при цьому в командне вікно виводиться список всіх вбудованих елементарних функцій з коротким їх описом.