Масаланинг ќўйилиши: [a,b] оралиќда аниќланган узлуксиз f(x) функция берилган бўлиб биздан ќуйидаги
(1)
интегрални ҳисоблаш талаб ќилинган бўлсин. Баъзи ҳолларда f(x) функциянинг берилишига ќараб бу интегрални аниќ ҳисоблашимиз мумкин. Амалий ишларда f(x) функция шундай кўринишга эга бўладики, (1) интегрални аниќ ҳисоблаб бўлмайди. Бундай ҳолларда (1) интегрални берилган аниќликда таќрибий ҳисоблашга тўѓри келади.
Ќуйида аниќ интегрални ҳисоблаш учун бир неча таќрибий усуллар, уларнинг алгоритми ва унга мос Паскаль алгоритмик тилида тузилган программалари келтирилган.
Тўѓри тўртбурчаклар усули. х0=а, хn=b, n – натурал сон бўлсин. Ушбу формулалар ёрдамида (1) интегрални таќрибий ҳисоблаш мумкин:
бу ерда xi=xi-1+h, yi=f(xi), i=1,2,…,n.
Тўѓри тўртбурчак усули учун хатолик ќуйидагича аниќланади:
|I-S|
Аниќ интегрални тўѓри тўртбурчак усулида ҳисоблаш учун Паскаль тилида тузилган дастурнинг кўриниши:
program turt_bur; uses crt;
var a,b,int:real; n:integer;
function f(x:real):real;
begin
f:= { f(x) функциянинг кўриниши }
end;
procedure turtburchak(a1,b1:real;n1:integer; var int1:real);
var i:integer; h1,c:real;
begin
h1:=(b1-a1)/n1;
c:=0; int1:=0; c:=a1-h1/2;
for i:=1 to n1 do
begin
c:=c+h1; int1:=int1+f(c)
end;
int1:=int1*h1;
end;
begin
read(a,b,n);
turtburchak(a,b,n,int);
writeln('Интегр "=',int:10:4);
end.
Трапеция усули. [a;b] оралиќ xi=a+ih нуќталар билан (бу ерда i=1,2,…,n; х0=а, хn=b, n-натурал сон) n+1 та оралиќќа ажратилади ва ҳар бир оралиќда эгри чизиќли трапеция юзи таќрибий равишда тўѓри чизиќли трапеция юзига алмаштирилиб, ќуйидаги таќрибий формулани ҳосил ќиламиз
бу ерда I-(1) интегралнинг аниќ ќиймати, S-(1) интегралнинг таќрибий ќиймати, yi=f(xi)
Хатоликни баҳолаш: , M=max|f’’(z)| , z[a,b]
Аниќ интегрални трапеция усулида ҳисоблаш учун Паскаль тилида тузилган дастурнинг кўриниши:
program trap; uses crt;
var n1:integer; a,b,i1:real;
function f(x:real):real;
begin
f:= { f(x) функциянинг кўриниши }
end;
procedure trap1(a1,b1:real;N:integer; var int:real);
var i:integer; h,s:real;
begin
h:=(b1-a1)/n;
s:=(f(a1)+f(b1))/2;
for i:=1 to n-1 do s:=s+f(a1+i*h);
int:=s*h;
end;
begin
clrscr;
write('a='); read(a);
write('b='); read(b);
write('N='); read(n1);
trap1(a,b,n1,i1);
writeln('i=',i1:10:4);
end.
Симпсон усули. х0=а, х2n=b , yi=f(хi), i=1,2,…,n. n- натурал сон бўлсин. Ушбу йиѓинди ёрдамида (1) интегрални таќрибий ҳисоблаш мумкин:
Хатоликлар:
, M=max|fIV(z)|, z[a,b].
Мисол. интеграл ќийматини [1;2] оралиќда n=4 да, трапеция формуласи билан ҳисобланг:
х0=1, х1= х2= х3= х4=2;
;
.
Аниќ интегрални Симпсон усулида ҳисоблаш учун Паскаль тилида тузилган дастурнинг кўриниши:
program simpson; uses crt;
var a,b,int1:real; n:integer;
function f(x:real):real;
begin
f:= { f(x) функциянинг кўриниши }
end;
procedure simps(a,b:real;n:integer;var int:real);
var h,s,s1,s2:real; i:integer;
begin
h:=(b-a)/(2*n);
s1:=0; s2:=0;
s:=f(a)+f(b);
for i:=1 to n do s1:=s1+f(a+(2*i-1)*h);
for i:=1 to n-1 do s2:=s2+f(a+2*i*h);
int:=h*(s+4*s1+2*s2)/3;
end;
begin clrscr;
write('a='); read(a);
write('b='); read(b);
write('n='); read(n);
simps(a,b,n,int1);
writeln('integral=',int1:10:4);
end.
Do'stlaringiz bilan baham: |