Amaliy ish mavzu: Chiziqli algebraik tenglamalar sistemasini yechishning Gauss, oddiy iteratsiya, Zeydel usullari va ularning algoritmi Ishning maqsadi
Ishning maqsadi : Talabalarga chiziqli algebraik va transendent tenglamalar sistemasini Gauss, usulida yechish algoritmlarini berish hamda bu usullarga Paskal tilida tuzilgan dasturda ishlashga о‘rgatish.
Nazariy qism
Bizga ta noma’lumli ta chiziqli algebraik tenglamalar sistemasi (1)
berilgan bо‘lsin. Bu yerda lar berilgan sonlar, lar noma’lumlar (i,j=1,2,...,n). Agar (1) sistemaga mos keluvchi asosiy determenant 0 dan farqli, ya’ni
bо‘lsa u yagona yechimga ega bо‘ladi.
Chiziqli algebraik tenglamalar sistemasini yechishning bir necha usullari mavjud bо‘lib, ulardan asosiylari Kramer, Gauss, teskari matritsa, iteratsiya usullaridir. Bu usullardan Gauss usuli bilan yechish algoritmini (1) sistema uchun kо‘rib chiqaylik. Gauss usuli. Gauss usuli yoki no’malumlarni ketma-ket yо‘qotish usuli chiziqli algebraik tenglamalar sistemasini aniq yechish usuli hisoblanadi. Bu usulining algoritmi quyidagi hisoblashlar ketma-ketligidan iborat.
bо‘lsin (agar bо‘lsa, sistemadagi tenglamalarning о‘rnini almashtirib ga ega bо‘lish mumkin). (1) sistemadagi birinchi tenglamaning barcha hadlarini ga bо‘lib
ni hosil qilamiz. Bu tenglamani ketma-ket larga kо‘paytirib, undan sistemaning keyingi tenglamalarini ayiramiz va
(2)
sistemaga ega bо‘lamiz. Bu yerda , i=2,…,n; j=2,3,…,n. (2) sistema uchun yuqoridagi hisoblashlar (noma’lumlarni ketma-ket yuqotish) ni bir necha bor takrorlab, quyidagi
(3)
sistemani hosil qilamiz va xilarni topish uchun
formulaga ega bо‘lamiz.
Chiziqli algebraik tenglamalar sistemasini Gauss usulida yechish uchun Paskal algoritmik tilida tuzilgan dastur matni.
Program gauss; uses crt; const n=4; {tenglamalar soni} type stroka=array[1..n] of real; matrisa=array[1..n, 1..n+1] of real; vektor=array[1..n] of real; var a:matrisa; x:vektor; max,c:real; i,j,k,m:integer; procedure gauss_1(b:matrisa; var y:vektor); begin for i:=1 to n do begin max:=abs(b[i,i]); j:=i; for k:=i+1 to n do if abs(b[k,i])>max then begin max:=abs(b[k,i]); j:=k; end; if j<>i then for k:=i to n+1 do begin c:=b[i,k]; b[i,k]:=b[j,k]; b[j,k]:=c; end; c:=b[i,i]; for k:=i to n+1 do b[i,k]:=b[i,k]/c; for m:=i+1 to n do begin c:=b[m,i]; for k:=i+1 to n+1 do b[m,k]:=b[m,k]-b[i,k]*c; end; end; y[n]:=b[n,n+1]; for i:=n-1 downto 1 do begin y[i]:=b[i,n+1]; for k:=i+1 to n do y[i]:=y[i]-b[i,k]*y[k] end; end; begin clrscr; for i:=1 to n do for j:=1 to n+1 do begin write(‘a[‘,i:1,’,’,j:1,’]=’); read(a[i,j]); end; gauss_1(a,x); writeln( ‘Sistemaning yechimi’ ); for i:=1 to n do writeln(‘x[‘,i:1,’]=’,x[i]:10:4); end. Misol. Berilgan chiziqli algebraik tenglamalar sistemalarini Gauss usuli yordamida yeching.
Yechish. Berilgan dastur matnidan foydalanib hisoblaymiz :