Misol. f(x)=x4-x3-2x2+3x-3 tenglamaning [-2;1] oraliqdagi ildizini =0,01aniqlikda hisoblang.
Yechish. 7- qadamda a7=-1,7305 va b7=-1,7363 bo’lib, a7-b7=0,01shart bajariladi.
1,7334 1,7327 7a bx(javob: =-1,73(0,01)).
Oraliqni teng ikkiga bo’lish usuliga Paskal tilida tuzilgan dastur matni:program oraliq2; uses crt; {Oraliqni teng ikkiga bo’lish usuli}
var a,b,eps,x,fa,fc,c:real;
function f(x:real):real; begin
f:= { f(x) funksiyasining ko’rinishi }
end;
begin clrscr;
write('a='); read(a);
write('b='); read(b);
write('eps='); read(eps);
fa:=f(a);
while abs(b-a)>eps do
begin
c:=(a+b)/2; fc:=f(c);
if fa*fc<=0 then b:=c else begin a:=c; fa:=fc end;
end;
writeln('x=',c:10:4);
end.
Tenglamalarning ildizlarini EHM yordamida ajratish. Tenglamalarni ildizinikesmani teng ikkiga bo‘lish usulida topishni algoritmlash va dasturlash.Ishdan maqsad: Tenglamalarning ildizlarini kesmani teng ikkiga bo’lishusulida aniqlash algoritmini va dasturini tuzishni o’rganish.Amaliyotda ko’pincha
f(x)=0
(1.1)kabi tenglamalarning ildizini taqribiy hisoblab topishga to’g’ri keladi. 1.1-teorema . Aytaylik,1. f(x) funktsiya [a,b] kesmada uzluksiz va (a,b) intervalda hosilaga egabo‘lsin;
2. f(a).f(b)<0, ya’ni f(x) funktsiya kesmaning chetlarida har xil ishoraga egabo‘lsin;
3. f’(x) hosila (a,b) intervalda o‘z ishorasini saqlasin. U holda, (1.1) tenglama [a,b] oraliqda yagona yechimga ega bo‘ladi.f(x)=0 tenglama berilgan bo‘lsin. [a,b] kesmada u=f(x) funktsiya 1.1-teoremaningbarcha shartlarini qanoatlantirsin.Bu holda, [a,b] kesmani t0=(a+b)/2 nuqta yordamida teng ikkiga bo‘lamiz: agarf(t0)=0 bo‘lsa, x=t0 yechim bo‘ladi. f(t0) 0 bo‘lgan holda, agar f(a)f(t0)
1.1-teoremaga ko‘ra, x=t ildiz [a1,b1]=[a,t0] oraliqda, aks holda [a1, b1]=[t0, b]oraliqda yotadi.1. x=t0 aniq yechim bo‘lmagan holda [a1,b1] oraliqni t1=(a1+b1)/2 nuqtayordamida teng ikkiga bo‘lamiz: agar f(t1)=0 bo‘lsa, x=t1 yechim bo‘ladi. f(t1) 0bo‘lgan holda, agar f(a1)f(t1)<0bo‘lsa, 1.1-teoremaga ko‘ra x=t ildiz [a2,b2]=[a1, t1]oraliqda, aks holda [a2, b2]=[t1, b1] oraliqda yotadi.2. Bu jarayonni takrorlash natijasida biror qadamda ma’lum aniqlikdagitaqribiy ildizni olamiz. Aniq ildiz olinmagan taqdirda, jarayonni takrorlashnicheksiz davom ettirib, {tn} ketma-ketlikni olamiz. Hosil qilingan ketma-ketlikyaqinlashuvchi bo‘lib, uning limiti f(x)=0 tenglamaning ildizidan iborat bo‘ladi.Berilgan aniqlikdagi taqribiy ildizni olish uchun jarayonni shart bajarilgunchadavom ettirish kifoya bo‘lib, taqribiy ildiz sifatidax= (an +bn)/2ni qabul qilamiz.1.1-masala. ex-10x -2=0 tenglama yechimi kesmani teng ikkiga bo‘lish usulidae=0,01 aniqlik bilan toping.Yechish. f(x)=ex-10x-2 funktsiya [-1,0] oraliqda 1.1-teoremaning barchashartlarini qanoatlantiradi. Shuning uchun tenglamaga kesmani teng ikkiga bo‘lish usulini ishlatish mumkin.
1. [-1,0] oraliqni t0=(-1+0)/2=-0.5 nuqta yordamida teng ikkiga bo‘lamiz.f(t0)=e-0.5 + 5 – 2 >0 , f(-1)=8.386>0 , f(0)=-1<0bo‘lganligi uchun yechim [-0.5, 0] oraliqda yotadi.2. bu oraliqni t1=(-0.5+0)/2=-0.25 nuqta yordamida teng ikkiga bo‘lamiz.f(-1).f(-0,25)=8,386.1,279>0bo‘lganligi uchun yechim [a2, b2]=[-0.25, 0] oraliqda yotadi.Aniqlik |b2-a2|=0.25>2e etarli bo‘lmagani uchun [-0.25, 0] oraliqnit2=(0-0.25)/2=0.125nuqta yordamida teng ikkiga bo‘lamiz.3. f(-0.125)=0.132 >0 bo‘lganligi uchun yechim [a3,b3]= [-0.125, 0] oraliqdayotadi. Aniqlik |a3-b3|=0.125>2e=0.02 etarli bo‘lmagani uchun [-0.125,0] oraliqnit3=(0.125+0)/2= =-0.063nuqta yordamida teng ikkiga bo‘lamiz.4.f(-0.063)=-0.4610 bo‘lgani uchun yechim [a4,b4]=[-0.125,-0.063] oraliqda yotadi. |a4 –b4|=0.062 >2e=0.02 etarli bo‘lmaganligi uchun [-1.125,-0.063] oraliqnit4= (-0.125 - 0. 063)/2=-0.094nuqta yordamida teng ikkiga bo‘lamiz.5.f(-0.094)=-1.8410 bo‘lgani uchun yechim [-0.125, -0.094]oraliqda yotadit5= (-0.125- 0.094)/2= -0.1095|a5-b5|=0.031>2e=0.02, bo‘lgani uchun yechim [-0.125, -0.1095] oraliqda, f(-0.1095)=-0.00872<2e=0,02bo‘lgani uchun taqribiy ildiz bo‘ladi.Quyida ex-10x-2=0 tenglamani kesmani teng ikkiga bo’lish usuli bilanyechishning blok-sxemasi va Delphi dasturlash tilida yozilgan dasturi keltirilgan:ex-10x-2=0 tenglamani kesmani teng ikkiga bo’lish usuli bilan yechishning Delphidasturlash tilida tuzilgan dasturi:
unit kesmau;
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;
Button1: TButton;
Edit2: TEdit; Edit3: TEdit;
Edit1: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
procedure Button1Click(Sender: TObject)
;private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;i
mplementation{
$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var a,b,x,f,f1,f2,E:real;
var i:integer;l
abel 1,2;
begin
a:=strtofloat(Edit1.Text);
b:=strtofloat(Edit2.Text);
E:=strtofloat(Edit3.Text);
i:=0;
1:
i:=i+1;
x:=(a+b)/2
;f:=Exp(x)-10*x-2;
if F=0 then goto 2
else begin
f1:=Exp(a)-10*a-2;
f2:=Exp(b)-10*b-2;
if (ABS(f2-f1)0) then
begin
x:=(a+b)/2;
goto 2
end
else
begin
if (f*f1>0) then a:=x
else b:=x;
goto 1;
end;
end;
2:
edit4.Text:='Yechim topildi';
edit5.Text:=inttostr(i);
edit6.Text:=floattostr(x);
end;
end.
Do'stlaringiz bilan baham: |