MATHEMATICA całkuje również po przedziałach zespolonych. Jeżeli podamy zespolone granice całkowania, zostanie obliczona krzywoliniowa całka zespolona po odcinku łączącym punkty początkowy i końcowy. Rozważmy trzy funkcje:

f1[z_] := Abs[z]^2

f2[z_] := z^2

f3[z_] := 1/Pi/z

Jak widać funkcje f1 i f2 są identyczne na osi rzeczywistej.

Plot[{f1[t], f2[t], f3[t]}, {t, -3, 3}]

Całki po osi rzeczywistej są dla funkcji f1 i f2 identyczne. Całka z f3 nie istnieje:

Integrate[f1[t], {t, -1, 1}]

Integrate[f2[t], {t, -1, 1}]

Integrate[f3[t], {t, -1, 1}]

Obliczmy całkę od -1 do 1 poprzez punkt z=I, omijająć punkt z=0. Jak widać całki są teraz różne:

Integrate[f1[t], {t, -1, I}] + 
      Integrate[f1[t], {t, I, 1}]

Integrate[f2[t], {t, -1, I}] + 
      Integrate[f2[t], {t, I, 1}]

Integrate[f3[t], {t, -1, I}] + 
      Integrate[f3[t], {t, I, 1}]

Integrate[f1[t], {t, -1, -I}] + 
      Integrate[f1[t], {t, -I, 1}]

Integrate[f2[t], {t, -1, -I}] + 
      Integrate[f2[t], {t, -I, 1}]

Integrate[f3[t], {t, -1, -I}] + 
      Integrate[f3[t], {t, -I, 1}]

Niżej zdefiniowane funkcje obliczają całki od -1 do 1 poprzez dowolny punkt p na osi urojonej.

g1[p_] := 
      Integrate[f1[t], {t, -1, p I}] + 
        Integrate[f1[t], {t, p I, 1}]

g2[p_] := 
      Integrate[f2[t], {t, -1, p I}] + 
        Integrate[f2[t], {t, p I, 1}]

g3[p_] := 
      Integrate[f3[t], {t, -1, p I}] + 
        Integrate[f3[t], {t, p I, 1}]

Na wykresie widzimy, że całka z Abs[z]^2 zależy z sposób ciągły od punktu p, całka z z^2 jest niezależna od p (od drogi), a całka z 1/z zależy od tego z której strony omijamy punkt osobliwy z=0.

Plot[{g1[x], g2[x], Im[g3[x]]}, {x, -3, 3}, 
      PlotRange -> Automatic, 
      PlotStyle -> {{Red}, {RGBColor[0, 0, 0]}, {RGBColor[0, 0, 
              1]}}]

Obliczmy całki nieoznaczone:

Całka z funkcji z^2 istnieje i otrzymujemy znany wynik:

Integrate[z^2, z]

Podobnie całka z 1/z

Integrate[1/z, z]

Natomiast całka (w sensie f. pierwotnej) z funkcji Abs[z]^2 nie istnieje. Inaczej mówiąc nie ma takiej funkcji która po zróżniczkowaniu da nam Abs[z]^2.

Integrate[Abs[z]^2, z]

Istnieje natomiast całka krzywoliniowa liczona po odcinku łaczącym np. punkt z=0 z dowolną inną liczbą zespoloną:

Integrate[Abs[z]^2, {z, 0, t}]

O wspomianych niuansach należy pamietać, gdyż MATHEMATICA liczy wszystko na liczbach zespolonych! Patrz np. przykład StalaCalkowania.nb.

Na koniec wizualizacja twierdzenia, mówiącego, że całka okrężna (po drodze zamkniętej, jeden przebieg) z funkcji zespolonej analitycznej (posiadającej f. pierwotną) jest równa zero jeżeli punkty osobliwe są na zewnątrz. Zakładamy, że punkt osobliwy jest w punkcie z=0.
Całka z punktem osobliwym wewnątrz jest równa 2 Pi I Residue[f,{z,0}]. Rozważ przykłady f=1/z i f=1/z^2. Każdorazowe uruchomienie f. cyrkulacja tworzy losowy kontur, po którym jest liczona całka i wyświetla wynik, który należy na ogół uprościć korzystając z Simplify lub FullSimplify.

cyrkulacja[
        f_] := (z1 = 
          Random[Integer, {-5, 10}] + 
            I Random[
                Integer, {-5, 10}]; 
z2 = -Random[
                Integer, {1, 10}] + 
            I Random[Integer, {1, 10}]; 
z3 = -Random[
                Integer, {1, 10}] - 
            I Random[Integer, {1, 10}]; 
z4 = 
          Random[Integer, {1, 10}] - 
            I Random[Integer, {1, 10}]; 
droga  =  
          Polygon[{{Re[z1], Im[z1]}, {Re[z2], Im[z2]}, {Re[z3], 
                Im[z3]}, {Re[z4], Im[z4]}}]; 
obszar = 
          Polygon[{{10, 10}, {-10, 
                10}, {-10, -10}, {10, -10}}]; 
biegun  =  
          Graphics[{RGBColor[1, 0, 0], 
              Disk[{0, 0}, 
                0.3]}]; 
Show[
Graphics[
            obszar], Graphics[{RGBColor[1, 1, 0], droga}], 
          biegun]; 
Integrate[f, {z, z1, z2}] + 
          Integrate[f, {z, z2, z3}] + Integrate[f, {z, z3, z4}] + 
          Integrate[f, {z, z4, z1}])

cyrkulacja[
      1/z]

FullSimplify[%]

2 Pi I Residue[1/z, {z, 0}]