
- •Лабораторний практикум
- •Міністерство освіти і науки україни національний університет “львівська політехніка” лабораторний практикум з дисципліни
- •0. Методичні вказівки до оформлення звітів з лабораторних робіт 6
- •1. Лабораторна робота №1
- •Передмова.
- •0.Методичні вказівки до оформлення звітів з лабораторних робіт
- •Розділ і. Базові структури алгоритмів.
- •1.Лабораторна робота №1
- •1.1Перелік питань, які необхідно вивчити.
- •1.2Завдання.
- •1.3Методичні вказівки до виконання роботи № 1.
- •1.4Приклад виконання завдання.
- •1.4.1Постановка задачі.
- •1.4.2Розробка структури даних.
- •1.4.7Висновки.
- •2.Лабораторна робота №2
- •2.1Перелік питань, які необхідно вивчити.
- •2.2Завдання.
- •2.3Приклад виконання завдання.
- •2.3.1Постановка задачі.
- •2.3.2Розробка структури даних.
- •2.3.3Розробка блок-схеми алгоритму.
- •2.3.4Перевірка блок-схеми.
- •2.3.5Запис тексту програми.
- •3.1.2Виведення даних.
- •3.2Завдання.
- •3.3Методичні вказівки до лабораторної роботи.
- •3.3.1Постановка задачі.
- •3.3.2Розробка структури даних.
- •3.3.3Розробка алгоритму.
- •3.3.4Розробка програми.
- •Розділ іі. Використання числових і символьних змінних
- •4.3Методичні вказівки до роботи.
- •4.3.1Методи переведення в двійкову систему числення.
- •4.3.1.1Метод ділення.
- •4.3.1.2Метод віднімання.
- •4.3.1.3Метод маскування або логічного множення.
- •5.Лабораторна робота №5.
- •5.1Теоретичні відомості.
- •5.1.1Відомості з математики.
- •5.1.2Відомості з програмування.
- •5.2Завдання.
- •Розділ ііі. Циклічні алгоритми
- •6.Лабораторна робота №6
- •6.1Перелік питань, які необхідно вивчити для виконання роботи.
- •6.2Завдання.
- •6.3Приклад виконання завдання.
- •6.3.1Постановка задачі.
- •6.3.2Розробка структури даних.
- •6.3.3Розробка алгоритму
- •6.3.4Текст програми.
- •7.3Приклад виконання завдання.
- •7.3.1Постановка задачі.
- •7.3.2Розробка структури даних.
- •7.3.3Розробка алгоритму
- •7.3.4Текст програми мовою Pascal.
- •8.3Методичні вказівки до виконання роботи.
- •8.3.1Постановка задачі.
- •8.3.2Розробка структури даних.
- •8.3.3Розробка алгоритму.
- •Розділ іv. Обробка і використання масивів
- •9.3Приклад виконання завдання.
- •9.3.1Постановка задачі.
- •9.3.2Розробка структури даних.
- •9.3.3Розробка алгоритму.
- •9.3.4Запис тексту програми.
- •11.1.2Програмна реалізація розріджених масивів.
- •11.1.3Метод Гауса обчислення визначника матриці довільного розміру n*n.
- •11.2Завдання.
- •11.3Приклад алгоритму обчислення детермінанту.
- •Розділ V. Методи комп’ютерної графіки
- •12.Лабораторна робота №12.
- •12.1Теоретична частина
- •12.1.1Відомості з програмування.
- •12.1.2Перелік питань, які необхідно вивчити для виконання роботи.
- •12.2Завдання до лабораторної роботи.
- •12.3Методичні вказівки до виконання роботи
- •13.Лабораторна робота №13.
- •13.1Теоретична частина.
- •13.1.1Числовий опис зображення.
- •13.1.2Перетворення координат точки при її відображеннях.
- •13.1.3Питання, які необхідно вивчити.
- •13.2Завдання.
- •13.3Методичні вказівки до виконання роботи.
- •13.3.1Постановка задачі.
- •13.3.2Розробка структури даних.
- •13.3.3Розробка алгоритму.
- •13.3.4Запис тексту програми.
- •13.3.5Налагодження та результати тестування.
- •14.Лабораторна робота №14
- •14.1Перелік питань, які необхідно вивчити для виконання роботи.
- •14.2Теоретичні відомості.
- •14.3Завдання до лабораторної роботи.
- •Розділ VI. Деякі математичні методи
- •15.Лабораторна робота №15
- •15.1Теоретична частина.
- •15.1.1Основні статистичні характеристики.
- •15.1.2Гістограма розподілу числових даних.
- •15.1.3Питання, які необхідно вивчити для виконання роботи.
- •15.2Завдання.
- •16.2Завдання.
- •16.3Методичні вказівки до виконання роботи.
- •16.3.1Постановка задачі.
- •16.3.2Розробка структури даних.
- •16.3.3Розробка алгоритму.
- •16.3.4Написання тексту програми.
- •17.1.2Системи диференційних рівнянь.
- •17.1.3Форми подання результатів.
- •17.1.4Питання, які необхідно вивчити.
- •17.2Завдання.
- •17.3Методичні вказівки до виконання роботи.
- •17.3.1Постановка задачі.
- •17.3.2Розробка структури даних.
- •17.3.3Розробка алгоритму.
- •17.3.4Написання тексту програми.
- •17.3.5НАлагодження і тестування.
- •Список літератури.
16.3Методичні вказівки до виконання роботи.
16.3.1Постановка задачі.
В першу чергу необхідно вивести рівняння, коренем якого і буде шукане значення напруги, і звести це рівняння до вигляду (1). За законом Ома отримаємо:
I=(EUН)R. (8)
Крім того, відома залежність струму від напруги на НД:
I=f(UН). (9)
При виконанні роботи необхідно подати суміщені графіки функцій (8) і (9) в осях І, UН (так званий графічний розв’язок). На Рис. 16 .2 наведений приклад графічного розв’язку для схеми Рис. 16 .1, НД – діод Д226Б, R=2 Ом.
Рис. 16.2. Приклад графічного розв’язку рівняння.
Виключаючи струм І з рівнянь (8) і (9) отримаємо:
F(UH)=f(UН)(EUН)R=0. (10)
З фізичних міркувань очевидно, що значення UН не може бути від’ємним і не може перевищувати е.р.с. Е. Oтже, інтервал локалізації відомий: UН [0,E] (більш точно можна визначити за допомогою графічного розв’язку). При використанні методів хорд та дотичних необхідно вивести ітераційні формули, а для методу порозрядного наближення задати початковий крок та коефіцієнт розрядності.
Вхідними даними програми є: е.р.с. джерела, опір резистора та припустима похибка визначення напруги, а також значення констант, які входять в вираз (9). Вихідні дані значення напруги на НД та струму в колі. При виведенні вихідних даних на екран необхідно вказати їх розмірність.
16.3.2Розробка структури даних.
Крім вхідних та вихідних змінних необхідно впровадити змінні для реалізації методу розв’язку, наприклад, наступне наближення кореня, ітераційне прирощення, значення функцій F(x), крок та коефіцієнт розрядності, поточні границі інтервалу локалізації.
Додатково необхідно також передбачити змінні для зберігання констант, які входять в нелінійну залежність I(UН), що полегшує модифікацію нелінійних функцій при тестуванні програми.
16.3.3Розробка алгоритму.
Оскількі ітераційні наближення до кореня повторюються невизначену наперед кількість разів, основою алгоритму є цикли “поки” або “до”. Для першого умовою закінчення є критерій (3) при =R, а для другого критерій (2) при .
Контроль зміни знаку функції F(x) доцільно здійснювати порівнюючи з нулем добуток F(xn)F(xn+1), який буде від’ємним лише при різних знаках множників.
В алгоритм необхідно включити перевірку заданого інтервалу локалізації на наявність кореня (якщо F(a)F(b)>0, то кількість коренів на інтервалі парна, або корені відсутні) із відповідними повідомленням. Доцільно також підрахувати кількість ітерацій і припиняти роботу програми при перевищенні цією кількістю великого, наперед заданого розробником, числа (захист від зациклювання).
На блок-схемі алгоритму необхідно відмітити контрольні точки, зручні для спостереження за збіжністю ітерацій.
16.3.4Написання тексту програми.
Для полегшення налагодження програми доцільно задавати значення вхідних змінних операторами вводу раніш підготованих данних або присвоєнням. Розрахунок значень нелінійних функцій та розрахунки за ітераційними формулами оформлюються у вигляді підпрограм. Приклад тексту програми, котра реалізує розв’язок нелінійного рівняння методом порозрядного наближення:
program lab16P;
uses crt;
const
E =5;
R =200;
eps =0.000001;
c:real =E/10;
u:real =0;
function SumU(U:real):real;
begin
SumU:=0.0001*(EXP(8*U)-1)-(E-U)/R;
end;
begin
ClrScr;
while ABS(SumU(u))>eps do
begin
if SumU(u)*SumU(u+c)<0 then begin
u:=u+c;
c:=-c/10
end;
u:=u+c;
writeln(‘U=’,u);
end;
writeln(‘I=’,(E-U)/R)
end.
16.3.5Налагодження і тестування.
В результатах тестування програми необхідно навести значення всіх наближень до кореня, вказати кількість необхідних ітерацій. Повторити розрахунки при зменшеному значені похибки і зробити висновки про швидкість збіжності ітераційного процесу. Навести результати розв’язку рівняння при змінених значеннях будь-якого електричного параметра схеми.
17.Лабораторна робота №17
Числове розв’язування диференційних рівнянь
Мета робoти – засвоїти основні числові методи розв’язування диференційних рівнянь, а також виробити навики програмної реалізації цих методів.
17.1Теоретична частина.
Диференційне рівняння це рівняння, яке зв’язує дві чи більше функціонально залежні одна від одної величини та їх похідні.
17.1.1Деякі методи числового розв’язування диференційних рівнянь.
Розв’язування диференційного рівняння вигляду
dx(t)dt=F(x,t) (1)
полягає у знаходженні такої функції x(t), похідна якої задовільняла би тотожності (1), причому сама функція при заданому значенні аргументу to приймає початкове значення xo (задача Коші):
x(to)=xo. (2)
Якщо функція F(x,t) не містить явної залежності від аргументу t, тобто F(x,t)=F(x), то рівняння (1) називається автономним. У разі, коли інтеграл F(x,t)dt може бути виражений через елементарні функції, задача Коші розв’язується аналітично і числові методи зводяться до табулювання або графічного відображення відомої функції x(t). Але аналітичний розв’язок задачі Коші неможливий у багатьох практично важливих випадках, коли F(x,t) містить нелінійні (зокрема трансцендентні) функції та їх комбінації. У цьому випадку застосовується наближене числове інтегрування рівняння (1), яке полягає у такому:
Вибирають крок h зміни незалежної змінної t. Це дозволяє перейти від розгляду неперервої функції x(t) до розгдяду дискретної послідовності значень цієї функції xi. Крок h може бути змінним.
Вибирають рекурентну формулу, за якою розраховують наступне значення функції xi+1 через відоме попереднє xi+1=f(xi,ti). Методи числового розв’язування диференційних рівнянь відрізняються виглядом цієї рекурентної формули. Деякі з них використовують не одне, а декілька відомих попередніх значень (xi, xi1, xi2,).
За допомогою циклічного використання рекурентної формули визначаються всі необхідні значення xi при відповідних значеннях аргументу ti.
Числові методи дозволяють знаходити лише частинні розв’язки диференційних рівнянь при заданих початкових умовах. Найпростішим і найменш точним числовим методом розв’язування диференційних рівнянь є метод Ейлера першого порядку. Для автономних рівнянь цей метод реалізується рекурентною формулою
. (5)
Наприклад, для рівняння dxdt=F(x)=3x2, x(t0)=0 ітераційна формула буде мати такий вигляд:
xi+1=xi+h3xi2, x0=0.
Метод трапецій - одна з модифікацій методу Ейлера другого порядку. Він реалізується застосуванням на кожному кроці формули
xi+1=xi+(k1+k2)h2, (6)
де k1=F(xi), k2=F(xi+hk1).