Integrace podél křivky v komplexní rovině

Na rychlo vyřešená úloha na výpočet integrálu podlél křivky v komplexní rovině
Na cvičení jsme nejprve zkusili spočíst explicitně příslušné integrály,
a pak jsme sestavili funkci, která to “udělá za nás”.

Význam “podtržíkta” se ještě budeme učit

contourIntegrate[krivka_,f_,z_Symbol,{t_Symbol,tMin_,tMax_}]:=Module[
{zJakoFceT,fJakoFceT,dzdt},
If[z===t,Throw["Parametr cesty se jemnuje stejně jako proměnná"]];
zJakoFceT=krivka;
fJakoFceT=f/.z->zJakoFceT;
dzdt=D[zJakoFceT,t];
PrintTemporary["Počítám: Integrate[",fJakoFceT dzdt,{t,tMin,tMax},"]"];
Integrate[fJakoFceT dzdt,{t,tMin,tMax}]
]

contourSetIntegrate[nekolikKrivek_,f_,z_Symbol]:=
Sum[(*sečti*)
contourIntegrate[nekolikKrivek[[k,1]],fce,z,nekolikKrivek[[k,2]]],(*integrál*)
{k,1,Length@nekolikKrivek}(*přes všechny křivky*)
]

Zde je první funkce a půlkruhová cesta, po níž integrál počítáme

sadaKrivek={{s,{s,-a,a}},{a Exp[I s],{s,0,Pi}}}/.a->1 ;
fce = 1/(2z^4+1) ;

pltContour=sadaKrivek
Show[ ContourPlot[ Abs[ fce ]/.z->x+I y, {x,-2,2},{y,-2,2},ColorFunction->"LightTerrain",PlotRange->{0,10},Contours->Table[(10/k)^8,{k,1,30}]],
Table[ ParametricPlot[{Re@pltContour[[k,1]],Im@pltContour[[k,1]]},Evaluate[pltContour[[k,2]]],PlotStyle->{Red,Thick}],{k,1,Length@pltContour}] ]

Nyní již integrál spočteme jediným voláním contourSetIntegrate

contourSetIntegrate[sadaKrivek,fce,z]//FullSimplify

Protože integrujeme po uzavřené křivce, lze použít reziduovou větu

(* Najdeme kořeny jmenovatele *)
Solve[1/fce==0,z]

(* Vybereme ty, které jsou uvnitř cesty *)
(* Test je pro obecné integrační cesty těžký, proto použijeme jednodušší pro náš konkrétní půlkruh *)
Select[%,
N[Abs[z/.#]]<1       (*jsou v jednotkovém kruhu*)
&&                                  (*a zároveň*)
N[Im[z/.#]]>0& (*v horní polorovině*)
]
(* sečeteme rezidua ve všech těchto kořenech *)
2 Pi I Residue[ fce,{z,(z/.#)}]&/@% //Total//FullSimplify

Jiný integrál

Assuming[a>0,
contourIntegrate[a (E^(I s))(*křivka integrační cesty*),w /Conjugate[w](*funkce*),w,{s,0,π}(*rozsah parametru integrační cesty*)]
]