Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Вычисление многомерных интегралов

.PAS
Скачиваний:
12
Добавлен:
02.05.2014
Размер:
2.22 Кб
Скачать
Program Kursovaya;
Uses crt;
var
x: real; {znachenie peremennoy funktsii}
a, b, k: array [1..10] of real; {znachenie granits integrirovaniya}
c2, st, z: integer;
i, ii, j: integer; {indeksi elementov massivov}
y: real; {znachenie funktsii}
da, net: integer; {schetchiki popadaniy}
sl1, sl2: real; {koordinati sluchaynoy tochki}
max, pl: real;
c: array [1..10,1..10] of integer;


{-----------------------------------------------------------------}

Begin
clrscr;
write('Vvedite mernost integrala:');
readln(z);
writeln;
for i:=1 to z do
begin
writeln('Vvedite znacheniya ',i,'-y granitsi integrirovaniya');
write('a',i,': ');
readln(a[i]);
k[i]:=a[i];
write('b',i,': ');
readln(b[i]);
c2:=1;
end;
writeln;

{-----Vvod-podintegralnoy-funktsii----------------------}
clrscr;
for i:=1 to z do
begin
write('Vvedite max stepen ',i,'-go mnogochlena: ');
readln(st);
writeln('Vvedite znacheniya koeffitsientov:');
for j:=1 to st+1 do
begin
write('C',i,j-1,'=');
readln(c[i][j]);
end;
writeln;
end;

{-----Vichislenie-maksimalnogo-nacheniya-funktsii-------}

max:=0;
for i:=1 to z do
begin
while a[i]<b[i] do
begin
y:=0;
for j:=1 to st+1 do
begin
if a[i]=0 then
a[i]:=0.01;
y:=y+c[i][j]*exp(ln(a[i])*(j-1));
end;
if y>max then
max:=y;
a[i]:=a[i]+0.001;
end;
end;

{-----Vichislenie integrala-----------------------------}

da:=0;
net:=0;
randomize;
for i:=1 to z do
begin
for j:=1 to 10000 do
begin
sl1:=random(c2*10000);
sl1:=k[i]+sl1/10000;
sl2:=random(round(max)*10000);
sl2:=sl2/10000;
y:=0;
for ii:=1 to st+1 do
begin
y:=y+c[i][ii]*exp(ln(sl1)*(ii-1));
end;
if sl2<y then
inc(da)
else
inc(net);
end;
end;
pl:=1;
for i:=1 to z do
begin
k[i]:=b[i]-k[i];
pl:=pl*k[i];
end;
pl:=max*pl;
y:=(da*pl)/10000;
writeln;
writeln('Iskomoe znachenie integrala: ',y:8:6);

{----------------------------------}

readln;
End.