Введите пределы интегрирования по t: t0 и tn
введите число разбиений n отрезка [t0, tn]
Р Е З У Л Ь Т А Т Ы
N числ.реш.
100 38.062661
аналитическое решение tr= 38.065081
Ошибка метода
Абсолютная 0.002420
Относительная 0.000064
Пример 4. Вычислить криволинейный интеграл от точки
А(0; 0) до точки В(1; 1) по кривым а) у=х, б) у=х2, в) у= (см. рис.6).
program ivanov_kri2_1; {по трем кривым АВС (рис.6)}
Var
a,b,dx,dy1,dy2,dy3,xi,xc,yc1,yc2,yc3,s1,s2,s3,tr1,tr2,tr3:real;
n,i:integer;
function piv(x,y,dx,dy:real):real; {подынтегральное выражение}
Begin
piv:= y*dx+2*dy;
end;
function put1(x:real):real; {кривая интегрирования y=x }
Begin
put1:= x;
end;
function put2(x:real):real; {кривая интегрирования y=x2}
Begin
put2:= x*x;
end;
function put3(y:real):real; {кривая интегрирования y=x1/3}
Begin
put3:= exp(ln(x)/3);
end;
Begin
{аналитическое решение}
tr1:=5/2; { по кривой y=x}
tr2:=7/3; { по кривой y=x2}
tr3:=11/4; { по кривой y= x1/3}
writeln (‘введите число разбиений n отрезка [0,1]’);
read(n); {ввод n }
writeln (‘n=’, n:5);
writeln ( ‘ Р Е З У Л Ь Т А Т Ы’);{впереди 20 пробелов}
writeln;
writeln (“:13,‘кривая y=x y=x*x y=e(ln(x)/3’);{5,10,6 пробелов}
writeln;
a:=0; {абсцисса точки А}
b:=1; {абсцисса точки B}
dx:=(b–a)/n;
s1:=0; {интегральная сумма для кривой y=x }
s2:=0; {интегральная сумма для кривой y=x*x }
s3:=0; {интегральная сумма для кривой y=e(ln(x)/3}
xi:=a; {начальная точка частичных отрезков}
xс:=xi–dx/2; {серединная точка частичных отрезков}
for i:=1 to n do
Begin
xс:=xc+dx;
yc1:=put1(xc); {знач. подынтегр. ф-ции в серединной точке для y=x }
yc2:=put2(xc); {знач. подынтегр. ф-ции в серединной точке для y=x*x }
yc3:=put3(xc); {зн. подынтегр. ф-ции в серединной точке для e(ln(x)/3 }
dy1:= put1(xi+dx) – put1(xi); {приращение пути для y=x}
dy2:= put2(xi+dx) – put2(xi); {приращение пути для y= x*x}
dy3:= put3(xi+dx) – put3(xi); {приращение пути для y= e(ln(x)/3}
s1:= s1+ piv(xc,yc1,dx,dy1);
s2:= s2+ piv(xc,yc2,dx,dy2);
s3:= s3+ piv(xc,yc3,dx,dy3);
xi:=xi+dx;
end;
writeln(‘численные’, s1:20:6, s2:14:6, s3:14:6);
writeln;
writeln(‘аналитические’, tr1:16:6, tr2:14:6, tr3:14:6);
readln;
readln;
end.
Окно вывода отлаженной программы должно иметь вид:
Введите число разбиений n
n= 100
Р Е З У Л Ь Т А Т Ы
кривая y=x y=x*x y=e(ln(x)/3)
Численные 2.500000 2.333325 2.750122
Аналитические 2.500000 2.333333 2.750000
Пример 5. Найти площадь области, ограниченной эллипсом
x = a cos t, y = b sin t.
Площадь S области D, ограниченной кривой L, находят по формуле
S = .
program petrov_kri2_2; {площадь эллипса}
Var
t0,tn,dt,dx,dy,ti,tc,xi,yi,xi1,yi1,xc,yc,s,tr:real;
n,i:integer;
const a=2;
const b=3;
function piv(x,y,dx,dy:real):real; {подынтегральное выражение}
Begin
piv:= x*dy–y*dx;
end;
procedure put (t:real;varx,y:real); {кривая интегрирования }
Begin
x:=a*cos(t);
y:=b*sin(t);
end;
Begin
tr:=pi*a*b; {аналитическое решение}
{пределы интегрирования t0, tn}
t0:=0;
tn:=2*pi;
write (‘введите число разбиений n =’);
read(n); {ввод n }
writeln;
writeln ( ‘ Р Е З У Л Ь Т А Т Ы’);{впереди 12 пробелов}
writeln;
writeln (‘ числ.реш. аналит.реш.’);{6,7 пробелов}
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); {знач. x и y в серед. точке част. угловых отрезков }
put (ti,xi,yi); { знач. x и y в начальной точке част. угловых отрезков }
put (ti+dt,xi1,yi1); { знач. x и y в конечной точке част. угловых отрезков }
dx:= xi1–xi; {приращение x на част. угловом отрезке}
dy:= yi1–yi; {приращение y на част. угловом отрезке}
s:= s+ piv(xc,yc,dx,dy); {интегральная сумма}
ti:=ti+dt;
end;
s:=s/2;
writeln(s:15:6, tr:16:6);
writeln;
writeln(‘ошибка метода’);
writeln(‘абсолютная’, abs(s–tr):18:6);
writeln(‘относительная’, abs((s–tr)/tr):15:6);
readln;
readln;
end.
Окно вывода отлаженной программы должно иметь вид:
введите число разбиений n=100
Р Е З У Л Ь Т А Т Ы
Числ.реш. аналит.реш.
18.846455 18.849556
Ошибка метода
Абсолютная 0.003100
Относительная 0.000164
Четвертый этап работы заключается в записи в отлаженную
программу (в раздел описания функций) описания «своего» подынтегрального выражения (в предложенных выше программах это piv), «своей» кривой интегрирования (put) и «своего» аналитического решения (tr). После отладки программы ее необходимо «пропустить» со значениями n, равными 5, 10, 25, 100,1000.
При записи «своих» выражений следует обратить внимание на операцию деления. Например, правильная запись дроби может иметь вид sqr(a)*a*b*c/(r*t*sqr(s)), или sqr(a)*a*b*c/ r / t / sqr(s), или a*a*a*b*c/(r*t*s*s), или какой-либо другой, но обязательно знаменатель должен быть в скобках или его множители должны быть отделены друг от друга операцией / (деление). Числитель брать в скобки нужно в случае, если это многочлен.
Другая особенность данного этапа состоит в ограниченности библиотеки встроенных функций PASCALя. Для записи встречающихся в заданиях функций используются функции
sin(x), cos(x), sqr t(x) ( ), sqr(x) (x2), atan(x) (arctg x), ln(x), abs(x) (|x|),
а также постоянная pi (π).
Для записи других функций следует пользоваться тождественными формулами :
tg x = , arcsin x = arctg , xa = ealnx,
arcctg x = – arctg x, arccos x = arcctg .
Еще два замечания:
1) Так как встроенная функция sqr(x) выполняется значительно дольше, чем операция * (умножение), то при возведении в целую степень при небольших значениях показателя степени желательно использовать операцию умножения.
2) Если в выражении функции некоторая степень встречается несколько раз, ее желательно вычислить один раз и в дальнейшем использовать вычисленное значение. Например, функцию y = x5 + sin(x5 + x4 – x3) можно описать так:
function primer (x:real):real;
y:real;
Begin
y:= x*x*x*x*x;
primer:= y+sin(y+y/x–y/x/x)
end;
Пятый этаппредставляет собой защиту работы.
При этом необходимо:
1. Знать определения криволинейных интегралов первого и второго рода,
методы аналитического и численного вычисления данных интегралов (в пределах данной методички).
2. Уметь объяснять полученные результаты, как-то, как и почему влияет на оценку интеграла число разбиений отрезка интегрирования.
3. Уметь объяснять функциональное назначение отдельных операторов и мест в программе.
4. Показать результаты аналитических расчетов в рабочей тетради.
5. При небольшом значении n вручную получить приближенное значение какого-нибудь простого криволинейного интеграла, предложенного преподавателем. Для этого может быть использован список таких заданий, предложенный в приложении 1. Желательно, чтобы интеграл в данном задании отличался по роду и виду интегральной функции от основного интеграла лабораторной работы. При выполнении этого задания можно пользоваться калькулятором или Mathcad’ом.
Примеры выполнения таких заданий представлен ниже.
Примеры выполнения задания ручного счета.
1. Вычислить вручную приближенное значение криволинейного интеграла , где АВ – отрезок прямой у = х от точки А(0, 0) до точки В(4, 3) при n = 4.
Так как, согласно определению, криволинейный интеграл первого рода (по длине дуги кривой) есть предел интегральных сумм вида
Sn = Δli,
не зависящий ни от способа разбиения кривой АВ на частичные дуги, ни от выбора точек Ri (ξi, ηi), то для приближенного вычисления заданного в условии задачи интеграла построим интегральную сумму следующим образом:
1) разобьем кривую АВ на четыре (n = 4) частичных дуги так, чтобы их проекции на ось Ох ( [х0; х1], [х1; х2], [х2; х3], [х3; х4] ) равнялись между собой. В нашем случае х0 = 0, х4 = 4;
2) абсциссы точек Ri(ξi,ηi) (i = 1, 2, 3, 4), а именно ξi будем выбирать (согласно выбранному алгоритму) в серединах отрезков [хi–1; хi], а их ординаты ηi – это ординаты точек кривой АВ, соответствующие абсциссам ξi ;
3) длину частичной дуги Δli заменим длиной хорды, соединяющей конечные точки данной дуги: Δli ≈ Δsi = .
Разобьем отрезок [0; 4] (по х) на 4 равных частичных отрезка: [0; 1],
[1; 2], [2; 3], [3; 4]. При этом: х0 = 0, х1 = 1, х2 = 2, х3 = 3, х4 = 4. Длина каждого из этих отрезков Δх = Δхi = хi – хi–1 = 1 (i = 1, 2, 3, 4). Подсчитаем значения у в граничных точках данных отрезков:
уi = хi (i = 0, 1, 2, 3, 4): у0 = 0, у1 = , у2 = , у3 = , у4 = .
Приращение у на каждом i –м частичном отрезке (i = 1, 2, 3, 4) Δуi = уi – уi–1 :
Δу1 = – 0 = ; Δу2 = – = ; Δу3 = – = ; Δу4 = – = .
Срединные точки частичных интервалов ξi = xi*= (i = 1, 2, 3, 4) :
х1* = = , х2* = = , х3* = = , х4* = = .
Значения у в этих срединных точках ηi = уi* = xi* (i = 1, 2, 3, 4) :
у1* = ∙ = , у2* = ∙ = , у3* = ∙ = , у4* = ∙ = .
Полученные результаты сведем в таблицу
i | xi | yi = xi | Δхi =хi–хi–1 | Δyi =yi – yi–1 | xi* = | уi* = xi* | Δsi = | f(xi*, уi*) = xi* – уi* | f(xi*,уi*)Δsi |
Таким образом, искомое приближенное значение криволинейного интеграла равно
I ≈ S4 = f (х1*, y1*) ∙Δs1 + f (х2*, y2*) ∙Δs2 + f (х3*, y3*) ∙Δs3 + f (х4*, y4*) ∙Δs4 =
= ∙ + ∙ + ∙ + ∙ = = .
Точное значение интеграла
= = = = .
2. Вычислить вручную приближенное значение криволинейного интеграла , где L – дуга кривой x = t cos t, y = t sin t, z = t, 0 ≤ t ≤ 2π, при n = 4.
Разобьем кривую L на четыре (n = 4) частичных дуги Δli (i = 1, 2, 3, 4) так, чтобы длины частичных интервалов [t0; t1], [t1; t2], [t2; t3], [t3; t4] ) равнялись между собой.
Построим таблицу, содержащей следующие графы:
1. i – номер частичного интервала, на которые разбивается отрезок [0, 2π] (i = 1,
2, 3, 4);
2. ti – граничные точки частичных интервалов (i = 0, 1, 2, 3, 4). При этом: t0 = 0,
t4 = 2π (отрезок [0, 2π] разбивается на 4 отрезка одинаковой длины);
3. xi = ti cos ti – значения функции x = t cos t в граничных точках частичных
интервалов (i = 0, 1, 2, 3, 4);
4. уi = ti sin ti – значения функции y = t sin t в граничных точках частичных
интервалов (i = 0, 1, 2, 3, 4);
5. zi = ti – значения функции z = t в граничных точках частичных интервалов
(i = 0, 1, 2, 3, 4);
6. Δti = ti – ti – 1– приращение параметра t на i – ом частичном интервале
(i = 1, 2, 3, 4). В соответствии с выбранным алгоритмом Δti = = ;
7. Δxi = xi – xi – 1– приращение функции х на i – ом частичном интервале;
8. Δуi = уi – уi – 1– приращение функции у на i – ом частичном интервале;
9. Δzi = zi – zi – 1– приращение функции z на i – ом частичном интервале;
10. Δsi = – длина хорды, соединяющей конечные точки
частичной дуги Δli ;
11. ti*= (i = 1, 2, 3, 4) – срединные точки частичных интервалов ;
12. xi*= ti* cos ti* – значения функции x = t cos t в срединных точках частичных
интервалов (i = 1, 2, 3, 4);
13. yi*= ti* sin ti* – значения функции y = t sin t в срединных точках частичных
интервалов (i = 1, 2, 3, 4);
14. zi*= ti* – значения функции z = t в срединных точках частичных
интервалов (i = 1, 2, 3, 4);
15. fi*= f(xi*, yi*, zi*) = 2zi – – значения подынтегральной функции в точках
(xi, уi, zi).
i | ti | xi | yi | zi | Δti | Δxi | Δyi | Δzi | Δsi | ti* | xi* | yi* | zi* | fi* |
π | ||||||||||||||
π | –π | π | –π | – | π | – | ||||||||
– | π | – | π | – | – | |||||||||
2π | 2π | 2π | 2π | π | – |
Таким образом, искомое приближенное значение криволинейного интеграла
I ≈ S4 = f(x1*, y1*, z1*) ∙Δs1 + f(x2*, y2*, z2*) ∙Δs2 + f(x3*, y3*, z3*) ∙Δs3 + f(x4*, y4*, z4*) ∙Δs4 =
= ∙ + ∙ + ∙ + ∙ = ( + 3 + 5 + 7 ) ≈ 77,926.
Точное значение интеграла || dl = dt = dt = dt || =
= = = =
= = ( – 1 ) ≈ 88,103.
3. Вычислить вручную приближенное значение
криволинейного интеграла , где
L – лепесток лемнискаты ρ = 3 , расположенный
в первом координатном углу, при n = 4.
Кривая задана уравнением в полярных координатах, причем угол φ изменяется от 0 до . При переходе к полярным координатам x = ρ cos φ, y = ρ sin φ. Следовательно, подынтегральная функция будет иметь вид f (ρ, φ) = ρ cos φ + ρ sin φ
Разобьем кривую L на четыре (n = 4) частичных дуги Δli (i = 1, 2, 3, 4) так, чтобы длины частичных угловых интервалов [φ0; φ1], [φ1; φ2], [φ2; φ3], [φ3; φ4] ) равнялись между собой.
Построим таблицу, содержащей следующие графы:
1. i – номер частичного углового интервала, на которые разбивается отрезок
[0, ] (i = 1, 2, 3, 4);
2. φi – граничные точки частичных угловых интервалов (i = 0, 1, 2, 3, 4). При этом:
φ0 = 0, φ4 = (отрезок [0, ] разбивается на 4 отрезка одинаковой
угловой длины);
3. ρi = 3 – значения функции ρ = 3 в граничных точках частичных
интервалов (i = 0, 1, 2, 3, 4);
4. Δφi = φi – φi – 1– приращение угла φ на i – ом частичном угловом интервале
(i = 1, 2, 3, 4). В соответствии с выбранным алгоритмом Δφi = = ;
5. Δρi = ρi – ρi – 1= 3( – )– приращение функции ρ на i – ом частичном интервале (i = 1, 2, 3, 4);
6. φi*= (i = 1, 2, 3, 4) – срединные точки частичных угловых интервалов ;
7. ρi*= 3 – значения функции ρ = 3 в срединных точках
частичных угловых интервалов (i = 1, 2, 3, 4);
8. Δsi = ~ длина хорды, соединяющей конечные точки
частичной дуги Δli (i = 1, 2, 3, 4);
9. fi*= f(ρi*, φi*) = ρi*cos φi* + ρi*sin φi*– значения подынтегральной функции в точках
(ρi*, φi*);
10. fi*∙ Δsi
i | φi | ρi | Δφi | Δρi | φi* | ρi* | Δsi | fi* | fi*∙ Δsi |
2,523 | 2,523 | 1,856 | 2,626 | 2,182 | 5,73 | ||||
0,477 | 2,884 | 1,229 | 4,916 | ||||||
2,523 | –0,477 | 2,884 | 1,229 | 4.916 | |||||
–2,523 | 1,856 | 2,626 | 2,182 | 5,73 |
Таким образом, искомое приближенное значение криволинейного интеграла равно
I ≈ S4 = f(ρ1*, φ1*) ∙Δs1 + f(ρ2*, φ2*) ∙Δs2 + f(ρ3*, φ3*) ∙Δs3 + f(ρ4*, φ4*) ∙Δs4 =
= 5,73 + 4,916 + 4,916 + 5,73 = 21,292.
Точное значение интеграла: = = = || ρ¢ = , = = = || =
= = 9 = 9(sinφ – cosφ) = 18.
4. Вычислить вручную приближенное значение криволинейного интеграла , где L – отрезок параболы у = х2 от точки А(0, 0) до точки В(1, 1) при n = 4.
Замечание. При вычислении криволинейного интеграла второго рода составляются таблицы, аналогичные таблицам, составляемым при вычислении криволинейного интеграла первого рода, за исключением того, что не вычисляются значения Δsi ,а вместо значений f(xi*, уi*) вычисляются значения P(xi*, уi*) и Q(xi*, уi*). После составления таблицы приближенное вычисление интеграла производится по формуле
S4 = Δxi + Q(хi*, yi*)).
i | xi | yi =(xi)2 | Δхi =хi–хi–1 | Δyi =yi – yi–1 | xi* = | уi* =(xi*)2 | P(xi*, уi*) = xi* ∙ уi* | Q(xi*, уi*) = 1 | P(xi*,уi*)Δxi + Q(xi*,уi*)Δyi |
+ | |||||||||
+ | |||||||||
+ | |||||||||
+ |
Таким образом, искомое приближенное значение криволинейного интеграла равно
I ≈ S4 = P(х1*, y1*) ∙Δx1 + Q(х1*, y1*) ∙Δy1 + P(х2*, y2*) ∙Δx2 + Q(х2*, y2*) ∙Δy2 +
+ P(х3*, y3*) ∙Δx3 + Q(х3*, y3*) ∙Δy3 + P(х4*, y4*) ∙Δx4 + Q(х4*, y4*) ∙Δy4 =
= + + + + + + + = + = 1,242.
Точное значение интеграла
= = = + 1 = = 1,25.
5. Вычислить вручную приближенное значение работы силы = yx + (y + x) при перемещении материальной точки по прямой у = х из точки А(0, 0) в точку В(1, 1), при n = 4.
С точки зрения физики криволинейный интеграл второго рода вдоль некоторой кривой равняется работе переменной силы при перемещении материальной точки вдоль этой кривой. Т.о., в нашем случае для вычисления искомого значения работы необходимо вычислить