Добавил:
bagiwow
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:выч методы не разобраны! / Лаба№3 / Мишины / GAUSS
.PAS {$N+,E+}
{Џа®Ја ¬¬ ўлзЁб«пҐв ЁвҐЈа «« ¬Ґв®¤®¬ ѓ гбб ў ¤ ЇвЁў®¬ «Ј®аЁв¬Ґ}
Uses Crt;
Const b=(*1.4*)2;a=(*0.6*)1.2;e=0.000000001;
Function f(x:extended):extended;
Begin(*f:=(x*x)*cos(x)*)f:=sqrt(0.7*sqr(x)+1)/(2.1*x+sqrt(0.6*x+1.7))
End;
Function Gauss(a,b:extended):extended;
{”-жЁп ўлзЁб«пҐв ЁвҐЈа « ¬Ґв®¤®¬ ѓ гбб Ї® 4-¬ в®зЄ ¬}
var h,x4,x5:real;
Begin h:=(b-a);
x4:=(b+a)/2+((b-a)*0.5773)/2;
x5:=(b+a)/2-((b-a)*0.5773)/2;
Gauss:=(h*(f(x4)+f(x5)))/2
End;
Var xl,xm,xr,x :extended;{‡ 票Ґ x Єа пе ®в१Є Ё Ї®бҐаҐ¤ЁҐ}
S,P,Q,h,ee:extended;{‡ 票Ґ ЁвҐЈа « }
ei,hi,Qi:array[1..1000]of extended;
i,j:byte;
BEGIN ClrScr;
WriteLn('j':5, '|', 'h(i)':17,'Q(i)':21,'e(i)':17);
WriteLn('-----------------------------------------------------------------------------');
Window(1, 3, 80, 25);
xl:=a;xr:=b;i:=0;
repeat{–ЁЄ« Ї®ЁбЄ ®в१Є ,㤮ў«Ґвў®апо饣® Ґа ўҐбвўг}
repeat h:=xr-xl;{ђ §¬Ґа ®в१Є }
P:=Gauss(xl, xr);
xm:=(xl+xr)/2;
Q:=Gauss(xl, xm)+Gauss(xm, xr);
x:=xr;
xr:=xm;
ee:=Abs(P-Q)/{(exp(5*ln(2))-1)}31
until ee<=h*e/(b-a);
i:=i+1;
Qi[i]:=Q;
hi[i]:=h;
ei[i]:=ee;
xl:=x;
xr:=b
until x=b;
h:=0;S:=0;ee:=0;
for j:=1to i do begin WriteLn(j:5, '|', hi[j], '|', Qi[j], '|', ei[j]);
S:=S+Qi[j];
h:=h+hi[j];
ee:=ee+ei[j]
end;
WriteLn('-----------------------------------------------------------------------------');
WriteLn(' ':5, ' ', h, '|', S, '|', ee);
WriteLn;
WriteLn('‡ ¤ Ї®ЈаҐи®бвм : ',e);
WriteLn('‡ 票Ґ ЁвҐЈа « : ',S);readln
END.
{Џа®Ја ¬¬ ўлзЁб«пҐв ЁвҐЈа «« ¬Ґв®¤®¬ ѓ гбб ў ¤ ЇвЁў®¬ «Ј®аЁв¬Ґ}
Uses Crt;
Const b=(*1.4*)2;a=(*0.6*)1.2;e=0.000000001;
Function f(x:extended):extended;
Begin(*f:=(x*x)*cos(x)*)f:=sqrt(0.7*sqr(x)+1)/(2.1*x+sqrt(0.6*x+1.7))
End;
Function Gauss(a,b:extended):extended;
{”-жЁп ўлзЁб«пҐв ЁвҐЈа « ¬Ґв®¤®¬ ѓ гбб Ї® 4-¬ в®зЄ ¬}
var h,x4,x5:real;
Begin h:=(b-a);
x4:=(b+a)/2+((b-a)*0.5773)/2;
x5:=(b+a)/2-((b-a)*0.5773)/2;
Gauss:=(h*(f(x4)+f(x5)))/2
End;
Var xl,xm,xr,x :extended;{‡ 票Ґ x Єа пе ®в१Є Ё Ї®бҐаҐ¤ЁҐ}
S,P,Q,h,ee:extended;{‡ 票Ґ ЁвҐЈа « }
ei,hi,Qi:array[1..1000]of extended;
i,j:byte;
BEGIN ClrScr;
WriteLn('j':5, '|', 'h(i)':17,'Q(i)':21,'e(i)':17);
WriteLn('-----------------------------------------------------------------------------');
Window(1, 3, 80, 25);
xl:=a;xr:=b;i:=0;
repeat{–ЁЄ« Ї®ЁбЄ ®в१Є ,㤮ў«Ґвў®апо饣® Ґа ўҐбвўг}
repeat h:=xr-xl;{ђ §¬Ґа ®в१Є }
P:=Gauss(xl, xr);
xm:=(xl+xr)/2;
Q:=Gauss(xl, xm)+Gauss(xm, xr);
x:=xr;
xr:=xm;
ee:=Abs(P-Q)/{(exp(5*ln(2))-1)}31
until ee<=h*e/(b-a);
i:=i+1;
Qi[i]:=Q;
hi[i]:=h;
ei[i]:=ee;
xl:=x;
xr:=b
until x=b;
h:=0;S:=0;ee:=0;
for j:=1to i do begin WriteLn(j:5, '|', hi[j], '|', Qi[j], '|', ei[j]);
S:=S+Qi[j];
h:=h+hi[j];
ee:=ee+ei[j]
end;
WriteLn('-----------------------------------------------------------------------------');
WriteLn(' ':5, ' ', h, '|', S, '|', ee);
WriteLn;
WriteLn('‡ ¤ Ї®ЈаҐи®бвм : ',e);
WriteLn('‡ 票Ґ ЁвҐЈа « : ',S);readln
END.