Tajriba ishi № 8
Mavzu: Ikkinchi tartibli oddiy differensial tenglamalarni yechishning taqribiy usullari uchun dastur ta`minotini yaratish.
Ishdan maqsad: Talabalarni amaliy masalalarni yechishda ko’p ishlatiladigan ikkinchi tartibli, o’zgaruvchan koeffitsientli, differentsial tenglamalar uchun chegaraviy masalaning qo’yilishini va uni yechish usullari bilan tanishtirish, ularda chekli ayirmalar va Galyorkin usullari uchun dastur ta`minoti yaratish malakasini hosil qilish.
Reja:
Chegaraviy masalalar va ularni yechish usullari haqida qisqacha nazariy ma`lumotlar.
Chekli ayirmalar usulining ishchi algoritmi va uning dasturiy ta`minoti.
Galyorkin usulining ishchi algoritmi va uning dasturiy ta`minoti.
Tajriba ishiga doir topshiriqlar ro’yhati.
1.Chegaraviy masalalar va ularni yechish usullari haqida qisqacha nazariy ma`lumotlar:
Bugungi kunda inshootlar qurish loyihalarining muttasil murakkablashib borishi, yangi konstruktiv yechimlarning loyihalardan o’rin olishi, seysmik aktiv joylarda binolar mustahkamligiga qo’yiladigan talablarning ortishi loyiha ko’rsatkichlarini chuqur asoslash zaruriyatini keltirib chiqaradi.
Mazkur masalalarning matematik modeli ko’proq quyidagi ko’rinishdagi ikkinchi tartibli, o’zgaruvchan koeffitsientli oddiy differentsial tenglamalar orqali ifodalanadi, ya`ni:
(1)
differentsial tenglamaning yechimlariga [a, b] oraliqning chetki a va b nuqtalarida
(2)
chegaraviy shartlar berilgan bo’lsin.
(1) da berilgan p(x), q(x), f(x) koeffitsient funktsiyalarning [a, b] oraliqda uzluksizligi talab qilinadi. m0,m1,m2,g0,g1,g2 chegaraviy shart belgilari bo’lgan o’zgarmas sonlar hisoblanadi.
2. Chekli ayirmalar usulining ishchi algoritmi va dasturiy ta`minoti
Demak, bizga quyidagi
(1)
ikkinchi tartibli, o’zgaruvchan koeffitsientli oddiy differentsial tenglamaning oraliqning chetki nuqtalarida qo’yilgan
(2)
chegaraviy shartlarni qanoatlantiruvchi sonli-taqribiy yechimini topish lozim bo’lsin.
xi nuqtalar uchun yuqoridagi (1) tenglama o’rinli bo’lgani uchun, uni shu nuqtalarda yozib olamiz:
Qulaylik uchun, bu tenglamani quyidagi ko’rinishda yozib olamiz:
(3)
Mavjud (2) differentsial tenglamadagi yi’, yi’’ hosilalar o’rniga hosil qilingan chekli aymrmali formulalarni qo’yamiz va (3) differentsial tenglama o’rniga hosilalar qatnashmagan va yi noma`lumlardan iborat tenglamalarni hosil qilamiz.
Amalda quyidagi chekli-ayirmali formulalardan keng foydalaniladi:
1.O’ng chekli-ayirmali formula: , xatolik darajasi 0(h)
2. Chap chekli ayirmali-formula: , xatolik darajasi 0(h)
3. Markaziy chekli-ayirmali formula: , xatolik darajasi 0(h)
Hosil qilingan chekli-ayirmali formulalarni (3) differentsial tenglamaga qo’yamiz:
.
Hosil bo’lgan tenglamani har ikkala tomonini h2ga ko’paytiramiz va mos hadlarni gruppalaymiz:
bo’ladi.
Quyidagicha belgilashlar kiritish natijasida:
(4)
quyidagi tenglamalar sistemasini hosil qilamiz:
(5)
Hosil qilingan tenglamalarni (5) tenglamalar sistemasiga “ulaymiz” va natijada (n1)ta noma`lumli, (n1)ta tenglamadan iborat y0,y1,..,yn noma`lumlarga nisbatan yozilgan quyidagi chiziqli algebraik tenglamalar sistemasiga ega bo’lamiz:
( ) (6)
Quyida “Haydash” usulining qisqacha mohiyati bilan tanishib chiqamiz.
Maxsus, diagonalli sistemalarni yechishga mo’ljallangan “Haydash” usuli ikki bosqichdan iborat:
noma`lum koeffitsentlarni aniqlash (to’g’ri) bosqichi
sistemaning yechimlarini aniqlash (teskari) bosqichi
1-bosqichda (6) sistemaning noma`lum yechimini quyidagi ko’rinishda qidiramiz:
(7)
bu yerda: ; lar noma`lum haydash koeffitsientlari.
,
2-bosqichda ; noma`lum koeffitsentlarning barcha qiymatlari topilgach (7) rekkurent formula yordamida qidirilayotgan yechim yi larni topish mumkin.
Qidirilayotgan yn hisoblangach, rekkurent formulasi yordamida (yi) barcha qolgan yechimlar topiladi.
Bu jarayon i ga nisbatan teskari tartibda bo’lgani uchun, uni haydashning teskari bosqichi deb ataymiz.
Usulga mos algoritm blok-sxemasi quyidagicha ko’rinishda bo’ladi:
Algoritmning dastur matni :
program chekli_a;
uses crt; const nq10;
var m0,m1,m2,g0,g1,g2,a,b,h,x:real;
A0,B0,C0,An,Bn,Cn,Ai,Bi,Ci,Di:real;
i:integer;
al,be:array[1..n] of real;
y:array[0..n] of real;
function p(x:real):real; begin p:=-2;end;
function q(x:real):real; begin q:=x*x*x;end;
function f(x:real):real;
begin f:=12*x*x-8*x*sqr(x)+exp(7*ln(x)); end;
begin
write('m0,m1,m2,g0,g1,g2q');
readln(m0,m1,m2,g0,g1,g2);
write('a,bq'); readln(a,b);
h:=(b-a)/n; A0:=h*m0-m1; B0:=m1; C0:=h*m2;
An:=h*g0+g1; Bn:=-g1; Cn:=h*g2;
al[1]:=-B0/A0;
be[1]:=C0/A0;
for i:=1 to n-1 do
begin
x:=a+i*h; Ai:=1+(h/2)*P(x);
Bi:=2-h*h*q(x);
Ci:=1-(h/2)*P(x);Di:=h*h*f(x);
al[i+1]:=Ai/(Bi-Ci*al[i]);
be[i+1]:=(Ci*be[i]-Di)/(Bi-Ci*al[i]);
end;
y[n]:=(Cn-Bn*be[n])/(An+Bn*al[n]);
for i:=n-1 downto 1 do y[i]:=y[i+1]*al[i+1]+be[i+1];
for i:=0 to n do writeln(y[i]:2:8,' ',sqr(h*i)*sqr(h*i):2:8, ' ',abs(y[i]-sqr(i*h)*sqr(i*h)):2:8);
end.
3. Galyorkin usulining ishchi algoritmi va dasturiy ta`minoti
Dostları ilə paylaş: |