- •Робота № 1
- •Var k: integer ; u, t, dt : real;
- •Робота № 2
- •6 5 10 50 (Рядок - 4 числа)
- •X___________y_______________________ (заголовок)
- •Робота № 3
- •Var t1,t2,dt,ul,up,il,ip,q,w, r: real; n,k: integer;
- •Робота № 4
- •Var tL,tP,t12,uk,u12: real; k: integer;
- •Робота № 5
- •Var u,p,pc,I,Imin,Imax,di: real; k: integer; Label 1;
- •Лiтература
Program
3-IVANOVA
BEGIN
t1:=0;
t2 :=***; R:=***; N:=30 ; dt:= (t2-t1)/N;
Q:=0;
W:=0;
UL
:= { значення
функції на лівій межі
U(t=0) };
IL
:= UL/R;
writeln
(‘.....N........t.......UL..........UP............IL..........IP.........Q.........W’);
for
k:=1 to N do begin
t:=
t+dt ;
UP:=
{значення
функції на правій межі інтервалу
dt, U(t) }
IP
:= UP / R;
Q
:= Q + dt * (IL + IP) / 2; W:= Q* (UL+UP) / 2;
writeln
(N:6, t:9:2, UL:9:2, UP:9:2, IL:9:2, IP:9:2, Q:9:2, W:9:2 );
UL:=
UP; IL:= IP;
end;
readln; END.
Var t1,t2,dt,ul,up,il,ip,q,w, r: real; n,k: integer;
Для звіту :
1- Спишіть з екрана з деяким інтервалом 7-10 рядків чисел t , UL, IL, Q , W (обов’язково – перший і 2 останні рядки), можна і всі рядки.
2- Побудуйте на папері в клітинку графік Q(UL). З нього можна побачити, що при розряді до деякої кінцевої напруги UL= Uk > 0 ХДС віддає не всю накопичену ємність та енергію. Залишок можна одержати, розряджаючи ХДС до кінцевої напруги U=0, проте користі від цього не буде – для споживача важливо, щоб напруга ХДС в процесі розряду по можливості зменшувалась якмога менше.
3-Спробуйте виконати інтегрування при N = 3, 6, 10, 30,100, 500, 1000. Записуйте кожний раз тІльки останні значення N – Q (в табличку) . Зробіть висновки про помилку, яку дає програма , враховуючи помилки апроксимації і помилки округлення. Яке N вважаєте найкращим і чому ?
4-Якщо встигнете – спробуйте при N = 30 виконати інтегрування первинної РХ U(t), яка була задана аналітичною формулою в роботі №1 (модель). Наскільки відрізняються результати інтегрування первинної функції і апроксимованого поліномом варіанту цієї ж функції ?
Робота № 4
Вирішення нелінійного рівняння або системи рівнянь
В практиці математичного моделювання часто зустрічаються рівняння або системи рівнянь загального типу Y= f(X), які неможливо алгебраїчним способом вирішити відносно аргумента Х , тобто записати в формі X = f(Y). В той же час для подальшого використання потрібна саме така форма.
Розглянемо приклад. Для деякої конкретної електрохімічної системи (заданий технологічний процес та аппарат-електролізер відомої конструкції) можна записати в загальній формі математичну модель вольт-амперної характеристики (ВАХ), яка складається з ряду вже відомих зі спеціальних дисциплін рівнянь, наприклад
U = Eo + a + k + IR;
a = a + bln(I / S) ; k = (RT/nF)ln (1- i/iпр);
R= (h / S); iпр = DnFCo/.
Фактично це є ВАХ в формі складної функціональної залежності U(I). Якщо підставити в неї значення всіх констант та аргумента I (струм), легко підрахувати значення напруги U .
Завдання ж полягає в тому, щоб вирішити обернену задачу – визначити струм I при заданому значенні напруги U, що вже неможливо виконати алгебраїчним способом.
Таке завдання виникає, наприклад при моделюванні великогабаритних електрохімічних пристроїв: напруга U є констант, тоді як у міжелектродному просторі на різних ділянках змінюється стан процесу - всі складові рівняння балансу напруги (у рівнянні ВАХ - a , k, iпр, , R ) і густина струму.
Об’єкт – хімічне джерело струму (ХДС). Задана нелінійна функція – розрядна характеристика U(t) у вигляді поліному (результат виконання роботи 2) . Для коректного виконання завдання потрібно знати також праву межу області рішення – момент часу to , коли напруга при розряді близька до нуля – це також вже відоме Вам значення з роботи 2.
Завдання – побудувати програму, визначити тривалість безперервного розряду ХДС tК [годин] на постійний опір , до заданої кінцевої напруги UК .
Алгоритм половинного ділення – один з найпростіших . Його зручно розглянути на графіку РХ, показаному на рисунку 6.
Рисунок 6. Алгоритм половинного ділення
Рішення tК = f (UК) шукаємо в інтервалі часу від tL=0 (початок розряду) до tP = to (максимальна тривалість розряду) де tL, tP - ліва та права межа області пошуку.
Поділимо інтервал пошуку (tL,… tP ) на дві рівні частини і в середині при t1/2 = (tL,… tP )/ 2 визначимо за рівнянням полінома напругу U = U1/2 .
Далі порівнюємо між собою значення розраховане U1/2 та задане Uк. З рисунка 5 видно, що на першому кроці U1/2 > U к, і рішення ( точка перетину графіка полінома з лінією U(t) ) знаходиться в правій половині рисунка. Тому ліву половину, де рішення немає – відкидаємо, тобто пересуваємо ліву межу tL=0 в середню точку t1/2. Якщо рішення знаходиться в лівій частині інтервалу пошуку – в середню точку t1/2 пересуваємо праву межу tP.
Далі вказані операції повторюються. На кожному наступному кроці область пошуку зменшується вдвічі - в частках початкового інтервалу 1-0.5-0.25-0.13-0.07-0.04-0.02-0.01, тобто вже на 8-му кроці відносна помилка рішення менша від 1 %
Запишемо робочий фрагмент програми