- •Математичні моделі в сапр: методичні вказівки до лабораторних робіт
- •Передмова до методичних вказівок
- •1.Лабораторна робота EvalExpr на тему "Знаходження похибок обчислень"
- •Теоретичні питання.
- •Приклад виконання роботи EvalExpr
- •Варіанти індивідуальних завдань до роботи EvalExpr
- •2.Лабораторна робота DetKram на тему “Розв’язання слр за формулами Крамера”
- •Теоретичні питання
- •Приклад виконання роботи DetKram
- •Варіанти індивідуальних завдань до роботи DetKram
- •Допоміжні матеріали до роботи DetKram Інструкція користувачу до додатку InteractiveDet
- •Приклад змісту вхідного файла Det.Inp:
- •Вихідні файли програми.
- •Натискання клавіші “Введення з файлу”.
- •Натискання клавіші “Зменшити у рядку”.
- •Натискання клавіші “Зменшити у стовпці”.
- •Натискання клавіші “Зменшити розміри”.
- •Завершення роботи додатку.
- •3.Лабораторна робота InvMatr на тему “Розв’язання слр за методом оберненої матриці”
- •Теоретичні питання
- •Приклад виконання роботи InvMatr
- •Варіанти індивідуальних завдань до роботи InvMatr
- •Допоміжні матеріали до роботи InvMatr Програма AdjMatr
- •Інструкція користувачу до додатку InteractiveAdjMatr
- •4.Лабораторна робота Gauss на тему „Наближене розв`язання слр методами виключення невідомих”
- •Теоретичні питання
- •Приклад виконання роботи Gauss
- •2В. Обчислення компонент вектора нев’язки.
- •3A. Знаходження наближеної оберненої матриці за методом Гауса.
- •3B. Знаходження компонент наближеного розв’язку .
- •3C. Знаходження компонент вектору нев’язки
- •5. Знаходження міри обумовленості головної матриці системи.
- •Варіанти індивідуальних завдань до роботи Gauss
- •Додаткові матеріали до роботи Gauss Програма NormVect знаходження різних норм вектора
- •Програма NormMatr знаходження різних норм матриці
- •Процедура g3v33l4
- •Модуль GaussRow
- •Iнструкцiя користувачу до програми InteractiveGauss
- •5.Лабораторна робота LinSysIt на тему “Ітераційні методи розв’язання слр”
- •Теоретичні питання
- •Приклад виконання роботи LinSysIt
- •Варіанти індивідуальних завдань до роботи LinSysIt
- •Допоміжні матеріали до роботи LinSysIt Програма NormForm
- •Програма SysIter
- •Програма Zeidel
- •6.Лабораторна робота TransEq на тему "Розв'язання трансцендентних рівнянь з одним невідомим"
- •Теоретичні питання
- •Приклад виконання роботи TransEq
- •Розрахункова таблиця знаходження кореня
- •Розрахункова таблиця знаходження кореня
- •Розрахункова таблиця знаходження кореня
- •Уточнення відокремленого кореня за методом простих ітерацій.
- •Розрахункова таблиця знаходження кореня рівняння за методом простих ітерацій
- •Розрахункова таблиця знаходження кореня рівняння за методом простих ітерацій
- •Варіанти індивідуальних завдань до роботи TransEq
- •Додаткові матеріали до роботи TransEq Інструкція користувачу для роботи з додатком TranscEq
- •Робота з додатком TranscEq
- •7.Лабораторна робота NonLinSys на тему „Розв’язання систем нелінійних рівнянь”
- •Теоретичні питання
- •Приклад виконання роботи NonLinSys
- •Розрахункова таблиця знаходження роз'вязку
- •Варіанти індивідуальних завдань до роботи NonLinSys
- •Допоміжні матеріали до роботи NonLinSys Інструкція користувачу для роботи з програмою Newton2
- •Текст програми Newton2
- •Текст модуля Funct
- •Текст модуля NewtonS
- •8.Лабораторна робота SelfEq на тему ”Знаходження характеристичного рівняння”
- •Теоретичні питання
- •Приклад виконання роботи SelfEq
- •Варіанти індивідуальних завдань до роботи SelfEq
- •9.Лабораторна робота SelfVect на тему “Знаходження власних векторів”
- •Теоретичні питання.
- •Приклад виконання роботи SelfVect
- •Варіанти індивідуальних завдань до роботи SelfVect
- •Література
Варіанти індивідуальних завдань до роботи Gauss
Варіант індивідуальних завдань до роботи Gauss повністю співпадають з варіантами індивідуальних завдань до роботи DetKram.
Додаткові матеріали до роботи Gauss Програма NormVect знаходження різних норм вектора
Program NormVect; {Знаходження різних норм одного вектору}
{ВХІД: NormVect.inp – текстовий файл, наприклад:
--------------- початок -------------
5
0 8 1 2 -3
---------------- кінець ---------------
де 5—число компонент вектора. У наступному рядку вказані компоненти вектора через прогалини.
ВИХIД: NormVect.out – текстовий файл, наприклад:
------------------ початок ---------------------------
Вектор:
0.00000000000000Е+0000 (0.00000)
8.00000000000000Е+0000 (8.00000)
1.00000000000000Е+0000 (1.00000)
2.00000000000000Е+0000 (2.00000)
-3.00000000000000Е+0000 (-3.00000)
Норма максимума (m-норма) = 8.00000000000000Е+0000 (8.00000)
Квадратична норма (k-норма) = 8.83176086632785Е+0000 (8.83176)
Інтегральна норма (1-норма) = 1.40000000000000Е+0001 (14.00000)
--------------------- кінець -----------------------}
const _N=10; type vect = array [1.._N] of real;
var i,n: integer; v: vect; norm : real; finp,fout : text;
BEGIN {NormVect} writeln(’Start NormVect’);
assign(fout, ’NormVect.out’); rewrite(fout);
assign(finp, ’NormVect.inp’); reset(finp); readln(finp,n);
for i:=1 to n do read(finp,v[i]);
close(finp); writeln(fout, ’Вектор:’);
for i:=1 to n do writeln(fout, ’ ’ ,v[i], ’ (’,v[i]:8:5,’) ’);
norm:= abs(v[1]); {Підрахування m-норми}
for i:=1 to n do if norm<abs(v[i]) then norm:=abs(v[i]);
writeln(fout,’Норма максимуму(m-норма)= ’, norm, ’ (’,norm:8:5, ’) ’);
norm:=0; {Підрахування k-норми}
for i:=1 to n do norm:=norm+sqr(v[i]);
norm:=sqrt(norm);
writeln(fout,’Квадр.норма(k-норма)=’, norm, ’ (’ ,norm:8:5, ’) ’);
norm:=0; for i:=1 to n do norm:=norm+abs(v[i]);
writeln(fout, ’Інтегр.норма (l-норма)=’, norm, ’ (’ ,norm:8:5, ’) ’);
close(fout); write(’Finish NormVect’); readln;
END. {NormVect}
Програма NormMatr знаходження різних норм матриці
program NormMatr;
{ВХІД: NormMatr.inp -- текстовий файл, наприклад:
----------------- початок -------------------
5
--------------------- кінець -------------------
де 5 – розміри матриці, далі за рядками – елементи матриці через прогалину.
ВИХІД: NormMatr.out -- текстовий файл, наприклад:
----------------------- початок ----------------------------
матриця:
Норма максимума (m-норма) = 3.50000000000000Е+0001 (35.00000)
Квадратична норма (k-норма) = 2.71661554144122Е+0001 (27.16616)
Інтегральна норма (l-норма) = 3.10000000000000Е+0001 (31.00000)
------------------------ кінець -------------------------------}
const _N=10;
type Matr= array [1.._N,1.._N] of real;
var i, j,n: integer;a: matr;norm,sum: real; finp,fout:text;
BEGIN {NormMatr} writeln(‘Start NormMatr’);
assign(fout,’NormMatr.out’); rewrite(fout);
assign(finp,’NormMatr.inp’);reset(finp);
for i:=1 to n do begin
for j:=1 to n do read(finp,a[i,j]);readln(finp);
end;
close(finp); writeln(fout,’матриця:’);
for i:=1 to n do begin
for j:=1 to n do write(fout,’ ‘, a[i,j]); writeln(fout);
end;
norm:=0; {П і д р а х у в а н н я m – н о р м и }
for i:=1 to n do
begin sum:=0; for j:=1 to n do sum:=sum+abs(a[i,j]);
if norm<sum then norm:=sum;
end;
writeln (fout,’Норма максимума (m – норма) = ‘,norm,
‘ (‘,norm:8:5,’)’);
norm:=0; { П і д р а х у в а н н я k – н о р м и }
for i:=1 to n do for j:=1 to n do
norm:=norm+sqr(a[i,j]); norm:=sqrt(norm);
writeln(fout,’квадратична норма (k – норма) = ‘,norm,
‘ (‘,norm:8:5,’)’);
norm:=0; {П і д р а х у в а н н я l – н о р м и }
for j:=1 to n do begin
sum:=0; for i:=1 to n do sum:=sum+abs(a[i, j]);
if norm<sum then norm:=sum;
end;
writeln(fout,’інтегральна норма (l – норма) =’,norm,
‘ (‘,norm:8:5,’)’);
close(fout);
write(‘Finish NormMatr. Press any key.’); readln;
END. {NormMatr}