Teskari matritsani topish dasturi
Program Teskari_mat;
const n=3;
type
mat=array[1..n,1..n] of Real;
Vec=array[1..n] of Real;
Var
A,T,E:Mat;
X,B:Vec; i,j,K:Integer;
Procedure Gauss(a:Mat; b:Vec; n:byte;Var x:Vec);
var
k,l,m,i:byte; s:real;
begin
for k:=1 to n-1 do
begin
for m:=k+1 to n do
begin
for l:=k+1 to n do a[m,l]:=a[m,l]-a[m,k]*a[k,l]/a[k,k];
b[m]:=b[m]-a[m,k]*b[k]/a[k,k];
end;
end;
x[n]:=b[n]/a[n,n];
for k:=n-1 downto 1 do
begin
s:=0;
for i:=k+1 to n do s:=s+a[k,i]*x[i];
x[k]:=(b[k]-s)/a[k,k];
end;
end;
begin
For I:=1 to n do For J:=1 to n do Readln(A[i,j]);
For I:=1 to n do
Begin
For J:=1 to n do If i=j Then B[J]:=1 else B[J]:=0;
Gauss(A,B,N,X);
For J:=1 to n do T[J,I]:=X[J];
End;
For I:=1 to n do
Begin
For J:=1 to n do Write(T[i,j]:12:4);
Writeln;
End;
Writeln('Tekshirish');
for i:=1 to n do
for j:=1 to n do
begin
e[i,j]:=0;
for k:=1 to n do e[i,j]:=e[i,j]+a[i,k]*T[k,j];
end;
for i:=1 to n do
begin
for j:=1 to n do write(E[i,j]:8:4);
writeln;
end;
readln;
end.
Teskari matritsani toppish algoritmi
Bosh elementlar usuli. Gauss usulida yetakchi elementlar doim ham noldan farqli bo'lavermaydi. Ba’zan esa ular nolga yaqin sonlar bo'lishi mumkin. Buning natijasida taqribiy yechim aniq yechimdan sezilarli darajada chetlashib ketadi.
Hisoblashda bunday chetlashishdan qutilish uchun Gauss usuli bosh elementni tanlash yo'li bilan qo'llaniladi. Bu usulning Gauss usulining ixcham tahriridan farqi quyidagidan iborat. Faraz qilaylik, noma’lumlarni yo'qotish jarayonida ushbu tizimga egamiz:
bu yerda
; ( I,j≥m+1)
Endi tenglikni qanoatlantiradigan k-raqamni topib, o‘zgaruvchilarni qayta belgilaymiz: va . So'ngra (rn+2) tenglamadan boshlab, barchasidan xm+1 noma’lumni yo'qotamiz. Bunday qayta belgilashlar yo'qotish tartibini o'zgartirishga olib keladi va ko'p hollarda hisoblash xatoligini kamaytirishga xizmat qiladi.
Misoi. Bosh elementlar usulidan foydalanib quyidagi tizim yechilsin.
Tizimni yechish jarayoni quyidagi 3.3- jadvalda keltirilsin.
|
i
|
mi
|
ai,1
|
ai,1
|
ai,1
|
ai,1
|
ai,1
|
∑a6
|
I
|
1
2
3
4
|
0,11759 0,14766
0,17923
|
1,11610 0,1582
0,1968
0,2368
|
0.1254
1,1675
0,2071
0,2471
|
0,1397
0,1768
0,2168
0,2568
|
0,1490
0,1871
0,2271
1,2671
|
1,5471
1,6471
1,7471
1,8471
|
3,07730
3.33760
3,59490
3,85490
|
II
|
1
2
3
|
0,09353
0,11862
|
1,08825
0,12323
0,15436
|
0,09634
1.13101
0,16281
|
0,10950
0,13888
1,17077
|
|
1,32990
1,37436 1,41604
|
2,62399
2,76748
2,90398
|
III
|
1
2
|
0,07296
|
1,07381
0,10492
|
0,08111
0,11170
|
|
|
1,19746
1,20639
|
2,35238
2,42301
|
IV
|
1
|
|
1,06616
|
|
|
|
1,10944
|
2,17560
|
V
|
1
2
3
4
|
|
1
|
1
|
1
|
1
|
1,04059 0,98697
0,98505
0,88130
|
2,04059
1,98697
1,93505
1,88130
|
bu yerda mi=aiq/apq; barcha i≠p lar uchun apq - bosh element. Jadvaldan quyidagi yechimni hosil qilamiz:
x1=1,04059; x2=0,98697
x3=0,93505; x4=0,88130
Iteratsion usullar. Iteratsion usullarda yechim cheksiz ketma-ketliklarning limiti sifatida topilishi haqida aytib o'tilgan edi. Bugunda turli tamoyil (prinsip)larga asoslangan juda ko'plab iteratsion usullar mavjud. Umuman, bu usullarning, o'ziga xos tomonlaridan biri shundan iboratki, yo‘l qo'yilgan xatoliklari har qadamda to‘g‘rilanib boradi. Aniq usullar bilan ishlayotganda, agar biror qadamda xatoga yo'l qo'yilsa, bu xato oxirgi natijaga ham ta’sir qiladi. Yaqinlashuvchi iteratsion jarayonning biror qadamida yo‘l qo'yilgan xatolik esa faqat i nr necha iteratsiya qadamini ortiqcha bajarishgagina olib keladi xolos. Biror qadamda yo‘l qo'yilgan xatolik keyingi qadamlarda tuzatilib boriladi. Boz ustiga bu usullarning hisoblash tartibi sodda bo'lib, ularni GNM larda hisoblash qulaydir. Lekin har bir iteratsion usulning qo'llnnish sohasi chegaralangandir. Chunki iteratsiya jarayoni berilgan li/im uchun uzoqlashishi yoki shuningdek, sekin yaqinlashishi mumkinki, buning oqibatida amalda yechimni qoniqarli aniqlikda topib bo'lmaydi. Shuning uchun ham iteratsion usullarda faqat yaqinlashish masalasigina emas, balki yaqinlashish tezligi masalasi ham katta ahamiyatga egadir. Yaqinlashish tezligi dastlabki yaqinlashish vektorning qulay tanlanishiga ham bog'liqdir.
Bu yerda biz avval iteratsion usullarning umumiy xarakteristikasini qarab chiqamiz, so'ngra esa hisoblash amaliyotida keng qollaniladigan iteratsion usullarni keltiramiz.
Do'stlaringiz bilan baham: |