Відмінності між версіями «Програмування в MATLAB»
Tkanov (обговорення • внесок) |
Tkanov (обговорення • внесок) |
||
Рядок 66: | Рядок 66: | ||
>> y = F1(1,0.1) | >> y = F1(1,0.1) | ||
− | + | Отримаємо результат: '''y = 4.1421e-004''' <br> | |
− | + | ||
− | >> zet = 0 : 0.3 : 1.8; | + | >> zet = 0 : 0.3 : 1.8; |
>> my = F1(zet,1) | >> my = F1(zet,1) | ||
− | + | Результат: '''Warning: Divide by zero''' ''Ділення на нуль'' <br> | |
− | |||
== '''Графічне оформлення результатів''' == | == '''Графічне оформлення результатів''' == |
Версія за 16:24, 30 травня 2009
Зміст
Програмування в середовищі MATLAB
Інколи при роботі з MATLAB в режимі калькулятора з’являється необхідність повторення проведених дій. Тому розрахунки зі складними переходами по визначеним умовам, з часто повторюваними діями потребують спеціального оформлення у вигляді програм.
Функції функцій
Багато важливих універсальних процедур в MATLAB використовують в якості змінного параметра ім'я функції, з якою вони оперують. Тому при зверненні до таких процедур необхідно вказувати ім'я М-файла, що містить текст іншої процедури (функції).
Такі процедури називають функціями функцій.
Для того щоб скористатись функцією функцій, користувач повинен створити М-файл, в якому буде вираховуватись значення потрібної («внутрішньої») функції по відомому значенню її аргументу.
М-файли і їх типи.
Функції та процедури що працюють в середовищі MATLAB зберігаються у вигляді коду в М-файлах.
В середовищі Матлаб програми створюються або за допомогою власного вбудованого редактора або будь-якого зовнішнього.
М-файли є двох типів:
- Файли-функції
- файли-сценарії.
Зберігаються з розширенням .m, тому їх неможна розрізнити по розширенню імені.
Як файли-функції оформлюються окремі процедури і функції, ті частини програми, що розраховані на неодноразове використання файлами-сценаріями або іншими процедурами при змінених значеннях вихідних параметрів , і не можуть бути виконані, якщо до того не задані значення вхідних змінних.
Правила оформлення М-файлів:
- Кожен оператор записується в новому рядку.
- В рядку можна розмістити декілька операторів через крапку з комою або кому.
- Довгий оператор можна записувати в дек. рядків. При цьому рядок повинен завершуватись трьома крапками.
- Для виводу проміжних результатів треба НЕ ставити в кінці оператора знак “;”.
- Коментарій виділяється знаком “%”.
- В програмах MATLAB немає символу що позначає кінець програми.
- Змінні не описуються і не оголошуються. Будь-яке ім'я при виконанні сприймається як ім'я “змінної”.
Найбільша різниця в різному сприйманні системою імен змінних в файлах цих двох типів.
В файлах функціях всі імена змінних, що знаходяться всередині файлу, а також змінні, визначені в заголовку сприймаються як локальні.
В файлах-сценаріях всі використовувані змінні створюють деяку робочу область (workspace). Значення змінних зберігаються на протязі всього сеансу роботи з системою. Робоча область єдина для всіх файлів-сценаріїв що викликаються під час роботи з системою.
Перший рядок (заголовок) файлу функції має наступний вигляд:
function <ПВХВ> = <ім'я процедури>(<ПВВ>)
ПВХВ – перелік вхідних величин ПВВ – перелік вихідних величин
Файли-сценарії такого рядка не мають.
Приклад виклику функції функції
quad(‘<ім'я функції>’, a, b) ode45(‘<ім'я функції>’, tspan, y0, options)
Приклад М-файла
Файл ► Новий ► М-файл
function y = F1(x,d)
% Процедура, що вираховує значення
% функції
% y = (d^3)*ctg(x)*sqrt(sin(x)^4 – cos(x)^4).
% Звертання (виклик) – y = F1(x,d).
y = (d^3)*ctg(x)*sqrt(sin(x)^4 – cos(x)^4)
Зберегти файл з ім'ям F1.m
Робота прикладу
>> y = F1(1,0.1)
Отримаємо результат: y = 4.1421e-004
>> zet = 0 : 0.3 : 1.8; >> my = F1(zet,1)
Результат: Warning: Divide by zero Ділення на нуль
Графічне оформлення результатів
Обчислювальна програма в більшості випадків призначена для дослідження деяких явищ, поведінки пристроїв що розроблюються. Інформація що отримується в результаті виконання таких програм, як правило має вигляд ряду чисел кожне з яких відповідає значенню конкретного параметра (аргументу).Таку інформацію зручно представляти в графічному вигляді. Для створення графічного інженерного документа в MATLAB необхідно використовувати функцію subplot. Розглянемо як виконується розбивка графічного вікна на окремі поля для графіків і текстове під вікно. Наприклад треба розділити все поле графічного вікна на три частини так, щоб в верхній частині вікна знаходилось поле виводу тексту, а в нижніх двох третинах – єдине поле для виводу графіків. Це можна зробити так: • перед виводом текстової інформації в графічне вікно треба використати команду subplot(3,1,1), за допомогою якої графічний екран буде розділений на три однакові частини по вертикалі (підвікна) і для наступного виводу буде використана верхня частина. • Для того щоб вивести графіки в графічне під вікно введіть команду subplot(3,1,[2 3]), в результаті виконання графічне вікно, як і раніше, розділиться по вертикалі на три підвікна, але для виводу графічної інформації використано простір що зайнятий двома нижніми під вікнами.
Вивід тексту в графічне вікно
Якщо сформувати підвікна, не виконуючи ніяких операцій по виводу графіків або тексту, то в вікні фігури з’явиться зображення пустих підвікон. Наприклад якщо ввести команди (слайд 12) В результаті отримаємо графічне вікно (слайд ?) Ви бачите що з’явилось зображення осей координат з зазначенням поділок по осям. Початковий діапазон зміни координат по обох осях підвікна встановлений по замовчанню від 0 до 1. Поле, призначене для виводу графіків, займає не весь простір відповідного підвікна – залишається простір для виводу заголовка графіка, надписів по осям координат та інше. Для того, щоб вивести текст в одне з підвікон, треба спочатку видалити із даного підвікна зображення осей координат і надписів на них. Це можна зробити за допомогою команди axis(‘off’). Якщо виконати цю команду після попередніх, в вікні фігури зникає зображення координатних осей останнього підвікна. Після цього можна починати виведення тексту в нього. Основною функцією, що забезпечує вивід тексту в графічне вікно є функція text. Звернення до неї має наступний вигляд: Слайд (14) Дана функція здійснює вивід конкретного тексту визначеним шрифтом вказаного розміру, початок тексту знаходиться в точці підвікна з координатами х і у відповідного поля графіка підвікна. При цьому координати х і у виміряються в одиницях величин що відкладáються вздовж відповідних осей графіка підвікна. Вказані координати виміряються в діапазоні від 0 до одиниці. Тому щоб вивід тексту починався в точці всередині поля графіка, його координати х і у повинні знаходитись в цьому діапазоні. Але можна використовувати і більш широкий діапазон, враховуючи те, що поле підвікна більше поля його графіка. Приклади звернення Слайд (15)
Ввід і вивід інформації в діалоговому режимі
Для того, щоб забезпечити взаємодію з користувачем в процесі виконання М-файла, в системі МАТЛАБ використовуються команди: disp, sprintf, input, menu, keyboard, pause. Команда disp здійснює вивід значень вказаної змінної або вивід тексту в командне вікно. Звертання до неї має вигляд: Слайд 16 Особливістю даної команди являється те, що аргумент у неї може бути тільки один. Ввід інформації з клавіатури в діалоговому режимі можна здійснити за допомогою функції input. Звернення Слайд 17 Приведе до наступних дій, - виконання програми призупиняється і комп’ютер чекає натиснення Ентер після введення даних з клавіатури. Гарним інструментом вибору однієї з альтернатив майбутнього обчислювального процесу є функція menu , яка створює поточне вікно користувацького меню. Звернення