ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 30.05.2024

Просмотров: 23

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Лабораторна робота 4

Тема: Програмування в MATLAB. Чисельне вирішення нелінійних рівнянь.

Мета: навчитися програмувати уMATLAB, створювати файл-функції для рішення нелінійних рівнянь

Теоретичні відомості

4.1.Основи редагування і відладки m-файлів

·Інтерфейс редактора/відладчика m-файлів

Для підготовки, редагування і відладкиm-файлів служить спеціальний багатовіконний редактор. Він виконаний як типовий додатокWindows. Редактор можна викликати командоюedit з командного рядка або командоюNew > M-file з менюFile. Після цього у вікні редактора можна створювати свій файл, користуватися засобами його

відладки

і

запуску. Перед

запуском

файлу

його

необхідно

записати ,на

використовуючи команду Filе > Save as в меню редактора.

 

 

 

Мал. 1. Редактор/відладчик файлів при записі файлу на диск

На мал. 1 показано вікно редактора/відладчика з текстом простого файлу у вікні

редагування і відладки.

 

 

 

 

 

Після

запису

файлу

на

диск

можна ,

відмітитищокомандаRun в

меню Tools (Інструменти)

редактора

стає

активною(до запису

файлу на диск вона

пасивна) і дозволяє провести запуск файлу. Запустивши команду Run, можна спостерігати виконання m-файла; у нашому випадку— це побудова малюнка в графічному вікні і виведення напису про ділення на нульв ході обчислення функціїsin(x) / x в командному вікні системи.

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

у файловій системі MATLAB.

 

редактором/відладчикомрядка

програми

в

ньому

Для

зручності

роботи

з

нумеруються в послідовному порядку. Редактор є багатовіконним. Вікно кожної програми оформляється як вкладка.

· Колірні виділення і синтаксичний контроль

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

·ключові слова мови програмування — синій колір;

·оператори, константи і змінні — чорний колір;

·коментарі після знаку % — зелений колір;

1


·символьні змінні (у апострофах) — зелений колір;

·синтаксичні помилки — червоний колір.

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

· Панель інструментів редактора і відладчика

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

Мал. 2. Панель інструментів редактора/відладчика m-файлів Призначення кнопок панелі інструментів редактора/відладчика наступне:

·New — створення нового m-файла;

·Open — виведення вікна завантаження файлу;

·Save — запис файлу на диск;

·Print — друк вмісту поточного вікна редактора;

·Cut — вирізування виділеного фрагмента і перенесення його в буфер;

·Сміттю — копіювання виділеного об'єкту в буфер;

·Paste — розміщення фрагмента з буфера у позиції текстового курсора;

·Undo — відміна попередньої операції;

·Redo — повтор скасованої операції;

·Find text — знаходження вказаного тексту;

·Show function — показ функції;

·Set/Clear Breakpoint — установка/скидання точки переривання;

·Clear All Breakpoints — скидання всіх точок переривання;

·Step — виконання кроку трасування;

·Step In — покрокове трасування із заходом в m-файли, що викликаються;

·Step Out — покрокове трасування без заходу в m-файли, що викликаються;

·Save and Run — збереження і запуск;

·Exit Debug Mode — вихід з режиму відладки.

З призначенням ряду з цих кнопок ви вже знайомі, оскільки воно аналогічно описаному раніше для основного вікна MATLAB.

4.2.Алфавіт мови програмування

УMATLAB, як і в інших системах, використовуються всі букви латинського алфавіту від А до Z і арабських цифр від 0 до 9. Як і в С++, великі і малі букви це різні символи. Окрім букв латинського алфавіту використовуються всі спеціальні символи клавіатури комп'ютера.

4.3.Елементарні функції

Утригонометричних функціях кути вимірюються в радіанах.

Функція

Синтаксис

|х| - модуль

abs(x)

ех експонента

exp(x)

ln x - натуральний логарифм

log(x)

логарифм по підставі 2

log2(x)

lg x - десятковий логарифм

log10(x)

2х - 2 в ступені х

pow(x)

квадратний корінь

sqrt(x)

arcсos x – арккосинус

acos(x)

arсctg x – арккотангенс

acot(x)

arcсosec x – арккосеканс

acsc(x)

2


 

arcсes x – арксеканс

asec(x)

 

 

arcsin x – арксинус

asin(x)

 

 

arсtg x – арктангенс

atan(x)

 

 

сos x – косинус

cos(x)

 

 

ctg x – котангенс

cot(x)

 

 

sec x – секанс

sec(x)

 

 

сosec x – косеканс

csc(x)

 

 

sin x – синус

sin(x)

 

 

tg x – тангенс

tan(x)

 

 

arсch x – арккосинус гіперболічний

acosh(x)

 

 

arсcth x – арккотангенс гіперболічний

acoth(x)

 

 

arссosech x – арккосеканс

acsch(x)

 

 

гіперболічний

 

 

 

arсsech x – арксеканс гіперболічний

asech(x)

 

 

arсsh x – арккосинус гіперболічний

asinh(x)

 

 

arсtgh x – арктангенс гіперболічний

atanh(x)

 

 

ch x – косинус гіперболічний

cosh(x)

 

 

сtgh x – котангенс гіперболічний

coth(x)

 

 

сosech x – косеканс гіперболічний

csch(x)

 

 

sech x – секанс гіперболічний

sech(x)

 

 

sh x – синус гіперболічний

sinh(x)

 

 

tgh x – тангенс гіперболічний

tanh(x)

 

Слід пам'ятати, що всі елементарні функції

повинні записуватися в програмах

малими буквами. Існують також спеціальні математичні функції, на яких ми не зупинятимемося.

4.4. Поняття про файли-сценарії і файли-функції

Тут корисно відзначити, що m-файли, що створюються редактором/відладчиком, діляться на два класи:

·файли-сценарії, що не мають вхідних параметрів;

·файли-функції, що мають вхідні параметри.

·Файл-сценарій

Файл сценарій називається також Script-файлом або просто скриптом.

Файл-сценарій має вельми просту структуру:

1.% Основний коментар, якщо необхідно.

2.% Додатковий коментар, якщо необхідно.

3.Тіло програми з будь-якими допустимими виразами.

Важливими є наступні властивості файлів-сценаріїв:

1.Вони не мають вхідних і вихідних аргументів.

2.Працюють з даними з робочої області.

3.В процесі виконання не компілюються.

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

командного рядка.

Приклад. Видимий у вікні редактора на мал. 1 файл є файлом-сценарієм, або Scriptфайлом.

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

Відмінність М-файлу функції від сценарію полягає в , томущо він є аналогом підпрограми типу function в мові Pascal.

3


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

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

Структура М-файлу функції з одним вихідним параметром має вигляд:

·function var = f _ name (Список параметрів)

·% Основний коментар, якщо необхідно.

·% Додатковий коментар, якщо необхідно.

·Тіло програми з будь-якими виразами.

·var = вираз

М-файл функція володіє наступними властивостями:

1.Він починається з ключового словаfunction, після якого указується ім'я змінноїvar

– вихідного параметра, ім'я самої функції f _ name і список її вхідних параметрів, відокремлених комою. Увага: Ім'я М-файлу функції повинне співпадати з ім'ям самої функції (f _ name). MATLAB автоматично привласнює дане ім'я при виконанні команди Save as.

2.Результат виконання М-файлу функції привласнюється імені функції, яке може використовуватися в математичних виразах подібно до функційsin(x), log(x) і тому подібне

3.Всі змінні, використовувані у файлі-функції, є локальними, тобто діють тільки в межах тіла функції.

4.Остання конструкція vаг=вираз вводиться, якщо потрібний, щоб функція повертала результат обчислень. Замість імені var можна використовувати будь-яке інше ім'я.

5.Файл-функція є самостійним програмним модулем, який пов'язаний з іншими модулями і головною програмою через вхідні і вихідні параметри.

6.При виклику файлу-функції він компілюється і потім виконується.

7.m-файл функція повинен зберігатися у ваш робочий каталог.

Приклад. m-файл, що містить текст

Дану функцію можна використовувати, наприклад, таким чином:

4


4.5. Чисельне вирішення нелінійних рівнянь

Завдання знаходження коріння нелінійних рівнянь зустрічається в різних областях науково-технічних досліджень. Проблема формулюється таким чином. Хай задана безперервна функція f(x) і потрібно знайти корінь рівняння

f(x)= 0.

Припускатимемо, що є інтервал зміни х[а; b], на якому необхідно досліджувати функцію f(x) і знайти значення х0, при якому f(x0) рівно або вельми мало відрізняється від нуля.

Дане завдання в системіMATLAB може бути вирішена таким чином. Спочатку необхідно побудувати графік функції f(x) на заданому інтервалі і переконатися в існуванні кореня або декількох коріння. Потім застосувати програми пошуку коріння. Якщо існує один корінь і графік f(x) перетинає вісь ох, то можна застосувати програму fzero. Програма fzero використовує відомі чисельні методи: ділення відрізання навпіл, січній і зворотній квадратичній інтерполяції.

Приклад. Знайти корінь нелінійного рівняння

10х + 2х – 100 = 0

на відрізку [1.5; 2.5].

З'являється вікно з графіком функції10х + 2х – 100, з якого виходить, що корінь функції на заданому інтервалі існує. Для точного визначення кореня вживаний функцію fzero.

5

Природно, для роботи даної програми нам знадобиться m-функція:

Результат: X = 1.9824

У більш загальному випадку функція fzero() має наступні реалізації: fzero('f(х)', х)

fzero('f (х)', [xl, х2])

Тут прийняті наступні позначення:

·'f(х)' — вирішуване рівняння, узяте в одиночні лапки;

·х — початкове наближення (значення) шуканого кореня;

·[x1, х2]—область ізоляції кореня.

Наприклад, для вирішення даного завдання ми могли б написати

X = fzero ( '10.^x + 2.*x - 100.0', 2)

Очевидно, що в даному випадку файл-функція не потрібна.

4.6. Програмування у MATLAB

Існують чотири основні оператори управління послідовністю виконання інструкцій:

оператор умови if, у поєднанні з операторомelse і elseif виконує групу інструкцій відповідно до деяких логічних умов;

оператор перемикання switch, у поєднанні з операторами case і otherwise виконує різні групи інструкцій залежно від значення деякої логічної умови;

оператор умови while виконує групу інструкцій невизначене число разів, відповідно до деякої логічної умови завершення;

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

Ø Оператор умови

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

6