Texnologik jarayonlarni avtomatlashtirish va modellashtirish



Yüklə 1,19 Mb.
səhifə15/64
tarix17.03.2023
ölçüsü1,19 Mb.
#88371
1   ...   11   12   13   14   15   16   17   18   ...   64
Texnologik jarayonlarni avtomatlashtirish va modellashtirish

Nazorat savollari:

  1. Chiziqsiz yoki transendent tenglama tushunchasi.

  2. Chiziqsiz tenglama yechimining mavjudlik sharti.

  3. Oraliqni teng ikkiga bo’lish usuli va uning algoritmi.

  4. Vatarlar usuli va uning algoritmi.

  5. Urinmalar usuli va uning algoritmi.



MA’RUZA:№ 4
Matematik modellashtirishdagi differensial tenglamalarni yechishdagi sonli usullar


Mavzu: Boshlang’ich shartli oddiy differensial tenglamalarni sonli yechish usullari.
Eyler usuli. [a,b] kesmada
y’=f(x,y)
differensial tenglamaning
y(a)=x0
boshlang’ich shartni qanoatlantiruvchi yechimini topish talab etilsin.
Eyler usulining mohiyati [a,b] kesmani n ta oraliqqa ajratamiz, ya’ni
xi=a+ih=xi-1+h, (x0=a)
nuqtalarni hosil qilamiz, bu yerda h=(b-a)/n
Funksiyaning bu nuqtalardagi qiymatlarini ushbu formula
yi=yi-1+hf(xi-1,yi-1)
bilan hisoblanadi.
Misol. tenglamaning [0,1] kesmada u(0)=1 boshlang’ich shartni qanoatlantiruvchi yechimining taqribiy qiymatlar jadvalini tuzing.
Echish. n=10, h=0,1 bo’lsin. Ushbu formuladan
,
yi ning qiymatlari topiladi, i=1,10.

i

xi

yi

f(xi,yi)

f(xi,yi)h

0

0

1

0

0

1

0,1

1

0,05

0,005

2

0,2

1,005

0,1005

0,0100

3

0,3

1,0150

0,1522

0,0152

4

0,4

1,0303

0,2061

0,0206

5

0,5

1,0509

0,2627

0,0263

6

0,6

1,0772

0,3232

0,0323

7

0,7

1,1095

0,3883

0,0388

8

0,8

1,1483

0,4593

0,0459

9

0,9

1,1942

0,5374

0,0537

10

1,0

1,2479







Aniq yechim: , , , , u(0)=1, S=1, , .
Differensial tenglamani Eyler usulida yechish uchun Paskal tilida tuzilgan dasturning ko’rinishi:
program eyler; uses crt;
var a,b,y:real; n:integer;
function f(x,y:real):real;
begin
f:=y-2*x*x+4*x-1 {f(x,y) funksiyasining ko’rinishi}
end;
procedure eyler_1(a,b,y:real;n:integer);
var h,x:real; i:integer;
begin
h:=(b-a)/n;
x:=a;
writeln('x=',x:6:2,' y=',y:8:4);
for i:=1 to n do
begin
y:=f(x,y)*h+y;
x:=x+h;
writeln('x=',x:6:2,' y=',y:8:4);
end;
end;
begin
clrscr;
write('a='); read(a);
write('b='); read(b);
write('n='); read(n);
write('y0='); read(y);
eyler_1(a,b,y,n);
end.
Runge-Kutta usuli. Ushbu
(1)
oddiy differensial tenglamalar sistemasi berilgan bo’lib, uning [a,b] oraliqdagi
y1(x0)=y10, y2(x0)=y20, …, yn(x0)=yn0 (2)
boshlang’ich shartni qanoatlantiruvchi yechimini topish talab qilinsin(x0=a).
Agar va belgilashlar kiritsak, (1) va (2) ni quyidagicha yozishimiz mumkin.
Y’ = F(x,Y) (3)
Y(x0) = Y0 (4)
Bu yerda .
(3) tenglamalar sistemasining (4) boshlang’ich shartni qanoatlantiruvchi yechimini Runge-Kutta usuli yordamida topamiz. Buning uchun xi=a+ih, Yi=F(xi), i=1,2,…,n belgilashlarni kiritib, quyidagi hisoblashlar ketma-ketligi bajaramiz:

(5)
Bu yerda h=(b-a)/n.
Bu hisoblashlar ketma­ketligi i=1 dan n-1 gacha takroriy ravishda hisoblanadi, va (5) tenglikda differensial tenglamaning u=u(x) taqribiy yechimlari hosil bo’ladi.
Misol. Quyidagi

differensial tenglamalar sistemasini

boshlang’ich shartni qanoatlantiruvchi yechimini Runge-Kutta usulidan foydalanib toping (a=0, b=1, n=10 deb oling).
Yechish. Berilgan Koshi masalasi ushbu

aniq yechimga ega. Masalaning aniq va Runge-Kutta usuliga tuzilgan dastur yordamida topilgan taqribiy yechimlari quyidagi jadvalda keltirilgan.











aniq yechim

taqribiy yechim

aniq yechim

taqribiy yechim

0,0

-1.000000000

-1.000000000

1.000000000

1.000000000

0,1

-1.090000000

-1.090000000

0.890000000

0.889999166

0,2

-1.160000000

-1.160000084

0.760000000

0.759998408

0,3

-1.210000000

-1.210000253

0.610000000

0.609997710

0,4

-1.240000000

-1.240000511

0.440000000

0.439997058

0,5

-1.250000000

-1.250000862

0.250000000

0.249996438

0,6

-1.240000000

-1.240001315

0.040000000

0.039995840

0,7

-1.210000000

-1.210001877

-0.190000000

-0.190004750

0,8

-1.160000000

-1.160002561

-0.440000000

-0.440005343

0,9

-1.090000000

-1.090003380

-0.710000000

-0.710005952

1,0

-1.000000000

-1.000004350

-1.000000000

-1.000006587

Differensial tenglamalar sistemasi uchun Koshi masalasini Runge-Kutta usulida yechish uchun Paskal tilida tuzilgan dasturning ko’rinishi:




program rungi; uses crt;
const nurav=2;
type vector2=array[1..nurav] of real;
var
y0,y: vector2;
n,i,j:integer;
a,b,x0,x1,h:real;
procedure pv(x: real; y: vector2; var dy: vector2);
begin
dy[1]:=2*exp(-x)-y[1];
end;
procedure rungikytta(x: real; y0: vector2; var dy: vector2);
var v3,fc,fk1,fk2,fk3,fk4: vector2;
begin
pv(x,y0,fc);
for i:=1 to nurav do begin fk1[i]:=h*fc[i];
v3[i]:=y0[i]+0.5*fk1[i] end;
x:=x+0.5*h;
pv(x,v3,fc);
for i:=1 to nurav do begin fk2[i]:=h*fc[i];
v3[i]:=y0[i]+0.5*fk2[i] end;
pv(x,v3,fc);
for i:=1 to nurav do begin fk3[i]:=h*fc[i];
v3[i]:=y0[i]+fk3[i] end;
x:=x+0.5*h;
pv(x,v3,fc);
for i:=1 to nurav do begin fk4[i]:=h*fc[i];
dy[i]:=y0[i]+0.166666667*(fk1[i]+2*fk2[i]+2*fk3[i]+fk4[i]) end;
end;
begin clrscr;
write('a='); read(a);
write('b='); read(b);
write('n='); read(n);
h:=(b-a)/n;
x0:=a;
for i:=1 to nurav do
begin
write('y0[',i:1,']='); read(y0[i]);
end;
writeln; writeln;
write('x=',x0:5:2);
for i:=1 to nurav do write(' y[',i:1,']=',y0[i]:10:6);
writeln;
x1:=a;
for j:=1 to n do begin
rungikytta(x1,y0,y);
x1:=a+j*h;
write('x=',x1:5:2);
for i:=1 to nurav do write(' y[',i:1,']=',y[i]:10:6);
x0:=x1; y0:=y;
writeln;
end;
end.


Chegaraviy shartli oddiy differensial tenglamalarni yechish uchun oddiy progonka va differensial progonka usullari.
Oddiy progonka usuli. oraliqda
(1)
differensial tenglamaning
(2)
chegaraviy shartlarni qanoatlantiruvchi yechimini topish talab qilinsin. Bu yerda , - oraliqda berilgan uzluksiz funksiyalar bo’lib, - lar va shartlarni qanoatlantirsin.
Teorema. Agar , funksiyalar oraliqda ikki marta uzluksiz differensiallanuvchi va bo’lsa, (1), (2) chegaraviy masala yagona yechimga ega bo’ladi.
oraliqni nuqtalar bilan to’r(setka)ga ajratib, , , belgilashlarni kiritamiz. Ichki nuqtalar uchun chekli ayirmalardan foydalanib, aniqlikda (1) tenglamani
(3)
(2) chegaraviy shartni esa
(4)
ko’rinishda yozib olamiz.
(3) da ekanligini hisobga olib, uni (4) ga qo’yamiz va

tenglikni hosil qilib, uni

ko’rinishda yozib olamiz. Bu yerda , .
Xuddi shunga o’xshash (3) da ekanligini hisobga olib, uni (4) ga qo’yamiz va

tenglikni hosil qilib, uni
(5)
ko’rinishda yozib olamiz. Bu yerda , .
(3) va (4) birgalikda – noma’lumlarni o’z ichiga olgan ta chiziqli algebraik tenglamalar sistemasini tashkil etadi.
Agar sistemani
,
matrisa ko’rinishida ifodalasak, uchta diagonalidagi elementlar noldan farqli matrisa (uchdiagonalli matrisa) bo’ladi. Bu sistemani Gauss, Kramer, teskari matrisa usullari bilan yechish yaxshi samara bermaydi. Shu sababli bu sistemani yechish uchun progonka usulidan foydalanamiz.
Umumiy
, (6)
ko’rinishdagi uchdiagonalli tenglamalar sistemasi berilgan bo’lsin. Bu yerda lar ga bog’liq o’zgarmaslar.
(6) ning yechimini
, (7)
ko’rinishda ifodalaymiz. Bu yerda - lar ma’lum, - lar esa hozircha noma’lum koeffisientlar.
(7) da ni ga almashtirib, ga ega bo’lamiz va o’rniga uning (7) dagi ifodasini olib kelib qo’yamiz. Natijada
, (8)

tenglikni hosil qilamiz. (7), (8) larni (6) ga olib borib quyib,


tenglikga ega bo’lamiz. Bu tenglikda oldidagi koeffisientlarni hamda ozod hadlarni nolga tenglashtirib,


tengliklarni hosil qilamiz. Bu yerdan larni hisoblash uchun
(9)
formulalarga ega bo’lamiz. (9) to’g’ri progonka formulasi deb ataladi va u larni bilgan holda larni hisoblash imkonini beradi.
larning qiymatlarini aniqlab, ularni (5) ga qo’ysak, natijada

yoki

ga ega bo’lamiz. ni bilgan holda, (7) formula yordamida larning qiymatlarini hisoblaymiz. Bu amal teskari progonka deb ataladi.

Yüklə 1,19 Mb.

Dostları ilə paylaş:
1   ...   11   12   13   14   15   16   17   18   ...   64




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2025
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin