- •Обчислювальні методи розв’язку нелінійних рівнянь
- •Метод дотичних
- •Метод хорд
- •Результат
- •Метод дотичних
- •Метод хорд-дотичних
- •Метод ітерацій
- •Завдання.
- •Програмна реалізація методу
- •Метод половинного поділу
- •Завдання.
- •Програмна реалізація методу
- •Методи лінійної алгебри Знаходження визначника матриці методом алгебраїчних доповнень
- •Розв’язок системи рівнянь методом Крамера
- •Розв’язок системи лінійних рівнянь методом Крамера за допомогою пакету MathCad
- •Розв’язок системи рівнянь методом Гауса
- •Розв’язок системи рівнянь за допомогою пакету MathCad
- •Знаходження визначника матриці методом Гауса
- •Знаходження визначника матриці за допомогою пакету MathCad
- •Знаходження оберненої матриці за допомогою методу Гауса
- •Розв’язок системи лінійних рівнянь за допомогою методу Зейделя
- •Інтерполювання функцій
- •Інтерполяційний многочлен Лагранжа
- •Iнтерполяцiя за Лагранжем
- •Результат роботи програми
- •Інтерполяційний многочлен Ньютона
- •Iнтерполяцiя за Ньютоном
- •Виконання інтерполяції за допомогою пакету MathCad
- •Чисельне інтегрування функцій
- •Метод прямокутників
- •Текст програми
- •Метод трапецій
- •Текст програми
- •Iнтегрування методом трапецiй
- •Метод Сімпсона
- •Текст програми
- •Знаходження визначеного інтеграла засобами пакету MathCad
- •Розв’язування звичайних диференціальних рівнянь
- •Метод Ейлера
- •Уточнений метод Ейлера
- •X Ейлер точний
- •Метод Рунге-Кутта 4-го порядку
Розв’язок системи рівнянь за допомогою пакету MathCad
Знаходження визначника матриці методом Гауса
В результаті перетворень Гауса система (або матриця) зводиться до форми, яка дає змогу легко обчислити визначник матриці.
Представлена програма на мові Pascal (версія TurboPascal6 і вище) здійснює перетворення матриці за схемою Гауса та знаходження визначника. Для контролю визначник тієї ж матриці обчислено за допомогою пакету MathCad. Результати співпадають.
Текст програми
program gauss6(input,output);
{знаходження визначника методом Гауса}
TYPE
dvmr = array[0..10,0..10] of real;
ovmr = array[0..10] of real;
var i,j,n,m:integer;
n1,m1,l1:integer;
aa,a,p,g:dvmr;
x,y,riz:ovmr;
b,ii:integer;
d,ab:real;
fr:text;
Function Det(A:dvmr; N:integer):real;
Var i,j,k : integer;
d,y,w : real;
Begin
{**************************************************}
{* Знаходження визначника матрицi методом Гауса *}
d:=1;
for i:=1 to N do begin
k:=i; y:=A[i,i];
for j:=i+1 to N do begin
w:=A[j,i];
if Abs(w)>Abs(y) then begin
k:=j; y:=w;
end;
end;
d:=d*y;
if d=0 then begin det:=0; Exit; end;
if i<>k then begin
d:=-d;
for j:=i to N do begin
w:=A[k,j];
A[k,j]:=A[i,j];
A[i,j]:=w;
end;
end;
for j:=i+1 to N do begin
w:=A[j,i]/y;
for k:=i+1 to N do A[j,k]:=A[j,k]-w*A[i,k];
end;
end;
Det:=d;
End;
{процедура вводу матрицi }
procedure vvidmat(var a:dvmr;n,m:integer);
var i,j:integer;
begin
for i:=1 to n do
for j:=1 to m do
readln(a[i,j]);
end;
{процедура виводу матрицi на друк}
procedure drukmat(a:dvmr;n,m:integer);
var i,j:integer;
begin
for i:=1 to n do
begin
for j:=1 to m do
write(fr,a[i,j]:5:2,' ');
writeln(fr);
end;
end;
begin
assign(fr,'det.txt');
rewrite(fr);
{побудова матрицi }
writeln('введiть порядок матрицi');
readln(m);
writeln('ввiд с-ми');
vvidmat(aa,m,m);
writeln(fr,'матриця ');
drukmat(aa,m,m);
d:=det(aa,m);
{друк визначника}
writeln(fr,'визначник=',d:5:2);
writeln(fr,'======================================================');
close(fr);
end.
Результат роботи програми
матриця
3.00 6.00 4.00 1.00
7.00 0.00 4.00 3.00
2.00 5.00 7.00 9.00
3.00 7.00 4.00 2.00
визначник=-308.00
