Qaralayotgan masalani yechishning Pascal dasturi matni
(oshkormassxema)
uses crt;
const mf=72;
sigma=5.669e-8;
eps=1e-5;
type
vector1=array[1..mf] of real;
vector2=array[1..mf,1..mf] of real;
var{dasturda ishlatiladigan uzgaruvchilarni tavsiflash}
i, j, Nx, Ny : integer;
T, Tn : vector2;
alfa, beta : vector1;
ai, bi, ci, fi, d, d1 : real;
lamda, ro, c : real;
kapa1, kapa2, Te1, Te2, eps1 : real;
hx, hy, tau, t_end, time : real;
T0, L, H : real;
f, g : text;
begin
clrscr;
{klaviatura orqali barcha zaruriy parametrlarning qiymatlarini kiritamiz}
29
Writeln('Plastinkada x uq buyicha fazoviy tugunlar sonini kiriting,Nx');
Readln(Nx);
Writeln('Plastinkada y uq buyicha fazoviy tugunlar sonini kiriting, Ny');
Readln(Ny);
Writeln('Hisob jarayonining tugash vaqtini kiriting, t_end');
Readln(t_end);
Writeln('Plastinkaning uzunligini kiriting, L');
Readln(L);
Writeln('Plastinkaning qalinligini kiriting, H');
Readln(H);
Writeln('Plastinka maretialining issiqlik utkazuvchanlik koeffisiyentini kiriting,
lamda');
lamda');
Readln(lamda);
Writeln('Plastinka materialining zichligini kiriting, ro');
Readln(ro);
Writeln('Plastinka materialining issiqlik sigimini kiriting, c');
Readln(c);
Writeln(' х,y = 0 chegaralarda issiqlik almashinish koeffisiyentlarini kiriting,
kapa1');
Readln(kapa1);
Writeln(' х = L, y = H chegaralarda issiqlik almashinish koeffisiyentlarini kiriting,
kapa2');
Readln(kapa2);
Writeln(' х,y= 0 chegaralarga nisbatan tashqi muhitning tenperaturasini kiriting,
Te1');
Readln(Te1);
Writeln(' х = L, y = Hchegaralarga nisbatan tashqi muhitning tenperaturasini
kiriting, Te2');
30
Readln(Te2);
Writeln('Keltirilgan qoralik darajasini kiriting, eps1');
Readln(eps1);
Writeln('Boshlangich temperaturani kiriting, T0');
Readln(T0);
{fazoviy koordinatalar bo‟yicha tur qadamlarini hisoblash}
hx:=L/(Nx-1);
hy:=H/(Ny-1);
{vaqt qadamini hisoblash}
tau:=t_end/1000.0;
{boshlangich vaqt momentida temperature maydonini aniqlash}
for i:= 1 to Nx do
for j:= 1 to Ny do
T[i,j]:=T0;
{nostatsionar issiqlik utkazuvchanlik tenglamasini integrallash}
time:=0;
whiletime
begin
{vaq to‟zgaruvchisini τ qadamga oshirib borish}
time:=time+tau;
{n-vaqt qatlamida temperatura maydonining qiymatini saqlab qolish}
for i:=1 to Nx do
for j:=1 to Ny do
Tn[i,j]:=T[i,j];
{(n+1/2) oraliq vaqt qatlamida Ox uq yunalishida temperature maydononi aniqlash
uchun chiziqli algebraic tenglamalar sistemasini yechish}
for j:=1 to Ny do
begin
31
{(48) formula yordamida chep chegaraviy shart bo‟yicha alfaprogonga
boshlangich koeffisiyentini hisoblash}
alfa[1]:=2.0*tau*lamda/(2.0*tau*(lamda+kapa1*hx)+ro*c*sqr(hx));
{chap chegarada nochiziqlilikni hisobga olgan holda temperatura maydonining
qiymatini iteratsiyalar yordamida hisoblashning shartlashgan sikli}
repeat
{(48) formuladan foydalanib chap chegaraviy shart asosida beta progonka
boshlangich koeffisiyentlarini aniqlash, bunda chap chegaraviy shart buyicha
iteratsion sikl boshlanadi}
d:=T[1,j];
beta[1]:=(ro*c*sqr(hx)*Tn[1,j]+2.0*tau*kapa1*hx*Te1+2.0*tau
*eps1*sigma*hx*(sqr(sqr(Te1))-sqr(sqr(d))))
/(2.0*tau*(lamda+kapa1*hx)+ro*c*sqr(hx));
{(8) formula buyicha progonka koeffisiyentlarini hisoblashning sikli}
for i:= 2 to Nx-1 do
begin
{ai, bi, ci, fi – uchdiagonalli kanonik shakldagi chiziqli algebraic tenglamalar
sistemasining koeffisiyentlari}
ai:=lamda/sqr(hx);
bi:=2.0*lamda/sqr(hx)+ro*c/tau;
ci:=lamda/sqr(hx);
fi:=-ro*c*Tn[i,j]/tau;
{alfa[i], beta[i] – progonka koeffisiyentlari}
alfa[i]:=ai/(bi-ci*alfa[i-1]);
beta[i]:=(ci*beta[i-1]-fi)/(bi-ci*alfa[i-1]);
end;
{q2=0 holuchun (21) munosabatdan foydalanib ung chegaraviy shartda
temperaturaning qiymatini hisoblash}
T[Nx,j]:=(ro*c*sqr(hx)*Tn[Nx,j]+2.0*tau*lamda*beta[Nx-1])
32
/(ro*c*sqr(hx)+2.0*tau*lamda*(1-alfa[Nx-1]));
{(7) formuladan foydalanib (n+1/2) oraliq vaqt qatlamida nomalum temperatura
maydoni qiymatlarini aniqlash}
for i:= Nx-1 downto 1 do
T[i,j]:=alfa[i]*T[i+1,j]+beta[i];
untilabs(d-T[1,j])<=eps; {chap chegarada temperature aniqlandi}
end; {(n+1/2 oraliq vaqt qatlamida temperatura maydoni aniqlandi}
{(n+1) vaqt qatlamida Oy uq yunalishida temperature maydononi aniqlash uchun
chiziqli algebraik tenglamalar sistemasini yechish}
for i:=1 to Nx do
begin
{q1=0 holuchun (20) munosabatdan foydalanib quyi chegaraviy shartda
temperaturaning qiymati asosida progonka boshlangich koeffisiyentlarini
hisoblash}
alfa[1]:=2.0*tau*lamda/(2.0*tau*lamda+ro*c*sqr(hy));
beta[1]:=ro*c*sqr(hy)*T[i,1]/(2.0*tau*lamda+ro*c*sqr(hy));
{(8) formulabuyicha progonka koeffisiyentlarini hisoblashning sikli}
for j:= 2 to Ny-1 do
begin
{ai, bi, ci, fi – uchdiagonalli kanonik shakldagi chiziqli algebraik tenglamalar
sistemasining koeffisiyentlari}
ai:=lamda/sqr(hy);
bi:=2.0*lamda/sqr(hy)+ro*c/tau;
ci:=lamda/sqr(hy);
fi:=-ro*c*T[i,j]/tau;
{alfa[j], beta[j] – progonka koeffisiyentlari}
alfa[j]:=ai/(bi-ci*alfa[j-1]);
beta[j]:=(ci*beta[j-1]-fi)/(bi-ci*alfa[j-1]);
end;
33
{(n+1/2) oraliq vaqt momentida ung chegarada temperaturaning qiymatini saqlab
qolish}
d:=T[i,Ny];
{ung chegarada nochiziqlilikni hisobga olgan holda temperatura maydonining
qiymatini iteratsiyalar yordamida hisoblashning shartlashgan sikli}
repeat
d1:=T[i,Ny];
{(49) formuladan foydalanib ung chegaraviy shart asosida ung chegaradagi
temperaturaning qiymatini hisoblash}
T[i,Ny]:=(ro*c*sqr(hy)*d+2.0*tau*(lamda*beta[Ny-1]+kapa2*hy*Te2
+eps1*sigma*hy*(sqr(sqr(Te2))-sqr(sqr(d1)))))/(ro*c*sqr(hy)
+2.0*tau*(lamda*(1-alfa[Ny-1])+kapa2*hy));
untilabs(d1-T[i,Ny])<=eps; {yuqori chegarada temperaturaning qiymati aniqlandi}
{Progonkaning asosiy formulasi (7) danfoydalanib, (n+1) vaqt qatlamdagi
nomalum temperatura maydonini topamiz}
for j:= Ny-1 downto 1 do
T[i,j]:=alfa[j]*T[i,j+1]+beta[j];
end; {(n+1) vaqt qatlamida temperature maydonini hisoblash}
end; {Oldindan shartli sikl operatorining tugashi }
{Hisob natijalarini faylga yozish}
Assign(f,'res.txt');
Rewrite(f);
Writeln(f,'Plastinkaning uzunligiL = ',L:6:4);
Writeln(f,'Plastinkaning qalinligiH = ',H:6:4);
Writeln(f,'Plastinkada x fazoviy koordinata bo‟yicha tugunlar soni Nx = ',Nx);
Writeln(f,'Plastinkada y fazoviy koordinata bo‟yicha tugunlar soni Ny = ',Ny);
Writeln(f,'Plastinka materialining issiqlik o‟tkazuvchanlik koeffisiyenti lamda =
',lamda:6:4);
Writeln(f,'Plastinka materialining zichligiro = ',ro:6:4);
34
Writeln(f,'Plastinka materialining issiqlik sigimiс = ',c:6:4);
Writeln(f,'Boshlangich temperaturaT0 = ',T0:6:4);
Writeln(f,'Issiqlik almashinish koeffisiyentikapa1 = ',kapa1:6:4);
Writeln(f,'Issiqlik almashinish koeffisiyentikapa2 = ',kapa2:6:4);
Writeln(f,'Tashqi muhitning temperaturasiTe1 = ',Te1:6:4);
Writeln(f,'Tashqi muhitning temperaturasiTe2 = ',Te2:6:4);
Writeln(f,'Keltirilgan qoralik darajasieps1 = ',eps1:6:4);
Writeln(f,'Hisob natijalari x koordinata bo‟yicha quyidagi qadam bo‟yicha olindih
x = ',hx:6:4);
Writeln(f,'Hisob natijalari y koordinata bo‟yicha quyidagi qadam bo‟yicha olindih
y = ',hy:6:4);
Writeln(f,'Hisob natijalari t vaqt bo‟yicha quyidagi qadam bo‟yicha olindi tau =
',tau:6:4);
Writeln(f,Temperatura maydoni hisoblangan vaqt momentit = ',t_end:6:4);
close(f);
Assign(g,'tempr.txt');
Rewrite(g);
for i:=1 to Nx do
for j:=1 to Ny do
writeln(g,' ',hx*(i-1):10:8,' ',hy*(j-1):10:8,' ',T[i,j]:8:5);
close(g);
end.
Masalani yechish natijasida 10-rasmda tasvirlangan temperatura taqsimoti
olindi.
35
10-rasm. Plastinka bo‟ylab t=36000 s vaqt momentida temperatura (
)ning
taqsimlanishi.
10-rasmdan ko‟rinadiki, plastinka bo‟ylab temperaturaning taqsimoti uning
(x,y) = (0,0; 0,3) uchidan boshlab qolgan uchlariga qarab brogan sari kamayib
boradi.
36
XULOSA
Mazkur bitiruv malakaviy ishining muhim natijalari quyidagilar:
amaliy matematika masalalarini matematik modellashtirish jarayonida xususiy
hosilali differensial tenglamalar, ularni chekli ayirmalar (to‟rlar) usuli bilan
Mathcad matematik paketi va Pascal dasturi yordamida taqribiy yechishning
muammolari o‟rganildi, uni amalga oshirishning bosqichlari ishlab chiqildi;
xususiy hosilali differensial tenglamalarni har xil oshkor va oshkormas
sxemalar bilan yechish orqali ularni taqribiy yechishning imkoniyatlari
ko‟rsatildi, hisob algoritmiga oid tushunchalar bilan tanishildi, amaliy
masalalar yechildi;
olingan sonli yechimlar analitik yechimlar bilan taqqoslandi, hisob
jarayonining to‟g‟ri ekanligi, algoritm va dasturdan samarali foydalanish
mumkinligi ko‟rsatildi;
ishlab chiqilgan hisob metodikasi va yaratilgan hisob dasturiy vositasidan har
xil xususiy hosilali parabolik tipdagi differensial tenglamalarga (xususan,
issiqlik o‟tkazuvchanlik tenglamalariga) oid amaliy masalalarini yechishda
samarali foydalanish mumkin;
plastinka chetlarida nurlanish va konveksiya hisobiga tashqi muhit bilan
issiqlik almashinishi jarayoni, temperatura maydoni masalalari yuqori
aniqlikdagi chekli ayirmalar usuli bilan sonli yechildi;
plastinka bo‟ylab temperaturaning taqsimoti uning (x,y) = (0,0; 0,3) uchidan
boshlab qolgan uchlariga qarab brogan sari kamayib boradi;
tadbiq uchun mexanikaga oid aniq amaliy masalalar sonli yechildi, hisob
algoritmi yaratildi, hisob dasturiy vositasi yuqori bosqichli algoritmik tilda
tuzildi, natijalar taqqoslandi va tegishli xulosalar chiqarildi hamda amaliy
tadbiq uchun tavsiyalar berildi.
37
Do'stlaringiz bilan baham: |