Введите пределы интегрирования по х: x0 и xn

Введите число разбиений n

Р Е З У Л Ь Т А Т Ы

N точн.знач. числ.реш. абс.ош. отн.ош.

100 9.818743 9.818766 0.000023 0.000002

Отлаженную программу необходимо «запомнить» под своим оригинальным именем на своем компьютере и, что очень желательно (во избежание затирания программы другим пользователем), на дискете или на «флэшке».

Пример 2. Вычислить криволинейный интеграл Введите пределы интегрирования по х: x0 и xn - student2.ru , где L –

окружность r = a cosφ (a = 2) .

program ivanov_kri1_2; {полярный}

Var

fi0,fin,dfi,dr,s,fii,fic,rc,dl,tr:real;

n,i:integer;

const a=2;

function piv(r,fi,dl:real):real; {подынтегральное выражение r dl}

Begin

piv:=r*dl;

end;

function put(fi:real):real; {кривая интегрирования acosφ}

Begin

put:= a*cos(fi);

end;

Begin

writeln (‘введите пределы интегрирования по фи: fi0 и fin’);

read(fi0,fin); {ввод fi0,fin }

{т.к. точное значение π/2 в паскале на «черном» экране ввести нельзя, то}

{‘перевводим’ пределы в программе, а требуемые значения вводим}

{ произвольно, например, 0, 0}

fi0:= –pi/2; fin:= pi/2;

tr:=2*a*a; (аналитическое решение)}

writeln (‘введите число разбиений n отрезка [fi0, fin]’);

read(n); {ввод n }

writeln (‘ Р Е З У Л Ь Т А Т Ы’);{впереди 20 пробелов}

writeln;

writeln (‘ n точн.знач. числ.реш. абс.ош. отн.ош’);{4,7,2,3,5 пробелов}

writeln;

dfi:=(fin–fi0)/n;

s:=0; {интегральная сумма}

fii:=fi0; {начальная точка частичных угловых интервалов}

fiс:=fi0–dfi/2; {серединная точка частичных угловых интервалов }

for i:=1 to n do

Begin

fiс:=fic+dfi;

rc:=put(fic); {значение подынтегр. функции в серединной точке}

dr:= put(fii+dfi) – put(fii); {приращение пути на угловом интервале }

dl:=sqrt(rc*dfi*rc*dfi+dr*dr); {≈длине дуги для частичного углового интервала}

s:= s+ piv(rc,fic,dl);

fii:=fii+dfi;

end;

writeln(n:6,tr:14:6,s:12:6,abs(s–tr):11:6,abs((s–tr)/tr):12:6);

readln;

readln;

end.

Окно вывода отлаженной программы должно иметь вид:

Введите пределы интегрирования по фи: fi0 и fin

Введите число разбиений n

Р Е З У Л Ь Т А Т Ы

N точн.знач. числ.реш. абс.ош. отн.ош.

100 8.000000 8.000219 0.000219 0.000027

Пример 3. Вычислить криволинейный интеграл первого рода от функции трех переменных Введите пределы интегрирования по х: x0 и xn - student2.ru , где L – дуга кривой, заданной параметрически x = t cos t, y = t sin t, z = t, 0 ≤ t ≤ π.

program ivanov_kri1_3; {параметрическое задание кривой интегрирования}

Var

t0,tn,dt,dl,dx,dy,dz,s,ti,tc,xi,yi,zi,xi1,yi1,zi1,xc,yc,zc,u,tr:real;

n,i:integer;

function piv(x,y,z,dl:real):real; {подынтегральное выражение}

Begin

piv:=(5*z–2*sqrt(x*x+y*y))*dl;

end;

procedure put(t:real; var x,y,z:real); {кривая интегрирования}

Begin

x:= t*cos(t);

y:= t*sin(t);

z:= t;

end;

Begin

writeln (‘введите пределы интегрирования по t: t0 и tn’);

read(t0,tn); {ввод t0,tn }

{т.к. точное значение π в паскале на «черном» экране ввести нельзя, то}

{‘перевводим’ пределы в программе, а требуемые значения вводим}

{ произвольно, например, 0, 0}

t0:= 0;

tn:= pi;

tr:=sqrt((2+pi*pi)*(2+pi*pi)*(2+pi*pi))–2*sqrt(2); (аналитическое решение)}

writeln (‘введите число разбиений n отрезка [t0, tn]’);

read(n); {ввод n }

writeln ( ‘ Р Е З У Л Ь Т А Т Ы’); {впереди 13 пробелов}

writeln;

writeln (‘ n числ.реш.’); {5,7 пробелов}

writeln;

dt:=(tn–t0)/n;

s:=0; {интегральная сумма}

ti:=t0; {начальная точка частичных отрезков}

tс:=t0–dt/2; {серединная точка частичных отрезков }

for i:=1 to n do

Begin

tс:=tc+dt;

put(tc,xc,yc,zc); {значения подынтегр. функции в серединной точке отрезка}

put(ti,xi,yi,zi); {значения подынтегр. функции в начальной точке отрезка}

put(ti+dt,xi1,yi1,zi1); {значения подынтегр. функции в конечной точке отрезка}

dx:= xi1–xi;

dy:= yi1–yi;

dz:= zi1–zi;

dl:=sqrt(dx*dx+dy*dy+dz*dz); {≈длине дуги}

s:= s+ piv(xc,yc,zc,dl);

ti:=ti+dt;

end;

writeln(n:7, s:14:6);

writeln(‘аналитическое решение tr=’, tr:10:6);

writeln;

writeln(‘ошибка метода’);

writeln(‘абсолютная’, abs(s–tr):18:6);

writeln(‘относительная’, abs((s–tr)/tr):15:6);

readln;

readln;

end.

Окно вывода отлаженной программы должно иметь вид:

Наши рекомендации