Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторна робота №5.doc
Скачиваний:
4
Добавлен:
23.09.2019
Размер:
1.28 Mб
Скачать

9

Лабораторна робота №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”.

Глобальні змінні

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

Fипсtіоп Functions

Окремий клас функціональних файлів становлять так звані " fипсtіоп functions", які оперують з нелінійними функціями скалярних змінних. Такі функції працюють у середовищі інших функцій і їх використовують для розв'язування таких задач:

• знаходження розв'язків систем алгебричних рівнянь;

• оптимізації;

• числового інтегрування;

• розв'язування систем диференційних рівнянь.

МАТLАВ подає нелінійну функцію у вигляді функціонального m-файла.

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