§-2.7. ODDIY DIFFERENTSIAL TENGLAMALARNI YECHISHNING EYLER USULI
Oddiy differensial tenglamalarda faqat bir o`zgaruvchiga bog’liq funksiya va uning hosilalari qatnashadi, ya`ni
(7.1)
Differentsial tenglamaning umumiy yechimi deb, uni ayniyatga aylantiruvchi va n ta o`zgarmaslarga bog’liq ixtiyoriy funksiyaga aytiladi. Masalan (7.1) tenglamaning umumiy yechimi ko`rinishdagi funksiyalardan iborat. Agar o`zgarmaslarga muayyan qiymatlar berilsa, umumiy yechimdan xususiy yechim hosil qilinadi. Xususiy yechimni topish uchun o`zgarmaslarning mos qiymatlarini aniqlash lozim. Buning uchun esa yechimni qanoatlantiruvchi qo`shimcha shartlarga ega bo`lishimiz kerak. Agar differentsial tenglama n-tartibli bo`lsa, yagona xususiy yechimni topish uchun xuddi shuncha qo`shimcha shartlar kerak. Xususan, 1-tartibli tenglama ( ) ning umumiy yechimi dagi s o`zgarmasni topish uchun 1 ta qo`shimcha shartning berilishi kifoya.
Agar qo`shimcha shartlar bitta nuqtada berilsa, differentsial tenglamani yechish uchun qo`yilgan masala Koshi masalasi deyiladi.
Differentsial tenglamalarni yechishning sonli usullarida esa yechim analitik shaklda emas, balki sonlar jadvali ko`rinishida olinadi. Albatta bunda differentsial tenglamalar oldin diskret tenglamalar bilan almashtirib olinadi. Natijada sonli usullar vositasida olingan yechim ham taqribiy bo`ladi.
O
7.1-rasm
ddiy differensial tenglamalarniu yechish uchun Eyler usuli
Bizga quyidagi birinchi tartibli differentsial tenglama (Koshi masalasi) ni
(7.2)
oraliqdagi boshlang’ich shartni qanoatlantiruvchi yechimini topish lozim bo`lsin.
Koshi masalasini Eyler usuli yordamida yechish uchun, dastlab differentsial tenglamaning yechimi qidiriladigan [a, b] kesmani tugun nuqtalar bilan bo`laklarga bo`lamiz. Tugun nuqtalarning koordinatalari formula orqali aniqlanadi. Har bir tugunda y(xi) yechimning qiymatlarini chekli ayirmalar yordamida taqribiy yi qiymatlar bilan almashtiriladi.
Ma`lumki, funksiyaning nuqta atrofidagi Teylor qatoriga yoyilmasini quyidagicha yozish mumkin:
Ushbu cheksiz qatorning boshidagi ikkita had bilan chegaralanib, birinchi tartibli hosila qatnashgan hadni aniqlash natijasida quyidagi chekli ayirmali formulani hosil qilamiz:
(7.3)
Ushbu almashtirishning geometrik ma`nosi quyidagicha: hosilaning geometrik ma`nosiga ko`ra
(7.3) dan
7.2-rasm
Demak, chekli ayirmalar formulasi hosilaning asl qiymatidan ga farq qiladi, ya`ni BE qancha kichik bo`lsa, chekli ayirma hosilaga shuncha yaqin bo`ladi. Rasmdan da ekanini ko`rish mumkin. (7.2) va (7.3) dan ekanini hisobga olib, quyidagini hosil qilamiz:
(7.4)
Hosil qilingan (7.4) formula Eyler usulining asosiy ishchi formulasi bo`lib, uning yordamida tugun nuqtalarga mos bo`lgan differentsial tenglamaning xususiy yechimlarini topish mumkin. Yuqoridagi formuladan ko`rinib turibdiki, yechimni topish uchun yechimnigina bilish kifoya. Demak, Eyler usuli bir qadamli usullar jumlasiga kiradi.
DELPHI da oddiy differensial tenglamalarni Eyler usuli bilan yechush jarayonini quyidagi misol orqali bayon qilamiz.
Masala: Quyidagi
differentsial tenglamani
boshlang’ich shart uchun yeching.
Yechish: Ushbu topshiriqni DELPHI dasturlash tili yordamida quyidagi ketma-ketlikda hal qilinadi.
1. dastur uchun interfeys ishlab chiqiladi. Buning uchun
a) bo’sh forma yaratiladi va uning CAPTION hususiyatini “Oddiy differentsial tenglamalarni yechish” qilib o’rnatamiz ;
b) Formaga oltita LABEL componentasi joylashtiriladi. Ularning CAPTION hususiyatlarini 7.3-rasmdagi kabi moz ravishda “Eyler usuli”, “Berilgan tenglama ”, “Boshlang’ich shart”, “Oraliq”, “a=”, “b=” tarzida o’rnatamiz.
c) formaga yana 3 ta LABEL komponentalarini joylashtirib, ularning CAPTION hususiyatlarini mos ravishda “Qadamlar soni =”, “x0=”, “y0=” qilib o’zgartiramiz.
d) Hisoblangan natijalarni formaga chiqarish uchun uchta LABEL compo-nenttatalarni joylab, ularning CAPTION hususiyatlarini “№”, “x=”, “y=” tarzida o’rnatamiz.
e) oraliqlarni kiritish uchun EDIT1 va EDIT2, x0 va y0 larni kiritish uchun EDIT3 va EDIT4, oraliqlar sonini ko’rsatish uchun EDIT5 komponentalarini formaga joylashtiramiz. Ularning FONT hususiyatlarini forma o’lcha,lariga mos qilib o’rnatiladi, TEXT hususiyatini esa bo’shatamiz.
f) Formaga ikkita buyruqli tugmalar joylashtiramiz va ularning CAPTION hususiyatlarini mos ravishda “HISOBLASH” hamda “ISHNI YAKUNLASH” shaklida o’zgartiramiz.
Natijada dasturning 7.3-rasmdagi interfeysi hosil bo’ladi.
7.3-rasm. Dastur interfeysi.
Shundan keyin, buyruqli tugmalar uchun hodisalarni qayta ishlagichlarni yozishga o’tamiz. Ularning listingi quyidagicha:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var x0, y0, y1, a, b, h : real;
n, i : integer;
begin
x0:=Strtofloat(Edit1.Text);
y0:=Strtofloat(Edit2.Text);
a:=Strtofloat(Edit3.Text);
b:=Strtofloat(Edit4.Text);
n:=Strtoint(Edit5.Text);
h:=(b-a)/n;
x0:=a;
Label10.caption:='0'+#13;
Label11.caption:=Edit1.text+#13;
Label12.caption:=Edit2.text+#13;
for i:=0 to n-1 do begin
x0:=x0+h;
y1:=y0+h*(2+y0)*cos(x0);
Label10.caption:=Label10.caption+Inttostr(i)+#13;
Label11.caption:=Label11.caption+floattostr(x0)+#13;
Label12.caption:=Label12.caption+floattostr(y1)+#13;
y0:=y1;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Form1.Close;
end;
end.
Ushbu dastur ishga tushirilganda u quyidagicha ko’rinishda natija beradi.
7.4-rasm. Dasturning ishchi oynasi.
§-2.8. ODDIY DIFFERENTSIAL TENGLAMALARNI YECHISHNING RUNGE-KUTTA USULI
Oddiy differentsial tenglamalarni yechishning bir qadamli oshkor usullarning bir necha hili mavjud bo`lib, ularning ichida amalda eng ko`p ishlatiladigani Runge-Kutta usuli hisoblanadi.
Bizga quyidagi birinchi tartibli differentsial tenglamani (Koshi masalasi)
(8.1)
oraliqdagi boshlang’ich shartni qanoatlantiruvchi yechimini topish talab qilingan bo`lsin.
Runge-Kutta usulining g’oyasiga ko`ra har bir yangi tugun nuqtadagi yechimni topish uchun funktsiyani 4 marta har hil argumentlar uchun hisoblash kerak. Bu jihatdan Runge-Kutta usuli hisoblash uchun nisbatan ko`p vaqt talab qiladi. Lekin Eyler usulidan ko`ra aniqligi yuqori bo`lganligi uchun, undan amalda keng foydalaniladi.
Usulning ishchi formulasi quyidagicha yoziladi:
bu yerda ;
Oddiy differensial tengamalarni Runge-Kutta usuli bilan DELPHI dasturlash tili muhitida yechish jarayonini quyidagi misol namunasida bayon etamiz.
Masala. Quyidagi
differentsial tenglamani
boshlang’ich shart uchun yeching.
Do'stlaringiz bilan baham: |