Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)






Паскаль тілінде кері матрица көмегінде теңдеулер жүйесін шешу әдісін программалау



 

Егер (1) берілген болса

 

(6)

 

онда (1) жүйе немесе оның эквивалентті матрицалық теңдеуі бір ғана шешімге ие болады. Себебі (6) шарт орындалғанда А-1 кері матрица табылады.

Егер теңдеудің екі бөлігінде сол жағынан А-1 матрицаға көбейтсек төменегі теңдікті аламыз.

немесе

(7)

(7) формула теңдеудің шешімін береді. әрбір шешім (7) көріністе табылғаны үшін шешім біреу болады.

 

Кері матрица көмегінде (1) теңдеу жүйесін шешімі төмендегі программа көмегінде табылады.

Program kmatesep; uses crt;

label 1,2,3,4,5,6;

var a,a1:array [1..10,1..10] of real;

l,c,b:array[1..10] of real;

i,ii,j,k,k1,k2,k3,m,j1,f1,n:integer;

p:real;

begin clrscr;

write ('n='); read(n);

for i:=1 to n do

for j:=1 to n do

begin write ('a[',i,j,']='); read (a[i,j]); end;

for i:=1 to n do

begin write ('b[',i,']='); read (b[i]); end;

ii:=0;

5: for i:=1 to n do

for j:= 1 to n do

a1[i,j]:=a[i,j];

for i:=1 to n do

begin writeln;

for j:=1 to n do

write (a[i,j]:8:2);

writeln;

end; readkey;

k1:=0;

for i:=1 to n-1 do

begin k1:=k1+1; l[k1]:=a[i,i];

writeln ('l[',k1,']=', l[k1]:6:2); readkey;

if a[i,i]=0 then

begin

writeln ('bas element nolge ten bolyp kaldy=');

k2:=0;

4: write (' i=',i);

for k:=i to n do

begin writeln;

write (' k=',k:8);

for m:=i to n do

write (a[k,m]:8:2);

end;

{ekranda jol jane bagandardi austiru}

writeln ('jol auistiruda m=1 engizu kerek.');

writeln ('bagan auistiruda m=2 engizu kerek.');

read(m);

if m=1 then goto 1;

if m=2 then goto 2;

goto 3;

1: begin write (' joldardin auistiru nomirlerin engizu j1,f1=');

read (j1,f1); k2:=k2+1;

for k:=i to n do

c[k]:= a[j1,k];

for k:=i to n do

a[j1,k]:= a[f1,k];

for k:=i to n do

a[f1,k]:= c[k]; end; goto 3;

2: begin write (' bagandardin auistiru nomirlerin engizu j1,f1=');



read (j1,f1); k2:=k2+1;

for k:=i to n do

c[k]:= a[k,j1];

for k:=i to n do

a[k,j1]:= a[k,f1];

for k:=i to n do

a[k,f1]:= c[k]; end;

3: write (' i=',i);

for k:=i to n do

begin writeln;

write (' k=',k:8);

for m:=i to n do

write (a[k,m]:8:2);

end;

write ('tagi orin auistiru ia=1 joq=0 '); read (k3);

if k3=1 then goto 4;

writeln;

end; readkey;

for j:=i to n do

a[i,j]:=a[i,j]/l[k1];

for k:=i+1 to n do

begin p:=a[k,i];

for j:=i to n do

a[k,j]:=a[k,j]-a[i,j]*p;

end;

write ('orin auistirudan keiingi korinis');

write ('k=',k:8);

for m:=i to n do

write (a[k,m]:8:2);

end;

l[n]:=a[n,n];

for i:=1 to n do

begin writeln;

for j:=1 to n do

write (a[i,j]:8:2);

writeln;

end; readkey;

p:=1;

for i:=1 to n do

p:=p*l[i];

if ii>0 then goto 6;

write ('delt=',p:8:2);

readkey;

6: for i:=1 to n do

for j:=1 to n do

a[i,j]:=a1[i,j];

ii:=ii+1;

for j:= 1 to n do

a[j,ii]:=b[j];

if ii<=n then begin

write ('delt',ii,'=',p:8:2);

goto 5; end;

begin clrscr;

write ('n='); read(n);

for i:=1 to n do

for j:=1 to n do

begin write ('a[',i,j,']='); read (a[i,j]); end;

for i:=1 to n do

begin write ('b[',i,']='); read (b[i]); end;

ii:=0;

5: for i:=1 to n do

for j:= 1 to n do

a1[i,j]:=a[i,j];

for i:=1 to n do

begin writeln;

for j:=1 to n do

write (a[i,j]:8:2);

writeln;

end; readkey;



k1:=0;

for i:=1 to n-1 do

begin k1:=k1+1; l[k1]:=a[i,i];

writeln ('l[',k1,']=', l[k1]:6:2); readkey;

if a[i,i]=0 then

begin

writeln ('bas element nolge ten bolyp kaldy=');

k2:=0;

4: write (' i=',i);

for k:=i to n do

begin writeln;

write (' k=',k:8);

for m:=i to n do

write (a[k,m]:8:2);

end;

read(m);

if m=1 then goto 1;

if m=2 then goto 2;

goto 3;

1: begin write (' joldardin auistiru nomirlerin engizu j1,f1=');

read (j1,f1); k2:=k2+1;

for k:=i to n do

c[k]:= a[j1,k];

for k:=i to n do

a[j1,k]:= a[f1,k];

for k:=i to n do

a[f1,k]:= c[k]; end; goto 3;

2: begin write (' bagandardin auistiru nomirlerin engizu j1,f1=');

read (j1,f1); k2:=k2+1;

for k:=i to n do

c[k]:= a[k,j1];

for k:=i to n do

a[k,j1]:= a[k,f1];

for k:=i to n do

a[k,f1]:= c[k]; end;

3: write (' i=',i);

for k:=i to n do

begin writeln;

write (' k=',k:8);

for m:=i to n do

write (a[k,m]:8:2);

end;

write ('tagi orin auistiru ia=1 joq=0 '); read (k3);

if k3=1 then goto 4;

writeln;

end; readkey;

for j:=i to n do

a[i,j]:=a[i,j]/l[k1];

for k:=i+1 to n do

begin p:=a[k,i];

for j:=i to n do

a[k,j]:=a[k,j]-a[i,j]*p;

end;

write ('orin auistirudan keiingi korinis');

write ('k=',k:8);

for m:=i to n do

write (a[k,m]:8:2);

end;

l[n]:=a[n,n];

for i:=1 to n do

begin writeln;

for j:=1 to n do

write (a[i,j]:8:2);

writeln;

end; readkey;

p:=1;

for i:=1 to n do

p:=p*l[i];

if ii>0 then goto 6;

write ('delt=',p:8:2);

readkey;

6: for i:=1 to n do

for j:=1 to n do

a[i,j]:=a1[i,j];

ii:=ii+1;

for j:= 1 to n do

a[j,ii]:=b[j];

if ii<=n then begin

write ('delt',ii,'=',p:8:2);

goto 5; end; end.

 

 


Просмотров 545

Эта страница нарушает авторские права

allrefrs.ru - 2020 год. Все права принадлежат их авторам!