Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Вычисление многомерных интегралов
.PAS 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.
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.
Соседние файлы в предмете Вычислительная математика