Nazorat savollari:
3,4-LABORATORIYA ISHI
Mavzu: Transendent tenglamalarni taqribiy echish usullari.
Kerakli texnik vositalar: shaxsiy kompyuter.
Kerakli dasturiy vositalar:
Turbo Paskal dasturlash sistemasi va transendent tenglamalarni echish uchun oraliqni teng ikkiga bo‘lish, vatarlar va urinmalar usullariga tuzilgan dasturlar.
Ishning maqsadi: Talabalarni transendent tenglamalarni taqribiy echish algoritmi bilan tanishtirish va unga Paskal tilida tuzilgan dasturda ishlashga o‘rgatish.
Nazariy qism
CHekli [a,b] oraliqda aniqlangan va uzluksiz f(x) funkiya berilgan bo‘lib, uning birinchi va ikkinchi tartibli hosilalari shu oraliqda mavjud bo‘lsin. SHu bilan birga [a,b] da f’(x) funksiya o‘z ishorasini saqlasin.
f(x)=0 (1)
tenglama [a,b] oraliqda yagona echimga ega bo‘lsin va bu echimni berilgan >0 aniqlikda topish talab qilingan bo‘lsin. Quyida bu echimni aniqlash uchun bir necha sonli usullar, ularning Paskal algoritmik tilida tuzilgan programmalarni keltiramiz.
Oraliqni teng ikkiga bo‘lish usuli. [a,b] oraliqni x0=(a+b)/2 nuqta orqali ikkita teng [a,x0] va [x0,b] oraliqlarga ajratamiz. Agar a-x0 bo‘lsa, x=x0 (1) tenglamaning aniqlikdagi taqribiy echimi bo‘ladi. Bu shart bajarilmasa, [a,x0] va [x0,b] oraliqlardan (1) tenglama ildizi joylashganini tanlab olamiz va uni [a1,b1] deb belgilaymiz. x1=(a1+b1)/2 nuqta yordamida [a1,b1] oraliqni ikkita teng [a1,x1] va [x1,b1] oraliqlarga ajratamiz. a1-x1 bo‘lsa, x=x1 (1) tenglamaning aniqlikdagi taqribiy echimi bo‘ladi, aks holda [a1,x1] va [x1,b1] oraliqlardan (1) tenglama ildizi joylashganini tanlab olamiz va uni [a2,b2] deb belgilaymiz. Bu oraliq uchun yuqoridagi hisoblashlar ketma-ketligini ai-xi (i=2,3,4,…) shart bajarilguncha davom ettiramiz. Natijada (1) tenglamaning x=xi taqribiy echimini hosil qilamiz.
Misol. f(x)=x4-x3-2x2+3x-3 tenglamaning [-2;1] oraliqdagi ildizini =0,01 aniqlikda hisoblang.
Echish. 7- qadamda a7=-1,7305 va b7=-1,7363 bo‘lib, a7-b7=0,01 shart bajariladi.
(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.
Vatarlar usuli. Aniqlik uchun f(a)>0 ( f(a)<0 ) bo‘lsin. A=A(a;f(a)), B=B(b;f(b)) nuqtalardan to‘ѓri chiziq o‘tkazamiz va bu to‘ѓri chiziqni Ox o‘qi bilan kesishish nuqtasini deb belgilaymiz. Agar |a-x1| bo‘lsa, x=x1 (1) tenglamaning aniqlikdagi taqribiy echimi bo‘ladi. Bu shart bajarilmasa, b=x1 (a=x1) deb olamiz. A, B nuqtalardan to‘ѓri chiziq o‘tkazamiz va uning Ox o‘qi bilan kesishish nuqtasini deb olamiz. Agar |x2-x1| shart bajarilsa, x=x2 (1) tenglamaning aniqlikdagi taqribiy echimi bo‘ladi, aks holda b=x2 (a=x2) deb olib, yuqoridagi amallar ketma-ketligini |xi-xi-1| (i=3,4,…) shart bajarilguncha davom ettiramiz. Natijada (1) tenglamaning x=xi taqribiy echimini hosil qilamiz.
xn larning ketma-ket hisoblash formulasi quyidagi ko‘rinishga ega bo‘ladi:
Misol. tg(0,55x+0,1)-x2=0 tenglamaning [0,6;0,8] oraliqdagi ildizini =0,005 aniqlikda hisoblang.
Echish. x2-x1=0,002< bajariladi. x2=0,7517; x1=0,7417 bundan x=0,7517.
Vatarlar usuliga Paskal tilida tuzilgan dasturning ko‘rinishi:
program vatar; uses crt; {Vatarlar usuli}
label 1,2;
var a,b,eps,x: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);
2: x:=b;
x:=b-f(b)*(b-a)/(f(b)-f(a));
if abs(x-b)1 else begin b:=x; goto 2 end;
1: writeln('x=',x:8:4);
end.
Urinmalar usuli. [a,b] oraliqda f/(x) va f//(x) ning ishoralari o‘zgarmasdan qolsin. f(x) funksiya grafigining V=V(b,f(b)) nuqtasidan urinma o‘tkazamiz. Bu urinmaning Ox o‘qi bilan kesishgan nuqtasini b1 deb belgilaymiz. f(x) funksiya grafigining V1=V1(b1,f(b1)) nuqtasidan yana urinma o‘tkazamiz va bu urinmaning Ox o‘qi bilan kesishgan nuqtasini b2 deb belgilaymiz. Bu jarayonni bir necha marta takrorlab, b1,b2,...,bn larni hosil qilamiz. shart bajarilganda hisoblash to‘xtatiladi.
Misol. tg(0,55x+0,1)-x2=0 tenglamaning [0,6;0,8] oraliqdagi ildizini =0,005 aniqlikda hisoblang.
Echish. b2-b1=0,002; x=b2 =0,7503.
Urinmalar usuliga Paskal tilida tuzilgan dasturning ko‘rinishi:
program urinma; uses crt; {Urinmalar usuli}
var x0,eps,x1,a:real;
function f(x:real):real;
begin
f:= { f(x) funksiyasining ko‘rinishi }
end;
function fx(x:real):real;
begin
fx:= { f’(x) funksiyasining ko‘rinishi}
end;
begin clrscr;
write('x0='); read(x0);
write('eps='); read(eps);
x1:=x0;
repeat
a:=f(x1)/fx(x1);
x1:=x1-a;
until abs(a)
writeln('x=',x1:10:4);
end.
Do'stlaringiz bilan baham: |