www.gusucode.com > matlab 案例源码 matlab代码程序 > matlab/ComplexLineIntegralsExample.m
%% Complex Line Integrals % This example shows how to calculate complex line integrals using the % |'Waypoints'| option of the |integral| function. In MATLAB(R), you use % the |'Waypoints'| option to define a sequence of straight line paths from % the first limit of integration to the first waypoint, from the first % waypoint to the second, and so forth, and finally from the last waypoint % to the second limit of integration. %% Define the Integrand with an Anonymous Function % Integrate % % $$\oint_C \frac{e^z}{z} \: dz$$ % % where $C$ is a closed contour that encloses the simple pole of $e^z/z$ % at the origin. %% % Define the integrand with an anonymous function. fun = @(z) exp(z)./z; %% Integrate Without Using Waypoints % You can evaluate contour integrals of complex-valued functions with a % parameterization. In general, a contour is specified, and then % differentiated and used to parameterize the original integrand. In this % case, specify the contour as the unit circle, but in all cases, the % result is independent of the contour chosen. 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) %% % This method of parameterizing, although reliable, can be difficult and % time consuming since a derivative must be calculated before the % integration is performed. Even for simple functions, you need to write % several lines of code to obtain the correct result. Since the result is % the same with any closed contour that encloses the pole (in this case, % the origin), instead you can use the |'Waypoints'| option of |integral| % to construct a square or triangular path that encloses the pole. %% Integrate Along a Contour That Encloses No Poles % If any limit of integration or element of the waypoints vector is % complex, then |integral| performs the integration over a sequence of % straight line paths in the complex plane. The natural direction around a % contour is counterclockwise; specifying a clockwise contour is akin to % multiplying by |-1|. Specify the contour in such a way that it encloses a % single functional singularity. If you specify a contour that encloses no % poles, then Cauchy's integral theorem guarantees that the value of % the closed-loop integral is zero. % % To see this, integrate |fun| around a square contour away from the % origin. Use equal limits of integration to form a closed contour. C = [2+i 2+2i 1+2i]; q = integral(fun,1+i,1+i,'Waypoints',C) %% % The result is on the order of |eps| and effectively zero. %% Integrate Along a Contour with a Pole in the Interior % Specify a square contour that completely encloses the pole at the origin, % and then integrate. C = [1+i -1+i -1-i 1-i]; q2 = integral(fun,1,1,'Waypoints',C) %% % This result agrees with the |q1| calculated above, but uses much simpler % code. %% % The exact answer for this problem is $2 \pi i$. 2*pi*i