Лаборатория иши №


§-2.3. TENGLAMALAR SISTEMASINI ODDIY ITERATSIYA USULI BILAN YECHISH



Download 1,66 Mb.
bet27/32
Sana17.07.2022
Hajmi1,66 Mb.
#813230
1   ...   24   25   26   27   28   29   30   31   32
Bog'liq
1-лаб

§-2.3. TENGLAMALAR SISTEMASINI ODDIY ITERATSIYA USULI BILAN YECHISH


Quyidagi tenglamalar sistemasini yechish talab qilingan bo`lsin:


(3.1)
Biz ushbu tenglamalar sistemasini oddiy iteratsiya usuli bilan yechishni uch noma’lumli tenglamalar sisitemasi misolida o`rganamiz.
Bu usulni qo`llashdan avval uni itertsion jarayon uchun qulay ko`rinishda yozib olamiz. Buning uchun sistemadagi har bir tenglamani biror noma`lumga nisbatan yechib olinadi, ya`ni
(3.2)
(4.2) sistemani vektor ko`rinishida ham yozib olish mumkin:
(3.3)

Bu yerda C matritsa va D vektorning elementlarini quyidagi formulalar bilan aniqlanadi:

Iteratsion jarayon yaqinlashuvchi bo`lishi uchun C matritsaning normasi 1 dan kichik bo`lishi lozim, ya`ni
. (3.4)
Oddiy iteratsiya metodining g’oyasi quyidagicha: Dastlab boshlang’ich yaqinlashish tanlab olinadi. So`ngra sistemaning yechimiga ketma-ket yaqishlanishni tashkil qilinadi. Buning uchun navbatdagi k - chi yaqinlashishni topishda (4.2) sistemaning o`ng tomoniga k-1 chi yaqinlashishdagi qiymatlar qo`yiladi. Bu jarayonni matematik formulalar yordamida
(3.5)
tarzida ifodalash mumkin. Iteratsion jarayonni tugatish sharti esa
(3.6)
yoki

ko`rinishida yoziladi.
ZEYDEL METODI

Bu metod oddiy iteratsiya metodidan shunisi bilan farq qiladiki, x1, x2, …, xn noma`lumlarning navbatdagi yaqinlishishini topishda joriy noma`lumdan avval turgan noma`lumlarning yangi qiymatlari va keyin turgan noma`lumlarning eski qiymatlaridan foydalaniladi:


(3.7)
Zeydel iteratsion formulasi oddiy itreratsiyaga nisbatan tezroq yaqinlashishni ta`minlaydi.
Ishning bajarish tartibi
1. Berilgan tenglamalar sistemasini oddiy iteratsiya usuli bilan yeching:
(3.8)
Bu sistemani C++ BUILDER dasrurlash usuli yordamida bajarish ketma-ketligi quyidagi amallardan iborat:
Dastlab (3.8) tenglamalar sistemasidagi xar bir tenglamani alohida bitta noma`lumga nisbatan yechib olamiz:
(3.9)
Endi bu sistemani DELPHI dasturlash tili yordamida Zeydel metodi bilan (3.7) - formuladan foydalanib yechamiz. Soddalik uchun (3.9) ni quyidagi ko’rinishda yozib olamiz:
(3.10)
(3.10) dan ko’rinib turibdiki,

(3.10) tenglamalar sistemasini oddiy iteratsiyasi usuli bilan yechish jarayonini dasturlash quyidagi ketma-ketlikda tashkil qilinadi:
1. interfeys uchun yangi formani yaratish;
2. N sonini aniqlash va formada unga mos jadval shaklini hosil qilish;
3. formaga A jadval va D vektor komponentalarini kiritish;
4. tenglamalar sistemasini berilgan aniqlikda hisoblashni tashkil qilish.
Dastlab, yangi forma yaratiladi va unga 4 ta LABEL, 1 ta EDIT, 2 ta STRINGGRID komponentalari hamda 2-4 bosqichlar uchun zarur bo’lgan 3 ta biyruqli tugmalarni joylashtiramiz. Bu komponentalarning hususiyatlarini 3.1-rasmga mos tartibda o’rnatamiz. Bunga qo’shimcha ravishda STRINGGRID1 va STRINGGRID2 komponentalrining options.goediting, options.gotabs va options.goshowediting hususiatlarini true tarzida o’zgartiriladi.



Dastur listingi quyidagicha:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Button3: TButton;
Label5: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var
n : integer ;
d, x, x0, x1 : array [1..20] of double;
a : array [1..20, 1..20] of double;
procedure TForm1.Button1Click(Sender: TObject);
begin
n:=StrToInt(Edit1.Text);
StringGrid1.ColCount:=n;
StringGrid1.RowCount:=n;
StringGrid1.Width:=(n+1)*47;
StringGrid1.Height:=(n+1)*24;
StringGrid2.RowCount:=n;
StringGrid2.Height:=(n+1)*25;
end;
rocedure TForm1.Button2Click(Sender: TObject);
var i, j: integer;
begin
for j:=1 to n do
for i:=1 to n do
a[i, j]:=StrToFloat(Stringgrid1.Cells[i-1, j-1]);
for i:=1 to n do
d[i]:=StrToFloat(Stringgrid2.Cells[0, i-1]);
end;
procedure TForm1.Button3Click(Sender: TObject);
var t, i, j : integer;
s: real;
begin
for i:=1 to n do x0[i]:=d[i];
t:=0;
while t<>3 do begin
for i:=1 to n do begin
x[i]:=0;
for j:=1 to n do
x[i]:=x[i]+a[j, i]*x0[j];
end;
t:=0;
for i:=1 to n do begin
if (abs(x0[i]-x[i])<=0.001) then t:=t+1;
x0[i]:=x[i];
end;
for i:=1 to n do Label5.Caption:=Label5.Caption+#13+FloatToStr(x[i]);
end;
end ;
end.
Ushbu dastur quyidagi natijani beradi:




Download 1,66 Mb.

Do'stlaringiz bilan baham:
1   ...   24   25   26   27   28   29   30   31   32




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish