- •Математичні моделі в сапр: методичні вказівки до лабораторних робіт
- •Передмова до методичних вказівок
- •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
- •Література
Текст програми Newton2
Program Newton2; {Уточнення розв'язкiв системи двох не лiнiйних р-нь}
Uses {Funct,} {модуль з функцiями для метода Ньютона}
NewtonS; {модуль з iтерацiйною процедурою NewtonStep}
Const _n=100; {число iтерацiй за замовченням}
Var
OK {ознака "наближення знайдено"}
: boolean;
all, dec, {число всiх цифр i число цифр пiсля коми}
n, iter {число iтерацiй}
: word;
x0,y0, {початкове наближення}
x_old, y_old, {наближення поточного кроку}
dx, dy, {прирости аргументiв}
x_new, y_new {наближення наступного кроку}
: real;
finp, {вихiдний файл}
fout {результуючий файл}
: text;
BEGIN {Newton2}
assign (fout,'Newton2.out'); rewrite (fout);
write (fout,'S<Newton2>');
{ в в е д е н н я п а р а м е т р i в }
assign (finp,'Newton2.inp'); reset(finp);
read(finp,x0); {x0}
readln(finp); read(finp,y0); {y0}
readln(finp); read(finp,n); {n}
readln(finp); read(finp,all); {all}
readln(finp); read(finp,dec); {dec}
if n<=0 then n:=_n; {встановлення числа iтерацiй n}
writeln(fout); write(fout, 'x0=',x0:6:3,' y0=',y0:6:3,
' n=',n:1,' all=',all:1,' dec=',dec:1);
close(finp);
{ м е т о д Н ь ю т о н а }
x_old:=x0; y_old:=y0;
for iter:=1 to n do
begin {for iter:=1 to n}
NewtonStep(x_old,y_old,dx,dy,OK);
if OK=false
then begin {OK=false}
writeln(fout);writeln(fout,iter:3,' знаменник = 0 !'); break;
end {OK=false}
else begin {OK=true}
x_new:=x_old+dx; y_new:=y_old+dy;
writeln(fout);write(fout,iter:3,':{',x_old:all:dec,' ',
y_old:all:dec,'} + {',dx:all:dec,' ',dy:all:dec,'}');
x_old:=x_new; y_old:=y_new;
end; {OK=true}
end; {for iter:=1 to n}
writeln (fout); write (fout,'F<Newton2>');
close (fout);
end. {Newton2}
Текст модуля Funct
У цьому модулі потрібно замінити у рядках із зірочками вказані функції на власні.
Unit Funct;
Interface {Funct}
{права частина F першого рiвняння системи}
function F(x,y:real):real;
{часткова похiдна F по аргументу х}
function Fx(x,y:real):real;
{часткова похiдна вiд F по аргументу y }
function Fy(x,y:real):real;
{права частина G другого рiвняння системи}
function G(x,y:real):real;
{часткова похiдна вiд G по аргументу x}
function Gx(x,y:real):real;
{часткова похiдна вiд G по аргументу y}
function Gy (x,y:real):real;
implementation {Funct}
{права частина першого рiвняння системи}
function F(x,y:real):real; { вкажiть вашу функцiю}
begin {F} F:=y*sin(x)-1; end; { * замiнити F}
{часткова похiдна вiд F по аргументу x}
function Fx(x,y:real):real; { вкажiть вашу функцiю}
begin {Fx} Fx:=y*cos(x); end; { * замiнити Fx}
{ часткова похiдна вiд F по аргументу y}
function Fy (x,y:real):real; { вкажiть вашу функцiю}
begin {Fy} Fy:=sin(x); end; { * замiнити Fy}
{права частина другого рiвняння системи}
function G (x,y:real):real; { вкажiть вашу функцiю}
begin {G} G:=y*y*y-x-2; end; { * замiнити G}
{ часткова похiдна вiд G по аргументу x }
function Gx(x,y:real):real; { вкажiть вашу функцiю}
begin {Gx} Gx:=-1; end; { * замiнити Gx}
{ часткова похiдна вiд G по аргументу y }
function Gy (x,y:real):real; { вкажiть вашу функцiю}
begin {Gy} Gy:=3*y*y; end; {* замiнити Gy}
end. {Funct}