Опис програми
Програма визначення лінійної залежності або незалежності векторів написана на мові програмування Turbo Pascal та працює за відносно простим алгоритмом роботи – розв‘язком системи лінійних рівнянь та подальшої її перевірки на умову незалежності векторів.
Головна процедура системи - Procedure Lineq – відповідає за розв‘язок системи рівнянь та знаходження коефіцієнтів. Початкові дані (вектори) вводяться стандартним способом з клавіатури в базовій частині програми у вигляді матриці дійсних чисел. В останньому боці програми після виклику Procedure Lineq – виконується перевірка умови залежності з масиву знайдених розв’язків – Ex . В результаті роботи програми на екран буде виведене остаточне повідомлення стосовно лілейної залежності або не залежності представлених векторів.
Текст програми
Program Linijna_Zaleshnist_Nezaleshnist;
Const Dim1 = 20
Dim2 = 21;
{dim2=dim1+1}
Type Ar1 = Array[1..Dim1,1..Dim2] of Real;
Ar2 = Array[1..Dim1] of Real;
Var n:Integer; {Rozmirnist}
i,j:Integer; {Dodatkovi zmini}
S:Ar1 {Golovna matrica};
Ex:Ar2 {Vihidnij razvjazok}
Cod:Byte;
e:Real;
Procedure Lineq(a:Ar1;
n:Integer;
e:Real;
Var x:Ar2);
Var i,j,k:Integer;
y,w:Real;
Begin
For i:=1 to n do
Begin
k:=i;
y:=a[i,i];
{------------------------------------------}
For j:=i+1 to n do
Begin
If(abs(w)>abs(y)) Then Begin k:=j;y:=w;End;
End;
{------------------------------------------}
If(abs(y)<e)Then Begin Write('ЌҐ ‚Ё§ 祮');Halt(0);End;
{------------------------------------------}
For j:=i to n+1 do
Begin
w:=a[k,j];a[k,j]:=a[i,j];a[i,j]:=w/y;
End;
{------------------------------------------}
For k:=i+1 to n do
Begin
For j:=n+1 Downto i+1 DO a[k,j]:=a[k,j]-a[i,j]*a[k,i];
End;
{------------------------------------------}
End;
For i:=n Downto i DO
Begin
w:=0;
For j:=i+1 to n Dod w:=w+a[i,j]*x[j];
x[i]:=a[i,n+1]-w;
End;
{-----------------------------}
Begin {Golovna programa upravliinja}
ReadLn('Vvedit rozmirnist - N ?',n);
Cod:=0;e:=0;
{---------------}
For i:=1 to n do
Begin
For j:=1 to n do
Begin
Write('Input a[',i,',',j,']');ReadLn(S[i,j]);
End;
End;
{---------------}
Procedure Lineq(S,n,e,Ex); {Viklik golovnogo modulja!}
{---------------}
For i:=1 to n do
Begin
If(Ex[i]<>0)Then Begin Cod:=1;End; {Perevirka umovi}
End;
{---------------}
If(Cod=1)Then Begin WriteLn('Вектори залежні');End
Else Begin WriteLn('Вектори не залежні ');End;
End;
Контрольні приклади
Приклад 1.
Вхідні дані:
A=(1;2;3) B=(0;1;2) С=(1;3;-1)
Вихідні дані:
Приклад 2.
Вхідні дані:
A=(1;-1;2) B=(10;1;1) С=(2;-1;6)
Вихідні дані:
Приклад 3.
Вхідні дані:
A=(3;-2;1) B=(-1;1;-2) С=(2;1;-3) D=(11;-6;5)
Вихідні дані:
Висновки
В даній курсовій роботі була розглянута важлива проблема визначення лінійної залежності та незалежності систем
На основі сконструйованої в цій роботі програми, було розв‘язано декілька практичних – тестових задач, лістинг (вхідні та вихідні дані) яких приведений у відповідному розділі роботи. Текст програми та коментарі відносно її структури також знаходять і основній частині курсової роботи.
Література
1. А. Б. Баратків “ Turbo Pascal - алгоритми і програми”, Київ, “Вища школа”, 1992.
2. С. Т. Завало, В. М. Костарчук, Б. И. Хацет «Алгебра и теория чисел», Том 2,«Высшая школа», Киев 1976
3. В. П. Дубовик, І.І. Юрик “Вища математика”, Університетська бібліотека, Київ 2001
4. А. Г. Курош «Курс высшей алгебры», «Наука», Москва 1975
5. С. Т. Завало, В. М. Костарчук, Б. И. Хацет «Алгебра и теория чисел», Том 1,«Высшая школа», Киев 1974