- •Міністерство освіти і науки України
- •Практична робота №1 Вивчення будови пеом
- •Теоретичні питання
- •Практична робота №2 Вивчення будови процесора і організації пам’яті
- •Теоретичні питання
- •Практична робота №3 Дослідження логічних елементів
- •Теоретичні питання
- •Практична робота №4 Основи роботи з matlab
- •Теоретичні питання
- •Завдання до практичної роботи:
- •Практична робота №5 Написання програм з використанням умовних операторів
- •Теоретичні питання
- •Практична робота №6 Написання програм з використанням циклічних операторів
- •Теоретичні питання
- •Практична робота №7 Побудова графіків функцій
- •Теоретичні питання
- •Завдання до практичної роботи:
- •Практична робота №8 Рішення алгебраїчних і трансцендентних рівнянь в середовищі matlab
- •Теоретичні питання
- •Варіанти алгебраїчних та трансцендентних рівнянь
- •Практична робота №9 Рішення систем рівнянь в середовищі matlab
- •Теоретичні питання
- •Варіанти систем алгебраїчних рівнянь
- •Практична робота №10 Загальні відомості про програмний комплекс simulink. Побудова простих моделей
- •Теоретичні питання
- •Варіанти завдань
- •Порядок роботи над завданнями:
- •Практична робота №11 Моделі алгебраїчних об'єктів. Форматування об’єктів моделей
- •Теоретичні питання
- •Варіанти завдань.
- •Практична робота №12 Маскування підсистем в Matlab/Simulink
- •Теоретичні питання
- •Варіанти завдань.
- •Список літератури
- •Для нотаток навчально-методичне видання
- •Тир.__ прим. Зам.______
- •43018, М. Луцьк, вул. Львівська, 75
Завдання до практичної роботи:
Завдання 1. Побудуйте два графіки в рамках одних осей координат:
у = e-2x
z = arctg(x1/2)
x є [0,4].
Зробіть написи на осях, заголовок для графіка, напис пояснення на малюнку. Задайте самостійно тип ліній і колір.
Завдання 2. Побудувати графіки функцій у(x) і z(x) в різних підобластях одного графічного вікна. Інтервали зміни для х визначите самостійно.
Завдання 3. Побудуйте поверхню:
f(x,y)= ln(x2+y2-xy)
Завдання 4. Побудувати гістограму випадкових чисел, розподілених за нормальним законом. Десять тисяч чисел згенерувати за допомогою функції randn(m,n).
Практична робота №8 Рішення алгебраїчних і трансцендентних рівнянь в середовищі matlab
Мета: Вивчення методів рішення рівнянь
Теоретичні питання
Рішення алгебраїчних і трансцендентних рівнянь в середовищі MATLAB здійснюється за допомогою наступних вбудованих функцій: solve(), fzero(), roots().
Технологія рішення рівнянь за допомогою функції solve()
Функція solve() представляється в наступному виді:
solve('f(x)', х)
де: 'f(x)' – рівняння, записане в одинарних лапках;
х – шукане невідоме.
Рівняння f(x) = 0 записується в довільній формі. При цьому, якщо знак рівності відсутній, то програма сприйме рівняння у вигляді f(x) = 0.
Аргумент х при вирішенні рівняння можна опустити.
Розглянемо технологію визначення кореня рівняння за допомогою функції solve| () на прикладі.
Нехай, необхідно розв’язати рівняння:
sin х + х -1 = 0
Програма рішення рівняння має вигляд:
>> Y = solve('sin(x) + х - 1 = 0)
Після натиснення клавіші <Enter> отримаємо:
Y =
0.510973
Функція solve() у ряді випадків дозволяє визначити всі корені рівняння f(x) = 0 без вказівки початкових значень х або області допустимих значень, знайти не тільки дійсні, але і комплексні корені рівняння f(x) = 0.
Відмінність функції solve() в тому, що вона дозволяє розв’язувати рівняння, подані в аналітичній формі.
Тобто,
2х - 3( а – b ) = 0
Рішення матиме вигляд:
>> Y=solve('2^x-3*(a-b) = 0')
Y=
Log((3*a-3*b|)/log|(2))
Функція solve() має наступний недолік. Вона не вимагає інформації про початкове значення кореня або області допустимих значень. Тому в випадку трансцендентного рівняння і в ряді інших випадків вона не знаходить всіх коренів рівняння.
Технологія визначення дійсних коренів рівняння за допомогою функції fzero()
Функція fzero() має наступні реалізації:
fzero (' f (х) ', х)
fzero (' f (х) ', [xl, х2])
fzero (' f ( х ) ', х, tol, trace)
fzero (' f ( x ) ', [xl, x2], tol)
fzero (' f ( x ) ', [xl, x2], tol, trace)
У виразах функції прийняті наступні позначення:
' f (х) ' – розв’язуване рівняння, узяте в одинарні лапки;
х – початкове наближення (значення) шуканого кореня;
[xl, х2] – область допустимих значень;
tol – задана погрішність обчислення кореня;
trace – значення кореня в кожній ітерації.
Технологія визначення кореня рівняння:
2х - 4x + хsin х = 0,
якщо відомо, що корені знаходяться між х=1 і х=4.
Рішення:
>> Y = fzero('2^x - 4 * х + х * s i n ( x ) ' , 1)
Y=
0.3478
>> Y = fzero('2^x - 4 * х + х * s i n ( x ) ' , 4)
Y=
4.4761
Потрібно визначити дійсний корінь рівняння, використовуючи функцію
fzero (' f (х) ', [xl, х2])
На рис. 8.1 приведений графік функції
Рисунок 8.1 – Графік функції ln(4 - 2х) + х2 - 2 = 0
З рис. 8.1 видно, що областями ізоляції коріння можуть бути: [0;-1], [l;1.5], [l.5;1.95].
Тоді програма визначення кореня і результати рішення задачі матимуть вигляд:
>> X1 = fzero (' log ( 4 - 2 * х) + х^2 - 2 ', [0,-1]);
>> Х2 = fzero (' log ( 4 - 2 * х) + х^2 - 2 ', [1,1.5]);
>> Х3 = fzero (' log ( 4 - 2 * х) + х^2 - 2 ', [1.5,1.95]);
>> X = [Хl, Х2, Х3]
Після натиснення клавіші <Enter> отримаємо:
Х =
0.594 1.2774 1.9001
Необхідно обчислити корінь рівняння
In (4 - 2х) + х2 - 2 = 0
з області ізоляції [0; -1] з видачею інформації про кожну ітерацію (число ітерацій не більше 50).
Програма рішення задачі і результат мають вигляд:
>> fzero (' log ( 4 - 2 * х) + х^2 - 2 ', [0,-1],50)
ans =
Funt-count х f (х)
1 0 -0.613706
2 -1 0.791759
3 -0.436657 -0.225557
4 -0.634142 0.0638411
5 -0.590577 -0.00619106
6 -0.594428 -0.000141692
7 -0.594518 1.45892 e 008
8 -0.594516 -3.13434 e 006
ans =
-0. 5945
Таким чином, функція fzero дозволяє знайти всі корені рівняння f(x) = 0. Для цього необхідно знати області допустимих значень.
З врахуванням цих особливостей системи MATLAB комп'ютерна технологія рішення алгебраїчних і трансцендентних рівнянь полягає у виконанні процедур, перерахованих нижче:
визначення області ізоляції кореня графоаналітичним методом;
визначення дійсного кореня рівняння за допомогою функції fzero(), при заданих значеннях погрішності tol;
визначення комплексного кореня рівняння за допомогою функції solve('f(x)').
Технологія визначення коренів многочлена за допомогою функції roots()
Функція roots() має вигляд:
roots(z),
де z – вектор коефіцієнтів многочлена.
Необхідно визначити корені многочлена:
у = 2х5 - 3х4 + 5х3 + х2 + 7х + 3.
Рішення має вигляд:
>> Y = roots( [2 -3 5 1 7 3] )
Y=
1.2189 + 1.4110 i
1.2189 - 1.4110 i
-0.2719 + 1.0105 i
-0.2719 - 1.0105 i
-0.3940.
У разі коли в многочлені відсутній член xk, то приймається ak = 0.