Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

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

.pdf
Скачиваний:
17
Добавлен:
30.05.2020
Размер:
624.87 Кб
Скачать

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

Оператори if ... else ... end і if ... elseif ... end створюють додаткові галуження усередині тіла оператора if:

Оператор else не містить логічної умови. Інструкції, пов'язані з ним, виконуються,

якщо попередній операторif (і

можливо elseif ) помилкові. Оператора elseif містить

логічна умова, яка обчислюється,

якщо попередній операторif (і

можливо elseif)

помилкові. Інструкції, пов'язані

з

операторомelseif виконуються,

якщо відповідна

логічна умова істинна.

 

 

 

Оператор elseif може багато разів використовуватися усередині оператора умови if.

Ø Оператор перемикання (переключения)

Синтаксис:

switch <вираз>

% вираз - це обов'язково скаляр або рядок case <значення1>

інструкції % виконуються, якщо < вираз> =< значення1> case <значення2>

інструкції % виконуються, якщо <вираз> = < значення2>

otherwise

інструкції % виконуються, якщо <вираз> не співпав ні з одним із значень

end

Оператор switch ... case l ... case до ... otherwise ... end виконує галуження, в

залежності від значень деякої змінної або виразу. Оператор перемикання включає:

-Заголовок switch, за яким слідує обчислюваний вираз (скаляр або рядок).

-Довільна кількість груп case;

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

розташоване на одному рядку. Подальші рядки містять інструкції, які виконуються для даного значення виразу. Виконання продовжується до тих , пірпоки не зустрінеться наступний операторcase або оператор otherwise. На цьому виконання блоку switch завершується.

-Група otherwise. Заголовок включає тільки словоotherwise, починаючи з наступного рядка розміщуються інструкції, які виконуються, якщо значення виразу виявилося не обробленим жодною з груп case. Виконання завершується оператором end.

-Оператор end є останнім в блоці перемикача.

Оператор switch працює, порівнюючи значення обчисленого виразу із значеннями груп case. Для числових виразів операторcase виконується, якщо <значення>== <вираз>. Для строкових виразів, оператор case істинний, якщо strcmp(значення, вираз) істинно.

Ø Оператор циклу з невизначеним числом операцій

Синтаксис:

while вираз інструкції end

Опис:

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

Якщо вираз використовує масив, то всі його елементи повинні бути істинні дл продовження виконання. Щоб привести матрицю до скалярного значення, слід використовувати функції any і all.

7

Завдання до роботи

Завдання 1. Знайти корінь нелінійного рівняння та побудувати графік функції.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Варіанти

 

 

№ п/п

 

 

 

 

 

 

 

 

Рівняння f(x)= 0

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[-1,5; 1,5]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[- 2; 3]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[0; 3]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[0; 2]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-

 

arctg 2x -

 

 

 

 

 

 

= 0

 

 

 

 

 

 

 

 

 

 

[

2.5;2.5]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 + x

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[1; 4]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[0; 2]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[0; 2]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[0; 1]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[0; 2]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

x 2 + ln x = 0

 

[0; 1]

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[-1; 1]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13

ln x + arctgx = 0

 

[0; 1]

14

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[0,5; 2]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[1; 2]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16

x - arctgx = 0

 

[0; 2]

17

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[- 2.5;2.5]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

18

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[0; 1]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

19

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[-1;2]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

20

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[2; 4]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

21

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[0; 1]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

22

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[0; 1]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

23

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[0; 1]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

24

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[0; 2,5]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

25

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[2.5; 4]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

26

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[7; 8,5]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

27

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[2; 3]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

28

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[0; 1]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Завдання 2 Двовимірна функція і об'ємні графіки в окремих вікнах. Ввести початкові дані.

-Обчислити двовимірну функцію.

-Вивести функцію у вигляді 5 тривимірних графіків різного типу.

-Вивести функцію у вигляді 2 контурних графіків різного типу.

Завдання 3 Двовимірна функція і об'ємні графіки в підвікнах загального вікна.

8

Варіанти завдань

Функція

Межі зміни

Х

у

 

 

1

z = sin(x)cos(y)

від -2π до 2π

від -2π до 2π

2

z = sin(x/2)cos(y)

від -2π до 2π

від -2π до 2π

3

z = sin(2x)cos(y)

від -2π до 2π

від -2π до 2π

4

z = sin(x)cos(y/2)

від -2π до 2π

від -2π до 2π

5

z = sin(x/2)cos(2y)

від -2π до 2π

від -2π до 2π

6

z = sin(2x)cos(2y)

від -2π до 2π

від -2π до 2π

7

z = (l+sin(x)/x)(sin(y)/y)

від -2π до 2π

від -2π до 2π

8

z = (sin(x) /x)cos(y)

від -2π до 2π

від -2π до 2π

9

z = (sin(x) /x)|cos(y)|

від -2π до 2π

від -2π до 2π

10

z = (sin(x) /x)у

від -2π до 2π

від -2π до 2π

11

z = (sin(x) /x)|y|

від -2π до 2π

від -2π до 2π

12

z = (sin(x) /x) sin(y)

від -2π до 2π

від -2π до 2π

13

z = (sin(x) /x) |sin(y)|

від -2π до 2π

від -2π до 2π

14

z = (sin(x) /x) (l-y)

від -2π до 2π

від -2π до 2π

15

z = (sin(x) /x)|y+0.5|

від -2π до 2π

від -2π до 2π

Методичні вказівки

1.Для вирішення першого завдання необхідностворити файл-функцію і викликати її із основної програми (див. приклад у теоретичних відомостях)

2.Останні два завдання, в кожному з яких обчислюється двовимірна функція, що описує об'ємну фігуру, і будуються поверхневі і контурні графіки з використанням різних графічних функцій. У першому завданны кожен графік виводиться в своє вікно, у другому в підвікна загального вікна.

3.Для формування поверхневого або контурного графіка необхідно: o задати число точок по координатах X і Y

o створити вкладені цикли по X і Y, і обчислити функцію Z=f(X,Y)

o ввести номер графічного вікна, вивести туди графік вибраного типу.

3.Слід використовувати графіки:

- тривимірний з аксонометрією, функція plot3(X,Y,Z)

- тривимірний з функціональним забарвленням, функція mesh(X,Y,Z)

- тривимірний з функціональним забарвленням і проекцією, функція meshc(X,Y,Z)

- тривимірний з функціональним забарвленням і проекцією, функція surf(X,Y,Z)

- контурний, функція contour(X,Y,Z)

- об'ємний контурний, функція contour3(X,Y,Z)

- тривимірний з освітленням, функція surfl(X,Y,Z).

4.У кожному вікні можна малювати декілька графіків з накладенням один на одного. У

списку

параметрів

для

 

кожного

гр

перераховуються

групами

послідовно(у

роботі

графік

для

один). До кожної групи входять:

 

 

 

 

-X - перша координата основи

-Y - друга координата основи

-Z - значення функції.

9

Приклад виконання

 

 

 

 

Завдання

 

sin(x)

 

cos(y)

 

 

Функція

Z =

×

 

Межі зміни аргументів -2π...2π.

x

y

 

 

 

 

Завдання 1

%Завдання 1

%Число точок і крок

N=40;

h=pi/20;

%Розрахунок матриці for n=1:2*N+1

if n==N+1 A(n)=1; else A(n)=sin(h*(n-N-1))/(h*(n-N-1))* cos(h*(m-N-1))/(h*(m-N-1));

end;

end;

for n=1:2*N+1 for m=1:2*N+1

Z(n,m)=A(n)*A(m); end; end;

%Задаємо основу

[X,Y]=meshgrid([-N:1:N]);

%Виведення графіка в аксонометрії у вікно 1 figure(1); plot3(X,Y,Z);

%Виведення тривимірного графіка з функціональним забарвленням у вікно 2

figure(2); mesh(X,Y,Z);

%Виведення тривимірного графіка з функціональним забарвленням і проекцією у вікно 3

figure(3); meshc(X,Y,Z);

%Виведення тривимірного графіка з проекцією у вікно 4 figure(4); surf(X,Y,Z);

%Виведення контурного графіка у вікно 5

figure(5); contour(X,Y,Z);

%Виведення об'ємного контурного графіка у вікно 6 figure(6); contour3(X,Y,Z);

%Виведення об'ємного графіка з освітленням у вікно 7 figure(7); surfl(X,Y,Z);

10