1计算弧线长度的积分
此示例说明了如何参数化曲线以及使用 integral 计算弧线长度。 将曲线视为带有参数的方程
创建此曲线的三维绘图。
t = 0:0.1:3*pi;
plot3(sin(2*t),cos(t),t)
弧线长度公式表明曲线的长度是参数化方程的导数范数的积分。
将被积函数定义为匿名函数。
f = @(t) sqrt(4*cos(2*t).^2 + sin(t).^2 + 1);
通过调用 integral
对此函数进行积分计算。
len = integral(f,0,3*pi)
运行结果为
此曲线的长度大约为
17.2
。
2复曲线积分
此示例说明如何使用 integral
函数的
'Waypoints' 选项计算复曲线积分。在 MATLAB® 中,可以使用'Waypoints' 选项定义直线路径序列,从第一个积分限值到第一个路径点,从第一个路径点到第二个路径点,依此类推,直到从最后一个路径点到第二个积分限值。
2.1将被积函数定义为匿名函数
对以下方程求积分
将被积函数定义为匿名函数。
fun = @(z) exp(z)./z;
2.2不使用路径点求积分
可以用参数化计算复值函数的围线积分。在一般情况下,指定一条围线,然后将其微分并用于参数化原被积函数。在这种情况下,将围线作为单位圆,但在所有情况下,其结果与所选围线无关。
g = @(theta) cos(theta) + 1i*sin(theta);
gprime = @(theta) -sin(theta) + 1i*cos(theta);
q1 = integral(@(t) fun(g(t)).*gprime(t),0,2*pi)
运行结果为:
这种参数化方法虽然可靠,但难以计算和费时,因为必须先计算导数,然后才能积分。即使是简单函数,也需要写几行代码才能获得正确的结果。由于围绕极点(在本例中为原点)的任何闭围线都有相同的结果,因此可以使用
integral
的
'Waypoints'
选项构建一个围绕极点的方形或三角形路径。
2.3对不包含极点的围线求积分
如果路径点向量积分或元素限值为复数,则 integral 会在复平面中针对直线路径序列求积分。围线周围的自然方向为逆时针;指定顺时针围线类似于乘以
-1。以这种方式指定围线使其包含一个单函数奇点。如果指定一条不包含极点的围线,则柯西积分定理可保证闭积分环的值是零。
为此,应对远离原点的方围线周围的 fun
求积分。使用相等的积分限值形成一个闭围线。
C = [2+i 2+2i 1+2i];
q = integral(fun,1+i,1+i,'Waypoints',C)
运行结果为:
其结果数量级为 eps
,实际上为零。
2.4对内部包含极点的围线求积分
指定一个完全在原点包含极点的方围线,然后求积分。
C = [1+i -1+i -1-i 1-i];
q2 = integral(fun,1,1,'Waypoints',C)
运行结果为:
这个结果与2.2小节中的上述计算相符,但使用的代码简单得多。
这个问题的确切答案是 2
πi
。
2*pi*i
ans = 0.0000 + 6.2832i
3积分域内部的奇点
本示例显示如何拆分积分域以将奇点放在边界上。
3.1将被积函数定义为匿名函数
复值积分的被积函数
在 x = y = 0
时有一个奇点,并通常是
y = -x
线上的奇异值。
将该被积函数定义为匿名函数。
fun = @(x,y) ((x+y).^(-1/2));
3.2对方形求积分
对由 −1 ≤
x
≤ 1
和
−1 ≤
y
≤ 1
指定的方域中的
fun
求积分。
format long
q = integral2(fun,-1,1,-1,1)
运行结果:
如果积分区内部有奇异值,则积分不能收敛并返回一个警告。
3.3将积分域拆分为两个三角形
可以通过将积分域拆分为互补区并将这些较小的积分加在一起来重新定义积分。可将奇点放在域边界上来避免积分错误和警告。在此例中,可将方积分区域沿着奇异线
y = -x
拆分成两个三角形并将结果相加。
q1 = integral2(fun,-1,1,-1,@(x)-x);
q2 = integral2(fun,-1,1,@(x)-x,1);
q = q1 + q2
运行结果:
奇异值在边界上时可继续求积分。
这个积分的精确值是
8/3*sqrt(2)*(1-i)