Лабораторна робота №5 Використання m-файлів для інженерних розрахунків
1 Мета роботи
Отримати навички програмування у MatLab, навчитися використовувати програми для інженерних розрахунків
2 Завдання на лабораторну роботу
2.1 Ознайомитись зі змістом пункту 3 методичних вказівок.
2.2 Зробити файли сценарії та файли функції на основі індивідуальних завдань до лабораторної роботи №4 за порадою викладача.
2.3 Згенерувати сигнал, згідно свого варіанта, зробити зашумлення з використанням різних типів випадкових процесів (додаток до лабораторної роботи №5).
2.4 Скласти звіт, відповісти на контрольні питання.
3 Основні теоретичні відомості
3.1 Структура m-файлів
Робота в командному режимі (сесія) не є програмуванням. Програми у МАТLAВ - це так звані m-файли. Для створення такого файла використовується текстовий редактор (Debugger), за допомогою якого формується послідовність функцій та команд МАТLAВ-а, що будуть виконуватися програмою: M-file/New/File.
Розрізняють два види m-файлів:
• Script - файл сценарiй, який не має ні вхідних, ні вихідних аргументів. Працює тільки з даними робочої області. Використовуються як основні керуючі програми.
• Function – файл-функцiя який має вхідні та вихідні аргументи. Внутрішні змінні є локальними змінними функції.
Усі створені m-файли мають розширення .m, ,так що відрізнити по типу script-файл від файлу-функції неможливо. Якщо є декілька однаково названих m-файлів, МАТLАВ виконає один, який першим розміщений у заданому шляху для пошуку. Для виклику створеного m-файлу потрібно вибрати його назву, виконавши команду File/Open ( меню File).
Розглянемо детальніше:
Script
У випадку script МАТLАВ просто виконує знайдені у файлі команди.
Структура script-файлу має такий вигляд:
% Основний коментар - знак % має бути в першій позиції
% Додатковий коментар стрічки, інакше команда help name
Тіло файлу з будь-якими виразами не бути його приймати.
Таким чином, файл являє собою зафіксовану послідовність операцій, повністю аналогічну тій, що раніш ви використовували у сесії. Так, приклад у лабораторній роботі №4 з пошуком кореню засобом ділення відрізку може бути script-файлом, якщо буде записаний за допомогою Debugger-а, збережений за якоюсь назвою і викликаний будь-яким засобом (File/Open ім’я файлу або у командному режимі >> ім’я файлу).
Script оперує над даними робочої області або даними, створеними ним під час робти. Створені під час роботи змінні залишаються в робочій області і є доступними для подальшої роботи. Додатково можливий графічний вивід результатів роботи за використання спеціальних функцій пакета, наприклад, рlot.
Function
Функціональний m-файл має вхідні та вихідні параметри. Запис у такому файлі починається з рядка з такою структурою:
function [вихідні аргументи]= назва функції (вхідні аргументи).
Назва функції повинна відповідати імені файла, в якому ця функція зберігається. Вхідні та вихідні змінні в списках відокремлюються комами. Функція оперує зі змінними своєї власної робочої області, відокремленої від робочої області пакета.
Вхідні та вихідні аргументи та всі змінні, що вживаються в середині функції, мають локальний характер. Вони не мають ніяких зв'язків зі змінними робочої області, навіть за умови їх однакової назви. Це твердження не стосується двох наступних випадків:
• локальні змінні визначаються через назви спеціальних змінних;
• змінні задекларовані як глобальні.
Після рядка, в якому задекларовано назву функції та списки вхідних та вихідних параметрів, зазвичай, як у випадку script-файлу, розміщують рядки коментарів до цієї функції. Ці рядки також можна вивести з командного рядка на екран за допомогою команди
help назва функції.
Для ушкодження помилок при використаннi функцii потpiбно додержуватись таких правил:
1. Наприкiнцi введеноi функцii (останньою стрiчкою) ставити слово return (для версії MatLab 6.х це не обов’язково).
2. Пiсля математичного виразу функцiї потрiбно встановити знак ‘;’. Це попереджує вивід у командне вікно результату його виконання при роботі програми.
3. Задля наочності кожен оператор краще записувати в окремій стрічці тексту програми. Якщо ви все ж таки розмістили в одній стрічці декілька операторів, їх потрібно розділити символом „ ; ” або „ , ”.
4. Довгий оператор, якщо він не вміщується у одну стрічку, можна переносити, при цьому попередня стрічка повинна закінчуватися трьома крапками „ … ”.
5. Стрічка, що починається символом „ % ” є стрічкою-коментарем. Вона не виконується на відміну від стрічок, що вміщують оператори.
6. Система розділяє верхній та нижній регістри у імені змінної.
Наприклад: у вiкнi редактора Matlab потрiбно ввести:
function z=fun(x,y)
z=x^2+y^2;
return
Після цього усі розрахунки підуть гладко і можна буде обчислити, наприклад, вираз 2*fun(2,3) набравши його безпосередньо в робочій області Matlab.
Такі файли можна у середовищі пакета викликати зі списком вхідних і вихідних параметрів, що має менший розмір, ніж задекларований під час стороння функції. Це стає можливим за використання у функції змінних nargin та nargout, які визначають кількість вхідних та вихідних параметрів під час звертання до функції.
Примітка: файл потрібно сохраняти, даючи йому ім”я таке саме як і ім”я функції. (Так, у попередньому прикладі це „fun”.
Глобальні змінні
Значення змінних, що задекларовані в робочій області та у файлі функції за допомогою команди g1оbа1, є видимим як у робочій області, так і в середовищі викликаної функції. Декларація змінної мусить бути зроблена перед її використанням. Хоч це не є обов'язковим, назву таких змінних записують за допомогою великих букв, що дає змогу відрізнити їх від інших змінних і уникнути багатьох помилок, пов'язаних з їх використанням.
Fипсtіоп Functions
Окремий клас функціональних файлів становлять так звані " fипсtіоп functions", які оперують з нелінійними функціями скалярних змінних. Такі функції працюють у середовищі інших функцій і їх використовують для розв'язування таких задач:
• знаходження розв'язків систем алгебричних рівнянь;
• оптимізації;
• числового інтегрування;
• розв'язування систем диференційних рівнянь.
МАТLАВ подає нелінійну функцію у вигляді функціонального m-файла.
Для детальнішого розуміння розглянемо використання теоретичної частини на прикладах.