Всего на сайте:
303 тыс. 117 статей

Главная | Математика

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

Р Е З У Л Ь Т А Т Ы

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

100 8.000000 8.000219 0.000219 0.000027

 

 

Пример 3. Вычислить криволинейный интеграл первого рода от функции трех переменных , где 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);

x:= 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,‘Р Е З У Л Ь Т А Т Ы’); {впереди 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,xc,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.

 

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

 

введите пределы интегрирования по t: t0 и tn

введите число разбиений n отрезка [t0, tn]

Предыдущая статья:Введите число разбиений n Следующая статья:Р Е З У Л Ь Т А Т Ы
page speed (0.0204 sec, direct)