Complexe getallen

Project EXPLOOT
Hania Uscka
Vrije Universiteit Brussel

Inhoudstafel

1. Inleiding - Historische motivatie
	Reële getallen alleen...
	... zijn niet voldoende.
2. Constructie van de complexe getallen
	Punten in het vlak
	Vermenigvuldiging
	Het optellen
3. Vergelijking van de structuur van de complexe getallen en reële getallen - het lichaam
4. Complexe functies
	Inleiding
	Machtsverheffing
	Wortels
	Kennismaking met de werking van enkele complexe functies. Voorbeeld- en oefengedeelte
		Inleiding
		Functies type z → a z + b
		Functies type z → (z^n)
		Functies type z → Conjugate[z]
		Functies type z → 1/z
		Functies type z → 1/Conjugate[z]
	Inleiding tot de complexe exponentiële functie
5. Toepassingen in de meetkunde
	Isometrie
	Spirograph
	Oplossen van meetkundige oefeningen
6. Fractalen
7. De Hoofdstelling van de Algebra
8. Slot
9. Antwoorden op vraagstukken
	grafische illustratie van de wetten voor het optellen en vermenigvuldigen
	de formules voor het multiplicatief invers en de tegengestelde van een complex getal
	inductiebewijs - de wet van de Moivre.

Inleiding - Historische motivatie

Reële getallen alleen...

"God made the natural numbers. The others, were man-made" (Weierstrass)...

	... en de natuurlijke getallen dienden om voorwerpen te tellen:  1  halssnoer,  2  halssnoeren,  3  halssnoeren... - heel "natuurlijke" toepassing.
	
	Maar zo eenvoudig is het leven toch niet: "Ik had  17  halssnoeren. Een aantal daarvan heb ik aan mijn dochter gegeven. Nu heb ik nog maar twee halssnoeren over. Hoeveel heb ik er weggegeven?" - dergelijke vragen hebben de mensen aangezet om de negatieve getallen uit te vinden (of gewoon "ontdekken"). Daarna konden de mensen niet meer zeggen: vergelijking  x + 17 = 2  heeft geen oplossing. Zij heeft er één - in de zogenaamde gehele getallen.
	
	Handel drijven - kopen en verkopen. "Ik geef je  1  halssnoer voor  3  vissen. Als je nu de  10  vissen die je vandaag gevangen hebt, aan me kwijt wil, krijg je van me  3  halssnoeren en wees blij dat je al naar huis kan!" Hoeveel vissen krijgt nu de koper voor  1  halssnoer? Wel, dat kan je weeral niet beschrijven met behulp van de getallen die we reeds kennen... Toen hebben de mensen de rationale getallen bedacht: breuken. De vergelijking  3 x = 10  heeft een oplossing in de nieuwe getallenwereld. Ooit dacht men er zelfs niet aan om de getallen, die als "gehele" eenheden werden beschouwd, te "breken". Men kan zeggen: "De nood is de moeder der uitvindingen".
	
	Verder hebben de mensen vastgesteld dat de verhouding van de omtrek van een cirkel tot zijn straal niet als breuk kan uitgedrukt worden. Dat soort getallen, die klaarblijkelijk ook al in de natuur bestonden, werden "irrationaal" genoemd - getallen, die niet als ratio - verhouding - van twee gehele getallen kunnen uitgedrukt worden.

... zijn niet voldoende.

Het leven ging zijn gewone gang, en de geleerde mensen hielden zich bezig met het vinden van formules om de vergelijking type  a (x^2) + b x + c = 0   op te lossen. Die formules zijn algemeen gekend.
Hun grote nut heeft mensen als Cardano, Tartaglia, Ferrari en hun tijdgenoten (zestiende eeuw) aangezet tot de poging om gelijkaardige formules voor derdegraads vergelijkingen type  a (x^3) + b (x^2) + c x + d = 0  te vinden.
	Vele mensen denken dat de motivatie om complexe getallen te definiëren het verlangen was om de vergelijking  (x^2) + 1=0   op te lossen, anders gezegd - het bestaan van vierkantswortels van negatieve getallen. Dit is wel het resultaat van het definiëren van complexe getallen, maar niet de reden daarvan. De "uitvinding" van de complexe getallen was namelijk het neveneffect van het zoeken naar de formule voor de oplossingen van de derdegraadsvergelijking, waarvan mensen reeds WISTEN, dat ze minstens 1 oplossing had (omdat de polynomen  f(x) = a (x^3) + (bx^2) + c x + d  negatieve waarden bereiken voor negatieve  x  met grote absolute waarden, en positieve waarden voor grote positieve x indien  a > 0  en omgekeerd in het geval van  a < 0. Het is dus - minstens intuitïef - evident, dat ergens onderweg de waarde nul moet bereikt worden). Daarom was het zoeken naar de formule voor die oplossing wel verantwoord in tegenstelling tot het zoeken naar de oplossing van  (x^2) + 1 = 0,  die voor die mensen gewoonweg NIET BESTOND (evenmin als de oplossing van  x + 17 = 2  voor de mensen die geen negatieve getallen kenden. In geval van  (x^2) + 1 = 0  ontbrak er zelfs het "praktische" nut van het bestaan van zulke oplossingen...).
	De formule ziet er wel indrukwekkend uit - na substitutie  x = y - (b/(3 a))  in de vergelijking  a (x^3) + b (x^2) + c x + d = 0  en het delen door  a, krijgen we de oplossing van de vergelijking met de nieuwe coefficienten (die we voor grotere overzichtelijkheid  p  en  q  gaan noemen)  (y^3) + p y + q=0: 
	
\(TraditionalForm\`\(				
      y = \(\@\(\(-\(q\/2\)\) + \@\(\((q\/2)\)\^2 + \((p\/3)\)\^3\)\)\%3 + 
          \)\)\)\(TraditionalForm
      \`\@\(\(-\(q\/2\)\) - \@\(\((q\/2)\)\^2 + \((p\/3)\)\^3\)\)\%3\).

Men wist dus, dat elke derdegraadsvergelijking minimum 1 reële wortel heeft en dat we die kunnen vinden door de vorige formule. Problemen ontstonden als de uitdrukking onder de vierkantswortel negatief was. Dan moest men de derdegraadswortel van een "onreëel" getal trekken. De som van de twee derdegraadswortels was al wel een reëel getal, maar er moest iets bedacht worden om die "tussenstap" te verantwoorden. Er werd dus (Sqrt[-1]) gedefinieerd,  die echter uitsluitend als een soort "formele fictie" behandeld werd.
	Later, in 1777, heeft Euler notatie  i  en  -i  ingevoerd voor de twee verschillende wortels van  -1. Dat werd - in tegenstelling tot de "reële getallen", wiens recht van bestaan men kon verantwoorden op basis van de boven aangehaalde voorbeelden van het reële leven - een imaginair getal genoemd - pure fictie dus. 
	Kunnen we dat echt als puur fictieve verschijnselen behandelen? Zou er geen beeldrijke interpretatie van de nieuw gedefinieerde getallen zijn? Daar gaan wij het in het volgende hoofdstuk over hebben.

Constructie van de complexe getallen

Punten in het vlak

Deze constructie is aan Gauss (1799) en Hamilton (1833) te danken.

We gaan eventjes de gedachtenstroom van die grote wiskundigen proberen te "reconstrueren". Onze bedoeling nu is het getallenstelsel te omschrijven, dat een uitbreiding van de reële getallen is (dat wil zeggen - dat de reële getallen bevat en waarin de gewone bewerking van optellen en vermenigvuldigen van reële getallen uitgebreid worden op nieuwe getallen maar onveranderd blijven voor de reële getallen), en waarin het getal  i  bestaat, dat  een  oplossing  is van de vergelijking    (x^2)+1=0.
We weten, dat we die oplossing niet onder de reële getallen moeten zoeken. Als we dat nieuwe stelsel grafisch willen voorstellen, moeten we onze  i  buiten de getallenas zoeken! Laat ons het gewone Cartesische coördinatenstelsel nemen en de  x-as als de reële as beschouwen. Het punt  (0,1)  noemen we  i.  Nu gaan we het vermenigvuldigen en optellen van de punten in het vlak definiëren rekening houdend met de opgesomde voorwaarden. Elk punt van het vlak heeft poolcoördinaten. De ligging wordt bepaald door zijn afstand  r  van het punt  (0,0)  (straallengte) en het hoek φ tussen de straal en het positieve deel van de  x-as.

De tekening hieronder toont het duidelijk. Als je in het programmeren geïnteresserd bent, kan je de cel openklikken.

\(Clear[lijnen]; 
Clear[punt]; 
Clear[teksten]; 
Clear[complexGetal]; 
    

lijnen[{x_, y_}] := {Line[{{0, 0}, {x, y}}], 

        																			{Dashing[{0.05, 0.05}], 
          Line[{{0, y}, {x, y}}], Line[{{x, 0}, {x, y}}]}}; 

    punt[{x_, y_}] := {Hue[ .1], PointSize[0.02], Point[{x, y}]}; 

    teksten[{x_, y_}] := {
        Text[FontForm["(x,y)", {"Courier-Bold", 16}], {x + 0.5, y}], 
        
																			
        Text[FontForm["r", {"Courier-Bold", 16}], {0.5\ x, 
            0.5\ y + 0.3}], 
																			
        Text[FontForm["φ", {"Courier-Bold", 16}], {0.3, 
            0.2}], 
																			
        Text[FontForm["r cosφ", {"Courier-Bold", 16}], {
            0.5\ x, y + 0.2}], 
																			
        Text[FontForm["r sinφ", {"Courier-Bold", 16}], {
            x + 0.6, 0.5\ y}]}; 

    imagin = {Hue[0], PointSize[0.02], Point[{0, 1}]}; 


    complexGetal[{x_, y_}] := 
      Show[Graphics[{lijnen[{x, y}], 

            																																								punt[{x, y}], 

            																																								teksten[{x, y}], 

            																																								imagin}, 

          																														
          Axes -> True, AxesLabel -> {"real", "imaginary"}, 
          AspectRatio -> Automatic]]\)

complexGetal[{2, 3}]

De Cartesische coördinaten van punt op afstand  r  van  (0,0)  gezien onder een hoek  φ  (dus punt met poolcoördinaten  (r,φ) )  zijn  (r cosφ, r sinφ).  Dit volgt uit de simpele toepassing van de goniometrie.
Omgekeerd: voor elk punt  (x, y)  van het vlak kunnen we de straal en de hoek vinden op basis van de formules:

Clear[straal]Clear[hoek]
straal[x_, y_] := N[Sqrt[x^2 + y^2]]hoek[x_, y_] := 
        If[x < 0, 1, 0] N[Pi] + 
          If[x < 0, -1, 1] ArcSin[y/straal[x, y]]
{straal[-1, 4],hoek[-1, 4]}

De formule voor de hoek ziet er een beetje ingewikkeld uit, met de clausule "If". Het moest zo gedaan worden, omdat de functie ArcSin alleen maar waarden van het interval  [-π/2,π/2]  aanneemt. Er is dus een lichte aanpassing nodig, om alle punten van de cirkel te kunnen beschrijven.

Probeer eens zelf voor een aantal punten hun straal en hoek uit te rekenen. Doe dat door de "rode" coördinaten in  "{straal[-1,4], hoek[-1,4]}"  door de door jezelf gekozen coördinaten te vervangen en de cel te evalueren.

De straal wordt ook MODULUS  of afstand van een complex getal genoemd en voorgesteld door  |z|  of  Abs[z]  (absolute waarde van  z - zijn afstand van de oorsprong). De hoek wordt ARGUMENT van het complexe getal genoemd. Wij schrijven:  Arg[z].

Vermenigvuldiging

We willen dat het punt  (0,1)  - onze  i  - vermenigvuldigd met zichzelf, als resultaat -1, dus het punt  (-1,0), geeft. Laat ons even op de volgende tekening kijken:
(door de cel open te klikken kan je de programmatie bekijken).

\(Show[
      Graphics[{{Hue[ .5], PointSize[0.02], Point[{1, 0}]}, 

          															{Hue[0], PointSize[0.02], 
            Point[{0, 1}]}, 

          															{Hue[0], 
            Text[FontForm["I", {"Courier-Bold", 20}], {
                0.1, 0.95}]}, 

          															{Hue[ .1], PointSize[0.02], 
            Point[{\(-1\), 0}]}, 

          															{Hue[0], Line[{{0, 0}, {0, 1}}]}, 

          															{Hue[ .1], 
            Line[{{0, 0}, {\(-1\), 0}}]}, 

          															{Hue[0], 
            Circle[{0, 0},  .1, {0, Pi/2}]}, 

          															{Hue[ .1], 
            Circle[{0, 0},  .2, {0, Pi}]}}, 
					Axes -> True, 
        PlotRange -> {{\(-1\), 1}, {0, 1}}, AspectRatio -> Automatic]]\)

We merken op dat de hoek tussen de straal door het punt  (0,1)  en de positieve richting van de as x  door de vermenigvuldiging werd verdubbeld. Zou dat niet suggereren om het vermenigvuldigen te definiëren als rotatie rond het punt  (0,0)  over de hoek  φ ? We mogen natuurlijk niet vergeten, dat we het vermenigvuldigen van reële getallen willen uitbreiden, dus de resultaten voor de reële getallen moeten onveranderd blijven! Wat de hoek betreft, is dat in orde, want die is in geval van reële getallen altijd nul voor positieve getallen en altijd  π  voor negatieve getallen. Maar we zien al dat de rotatie alleen niet volstaat - bij reële getallen worden de lengten van de stralen vermenigvuldigd! Dat suggereert al de volgende definitie van de vermenigvuldiging van punten van het vlak:

om twee punten van het vlak te vermenigvuldigen, moeten we de lengten van hun stralen met mekaar vermenigvuldigen als reële getallen en de hoeken tussen de stralen en het positieve deel van de  x-as moeten we optellen.

Abs[(Subscript[z, 1]) (Subscript[z, 2])] = Abs[(Subscript[z, 1])] Abs[(Subscript[z, 2])],
Arg[(Subscript[z, 1]) (Subscript[z, 2])] = Arg[(Subscript[z, 1])]+Arg[(Subscript[z, 2])]

Vermenigvuldiging zou dus samenstelling van een rotatie en een homothetie (de definitie van homothetie kan je vinden door op dit stukje blauwe tekst te klikken) zijn.

Dit illustreert iets wat je al lang kende: bij het vermenigvuldigen van de reële getallen gelden volgende regels:
positief x positief = positief 	( 0+0=0 )
positief x negatief = negatief 	( 0+π=π )
negatief x positief = negatief 	( π+0=π )
negatief x negatief = positief 	( π+π=2π  - een geöriënteerde hoek van  2π   op een cirkel is equivalent aan 0 ).

Als herinnering: definitie van homothetie: 
Homothetie ten opzichte van punt  M  en met de verhouding  k  (een reëel getal verschillend van nul) is de transformatie van het vlak die elke punt  X  van het vlak op een punt  X'  afbeeldt zodat   (Overscript[(MX'), →]) = k (Overscript[MX, →]).

[ terug naar de tekst van het notebook ]

Hieronder vind je de meetkundige interpretatie van het vermenigvuldigen van complexe getallen. Het argument van het getal  (Subscript[z, 1])  (rood aangeduid) wordt opgeteld bij het argument van het getal  (Subscript[z, 2])  (zwart aangeduid) - de straal van het getal  (Subscript[z, 2])  wordt dus geroteerd over de hoek  Arg[(Subscript[z, 1])]  rond de oorsprong van het Cartesische stelsel. Daarbij wordt de lengte van de straal  Abs[(Subscript[z, 2])]  vermenigvuldigd met het positieve getal  Abs[(Subscript[z, 1])].  Na de rotatie wordt dus een homothetie toegepast.
Dat betekent, dat de twee driehoeken op de tekening hieronder - de gele [met de hoekpunten  (0,0),  (1,0)  en  (Subscript[z, 1])] en de blauwe [met de hoekpunten  (0,0),  (Subscript[z, 2])    en   (Subscript[z, 1])(Subscript[z, 2])]  gelijkvormig zijn, omdat:

*	hoek [(1,0), (0,0), (Subscript[z, 1])]  =  hoek [(Subscript[z, 2]), (0,0), (Subscript[z, 1]) (Subscript[z, 2])]

*	(1/Abs)[(Subscript[z, 1])]=Abs[(Subscript[z, 2])]/Abs[(Subscript[z, 1]) (Subscript[z, 2])].

(door de cel open te klikken kan je de programmatie bekijken).

Clear[plaats]Clear[product]Clear[tekening]
plaats[afstand_, hoek_] := {afstand Cos[hoek],  afstand Sin[hoek]}
          
plaats[{afstand_, hoek_}] := plaats[afstand, hoek]
\(product[{{getal1_, hoek1_}, {getal2_, hoek2_}}] := 
		
        plaats[getal1\ \ getal2, hoek1 + hoek2]\)
tekening[r1_, φ1_, r2_, φ2_]:=
	Show[Graphics[
			{{Hue[0.15], 
                  Polygon[{plaats[r1, φ1], {0, 0}, plaats[1, 0]}]}
                  ,
			  {Hue[0.5], 
                  Polygon[{
                      plaats[r1 r2, φ1 + φ2], {0, 0}, 
                      plaats[r2, φ2]}]},
			    Point[product[{{r1, φ1}, {r2, φ2}}]],
				Text["\!\(z\_1\)\!\(z\_2\)", 
                    product[{{r1, φ1}, {r2, φ2}}] + {0.3, 
                        0.3}],
			    Point[plaats[r1, φ1]],
			 	Text["\!\(z\_1\)", 
                    plaats[r1, φ1] + {0.3, 0.3}],
		      Point[plaats[r2, φ2]],
					Text["\!\(z\_2\)", 
                    plaats[r2, φ2] + {0.3, 0.3}],
			    {Hue[0], Circle[{0, 0},  .5, {0, φ1}]},
			    {Hue[0], Line[{{0, 0}, plaats[r1, φ1]}]},
			    {Circle[{0, 0},  .7, {0, φ2}]},
			    {Line[{{0, 0}, plaats[r2, φ2]}]},
			    {Hue[0], 
                    Circle[{0, 0},  .9, {φ2, 
                        φ1 + φ2}]},
					{Hue[0], 
                    Line[{{0, 0}, 
                        product[{{r1, φ1}, {r2, φ2}}]}]}
                    ,
			     {Text[
                      FontForm[
                        "\!\(z\_1\)=(\!\(r\_1\),\!\(φ\_1\))", {
                          "Courier-Bold", 18}], {1, -2}, {-1, 0}]}
                    ,
			     {Text[
                      FontForm[
                        "\!\(z\_2\)=(\!\(r\_2\),\!\(φ\_2\))", {
                          "Courier-Bold", 18}], {1, -3}, {-1, 0}]}
                    ,
	         {Text[
                      FontForm[
                        "\!\(z\_1\)\!\(z\_2\)=(\!\(r\_1\)\!\(r\_2\),\!\(\
φ\_1\)+\!\(φ\_2\))", {"Courier-Bold", 18}], {1, 
                        -4}, {-1, 0}]}}
			        ],
	               Axes -> True,AspectRatio -> Automatic,PlotRange -> {{-5, 10}, {-5, 5}}]

tekening[3, Pi/3, 1.5, 2 Pi/7]

We zien dus de analogie met het vermenigvuldigen van reële getallen. De stelling van Thales vertelt ons dat we ook in de "reële" situatie met gelijkvormige driehoeken te maken hebben. Toon op de tekening hieronder, welke driehoeken dat zijn en waarom ze gelijkvormig zijn.

Je kan ook een beetje spelen - neem andere getallen (vervang de getallen in  "maal[3,2]"  door de zelf gekozen reële getallen) en kijk of je nog gelijkvormige driehoeken krijgt!
(door de cel open te klikken kan je de programmatie bekijken).

\(Clear[maal]
\)\(maal[a_, b_] := 
      Show[Graphics[{{Hue[ .5], PointSize[0.04], Point[{a, 0}]}, 

            																														{
              Hue[ .1], PointSize[0.04], Point[{b, 0}]}, 

            																														{
              Hue[0], PointSize[0.04], Point[{a\ b, 0}]}, 

            																														{
              Hue[ .7], PointSize[0.04], Point[{0, 1}]}, 

            																														{
              Hue[ .1], PointSize[0.04], Point[{0, b}]}, 

            																														{
              Hue[ .3], Line[{{a, 0}, {0, 1}}]}, 

            																														{
              Hue[ .3], Line[{{a\ b, 0}, {0, b}}]}, 

            																														{
              Hue[ .1], Circle[{0, 0}, Abs[b], {Arg[b], Arg[b] + Pi/2}]}, 

            																														{
              Text[FontForm["a", {"Courier-Bold", 16}], {a, 
                  \(-0.2\)}]}, 

            																														{
              Text[FontForm["b", {"Courier-Bold", 16}], {b, 
                  \(-0.2\)}]}, 

            																														{
              Text[FontForm["ab", {"Courier-Bold", 16}], {a\ b, 
                  \(-0.2\)}]}, 

            																														{
              Text[FontForm["b", {"Courier-Bold", 16}], {\(-0.3\), 
                  b}]}, 

            																														{
              Text[FontForm["1", {"Courier-Bold", 16}], {\(-0.3\), 
                  1}]}
																												}], 
																		\ Axes -> True, 
        AspectRatio -> Automatic, Ticks -> None]\)

maal[3, 2]

Alle punten in het vlak hebben, behalve poolcoördinaten, ook gewone Cartesische coördinaten. Klik hierop om de formule voor het omrekenen terug te vinden.

Nu gaan we trachten de formule voor het vermenigvuldigen van complexe getallen in Cartesische coördinaten uit te drukken.
Twee getallen met poolcoördinaten   (Subscript[z, 1]) = ((Subscript[r, 1]), (Subscript[φ, 1])) ,   (Subscript[z, 2]) = ((Subscript[r, 2]), (Subscript[φ, 2]))   hebben dus volgende Cartesische coördinaten:

(Subscript[z, 1]) = ((Subscript[a, 1]), (Subscript[b, 1])),     waar     (Subscript[a, 1])=(Subscript[r, 1]) cos[(Subscript[φ, 1])], (Subscript[b, 1]) = (Subscript[r, 1]) sin[(Subscript[φ, 1])],
(Subscript[z, 2]) = ((Subscript[a, 2]), (Subscript[b, 2])),     waar     (Subscript[a, 2])=(Subscript[r, 2]) cos[(Subscript[φ, 2])], (Subscript[b, 2]) = (Subscript[r, 2]) sin[(Subscript[φ, 2])].

We weten, dat  (Subscript[z, 1]) (Subscript[z, 2]) = ((Subscript[r, 1]) (Subscript[r, 2]), (Subscript[φ, 1]) + (Subscript[φ, 2])).  De goniometrische formules:

TrigExpand[r1 r2 Cos[φ1 + φ2]]

TrigExpand[r1 r2 Sin[φ1 + φ2]]

laten ons toe om het gezochte verband tussen de Cartesische coördinaten van   (Subscript[z, 1]) (Subscript[z, 2])  met de Cartesische coördinaten van  (Subscript[z, 1])   en   (Subscript[z, 2])  in te zien. We hebben namelijk:

 (Subscript[z, 1]) (Subscript[z, 2]) = (a, b), waar:
 a=(Subscript[r, 1]) (Subscript[r, 2]) cos[(Subscript[φ, 1]) + (Subscript[φ, 2])] = 
                (Subscript[r, 1]) (Subscript[r, 2]) cos[(Subscript[φ, 1])]  cos[(Subscript[φ, 2])] - 
                    (Subscript[r, 1]) (Subscript[r, 2]) sin[(Subscript[φ, 1])] sin[(Subscript[φ, 2])] = 
                   (Subscript[a, 1]) (Subscript[a, 2]) - (Subscript[b, 1]) (Subscript[b, 2])
b=(Subscript[r, 1]) (Subscript[r, 2]) sin[(Subscript[φ, 1]) + (Subscript[φ, 2])] = 
              (Subscript[r, 1]) (Subscript[r, 2]) cos[(Subscript[φ, 2])]  sin[(Subscript[φ, 1])] + 
                  (Subscript[r, 1]) (Subscript[r, 2]) cos[(Subscript[φ, 1])] sin[(Subscript[φ, 2])] = 
                (Subscript[a, 2]) (Subscript[b, 1]) + (Subscript[a, 1]) (Subscript[b, 2])
                                       
Anderszijds is het heel gemakkelijk om op te merken dat als we nu het vlak als tweedimensionale ruimte behandelen met de basis  {1,i},  we alle complexe getallen kunnen voorstellen als lineaire combinatie van  1  en  i  met reële coëfficiënten - het wordt dus:

 (Subscript[z, 1]) = ((Subscript[a, 1]), (Subscript[b, 1]))=(Subscript[a, 1]) + (Subscript[b, 1])i
 (Subscript[z, 2]) = ((Subscript[a, 2]), (Subscript[b, 2]))=(Subscript[a, 2]) + (Subscript[b, 2])i
 
Nu, rekening houdende met het feit dat  (i^2) = -1  (ZO hebben we tenslotte onze vermenigvuldiging gedefinieerd!), kunnen we ook het produkt  (Subscript[z, 1]) (Subscript[z, 2])  uitrekenen:

Expand[(a1 + b1 I) (a2 + b2 I)]

dus:
(Subscript[z, 1]) (Subscript[z, 2]) = ((Subscript[a, 1]) + (Subscript[b, 1])i) ((Subscript[a, 2]) + (Subscript[b, 2])i) = (Subscript[a, 1]) (Subscript[a, 2]) + (Subscript[a, 1]) (Subscript[b, 2]) i + (Subscript[a, 2]) (Subscript[b, 1])i + (Subscript[b, 1]) (Subscript[b, 2]) (i^2) = ((Subscript[a, 1]) (Subscript[a, 2]) - (Subscript[b, 1]) (Subscript[b, 2])) + i ((Subscript[a, 2]) (Subscript[b, 1]) + (Subscript[a, 1]) (Subscript[b, 2])).
 
Als oefening, reken je voor elke van de drie voorstellingen van de complexe getallen uit, of  (i^2) werkelijk aan  -1 gelijk is  ( i =(1,(π/2))  in de poolcoördinaten,  i =(0,1)  in de Cartesische coördinaten).

CONCLUSIE
Een complex getal kan op volgende equivalente manieren voorgesteld worden:

1.  z  =  (r, φ) - poolcoördinaten. Beschrijving door afstand van  (0,0)  en de hoek tussen de straal en het positieve deel van de x-as,
2. z = (a, b) - Cartesische coördinaten  a = r cosφ, b = r sinφ  voor complexe getallen als elementen van het vlak  (ℝ^2).
3.z = a + b i - na identificatie van de standaardbasis met de punten  1  en  i .

Voor elke van die voorstellingen kunnen we een formule voor het VERMENIGVULDIGEN uitdrukken:

Verm(1). ((Subscript[r, 1]), (Subscript[φ, 1])) ((Subscript[r, 2]), (Subscript[φ, 2])) = ((Subscript[r, 1]) (Subscript[r, 2]),  (Subscript[φ, 1]) +  (Subscript[φ, 2])) - stralen worden vermenigvuldigd, hoeken opgeteld,
Verm(3). ((Subscript[a, 1])+ (Subscript[b, 1]) i) ((Subscript[a, 2]) +  (Subscript[b, 2]) i)  =  ((Subscript[a, 1]) (Subscript[a, 2])  -  (Subscript[b, 1]) (Subscript[b, 2])) + i ((Subscript[a, 2]) (Subscript[b, 1])+ (Subscript[a, 1]) (Subscript[b, 2])) - formule voor de derde gedaante.

Formule voor de Cartesische coördinaten is:
Verm(2). ((Subscript[a, 1]),  (Subscript[b, 1])) ((Subscript[a, 2]),  (Subscript[b, 2])) = ((Subscript[a, 1]) (Subscript[a, 2]) - (Subscript[b, 1]) (Subscript[b, 2]), (Subscript[a, 2]) (Subscript[b, 1]) + (Subscript[a, 1]) (Subscript[b, 2]))

Een belangrijke opmerking: om de notatie van de goniometrische gedaante van een complex getal  z  =  
            r (cosφ  +  i sinφ)  een beetje "in te korten", wordt er een speciaal symbool gebruikt voor  cosφ + i sinφ.  Aangezien de hoek, waarvan we de sinus en cosinus nemen, dezelfde is, kunnen we  cosφ + i sinφ  tot één symbool samentrekken. Men gebruikt daarvoor het symbool  (e^(i φ)).  Voorlopig gaan we dat gewoon als symbool behandelen - als iets wat ons leven gemakkelijk maakt. We vervangen immers 10 karakters door 3 karakters - serieuze besparing bij het typen! Later gaan we zien hoe praktisch deze notatie is in sommige toepassingen. Jullie gaan ook zien - indien jullie verder wiskunde willen studeren - dat het geen toeval is, dat men juist dat symbool (dat ons toch zo sterk doet denken aan de exponentiële functie! Klik hierop om iets meer over de exponentiele functie te vinden.) gebruikt. Voorlopig gaan we ons tevreden stellen met de vierde mogelijke notatie van de complexe getallen:

4. z  = r (e^(i φ))

En de formule voor het vermenigvuldigen kunnen we (op basis van de formule voor de goniometrische voorstelling) als volgt opschrijven:

Verm(4). (Subscript[r, 1]) (e^(i (Subscript[φ, 1]))) \(TraditionalForm
      \`r\_2\ e\^\(i\ φ\_2\)\  = \ 
        \(r\_\(1\ \)\) r\_2\ 
          e\^\(i\ 
              \((φ\_1 + φ\_2)\)\)\)
 
Belangrijke opmerking voor de ingenieurs:
Deze notatie wordt veel gebruikt in de elektronika - bij de beschrijving van de wisselstroom.

Opgave voor de studenten:
Kijk zelf na dat de definitie van het vermenigvuldigen van complexe getallen (die de reële getallen omvatten, nl. alle getallen type  (a,0) ) opnieuw het product van reële getallen oplevert. Dus - de nieuwe vermenigvuldiging is een uitbreiding van de vermenigvuldiging van reële getallen.

Nu kan je zelf een beetje oefenen: vermenigvuldigen met een gegeven complex getal  (2, 0.9),  het gele punt. Het punt dat jij kiest (door de getallen in  "maalCartesisch[-3,4]"  door de zelfgekozen getallen-coördinaten te vervangen) is blauw, het resultaat van het vermenigvuldigen is groen.
Merk op dat de hoek tussen de blauwe en de groene straal altijd dezelfde is (gelijk aan  Arg[(2,0.9)]  - zie de twee rode bogen op de tekening) - ongeacht de keuze van coördinaten! Ook de verhouding tussen de lengte van de straal van het product (de "groene" straal dus) en de lengte van de straal van het door jou gekozen getal (de "blauwe" straal) is constant, gelijk aan  Abs[(2,0.9)]=2.19317  - zie berekening in de gesloten cel hieronder. Dat wil zeggen, dat de "groene" straal altijd een beetje meer dan twee maal langer is dan de "blauwe" straal - ook ongeacht de coördinatenkeuze!
Je ziet dus duidelijk dat het vermenigvuldigen met een vast complex getal de samenstelling is van een rotatie over zijn argument (tegen de klokwijzers) en homothetie met de verhouding gelijk aan zijn modulus.
(door de cel open te klikken kan je de programmatie bekijken).

Sqrt[2^2 + (0.9)^2]

\(Clear[g2, maalCartesisch]; 


    g2[x_, y_] := {{Hue[ .3], PointSize[0.03], 
          Point[{2\ x -  .9\ y, 2\ y +  .9\ x}]}, 

        													{Hue[ .3], 
          Line[{{0, 0}, {2\ x -  .9\ y, 2\ y +  .9\ x}}]}, 

        																					{Hue[ .1], PointSize[0.03], 
          Point[{2,  .9}]}, 

        																					{Hue[ .1], 
          Line[{{0, 0}, {2,  .9}}]}, 

        																					{Hue[0], 
          Circle[{0, 0}, 1.5, {0, ArcSin[ .9/Sqrt[2^2 + \(( .9)\)^2]]}]}, 

        																					{Hue[ .5], PointSize[0.03], 
          Point[{x, y}]}, 

        																					{Hue[ .5], 
          Line[{{0, 0}, {x, y}}]}, 

        		{Hue[0], 
          Circle[{0, 0}, 
            1.5, {If[x < 0, 1, 0]\ N[Pi] + 
                If[x < 0, \(-1\), 1]\ ArcSin[y/Sqrt[x^2 + y^2]], 
              If[2\ x -  .9\ y < 0, 1, 0]\ N[Pi] + 
                If[2\ x -  .9\ y < 0, \(-1\), 1]\ 
                  ArcSin[\((2\ y +  .9\ x)\)/
                      Sqrt[\((2\ x -  .9\ y)\)^2 + \((2\ y +  .9\ x)\)^2]]}]}
          
	}\)\(	maalCartesisch[x_, y_] := 	
      Show[Graphics[g2[x, y]], 
																		\ 
        Axes -> True, AspectRatio -> Automatic, 
        PlotRange -> {{\(-10\), 10}, {\(-10\), 10}}]\)

maalCartesisch[-3, 4]

Het optellen

Nu we het vermenigvuldigen van de complexe getallen gedefinieerd hebben, gaan we door naar het optellen. De som van de complexe getallen gaan we gewoon definieren als de som van vectoren (de parallellogram-regel). Zie tekening.
((Subscript[a, 1]), (Subscript[b, 1]))  +  ((Subscript[a, 2]),  (Subscript[b, 2]))  =  
            ((Subscript[a, 1]) +  (Subscript[a, 2]),  (Subscript[b, 1]) +  (Subscript[b, 2]))  - optellen van coördinaten - reële getallen dus - bij mekaar.
(door de cel open te klikken kan je de programmatie bekijken).

Clear[tekeningPlus]
tekeningPlus[a1_, b1_, a2_, b2_]:=
	Show[Graphics[{{Hue[ .5], PointSize[0.04], Point[{a1, b1}]},
																{Hue[ .1], PointSize[0.04], Point[{a2, b2}]},
																{Hue[0], PointSize[0.04], Point[{0, 0}]},
																{Hue[ .3], PointSize[0.04], Point[{a1 + a2, b1 + b2}]},
																{Hue[ .7], Line[{{0, 0}, {a1, b1}}]},
																{Hue[ .9], Line[{{0, 0}, {a2, b2}}]},
																{Hue[ .9], Line[{{a1, b1}, {a1 + a2, b1 + b2}}]},
																{Hue[ .7], Line[{{a2, b2}, {a1 + a2, b1 + b2}}]},
																{Hue[0], Line[{{0, 0}, {a1 + a2, b1 + b2}}]},
																{Text[
                      FontForm["\!\(z\_1\)", {"Courier-Bold", 16}], {
                        a1 + 0.2, b1 + 0.2}]},
																{Text[
                      FontForm["\!\(z\_2\)", {"Courier-Bold", 16}], {
                        a2 + 0.2, b2 + 0.2}]},
																{Text[
                      FontForm[
                        "\!\(z\_1\)+\!\(z\_2\)", {"Courier-Bold", 
                          16}], {a1 + a2 + 0.2, b1 + b2 + 0.2}]}
															}],
																		 Axes -> True,AspectRatio -> Automatic]

tekeningPlus[-1, 2, -8, 2]

Het optellen van de reële getallen verandert op die manier natuurlijk niet.
Opgave voor de studenten:
Kijk zelf na dat de definitie van het optellen van complexe getallen (die de reële getallen omvatten - alle getallen type  (a,0) ) opnieuw de som van reële getallen oplevert. Dus - de nieuwe optelling is een uitbreiding van de optelling van reële getallen.

Vergelijking van de structuur van de complexe getallen en reële getallen - het lichaam.

In het vorige hoofdstuk hebben we kennis gemaakt met het begrip "complex getal" en hebben we verschillende gedaanten van complexe getallen leren kennen. Complexe getallen kunnen voorgesteld worden als punten van het vlak - met het optellen als vectoren (wat op het optellen van coördinaten neerkomt) en het vermenigvuldigen als samenstelling van een rotatie en homothetie. Jullie hebben in beide gevallen gezien, dat de bewerkingen die we gedefinieerd hebben voor complexe getallen, uitbreidingen zijn van de analoge operaties voor de reële getallen. Maar... het zou leuk zijn om te weten of ze ook dezelfde eigenschappen hebben als de bewerkingen op reële getallen, die op zich een lichaam vormen.
Zoals iedereen weet, zijn dat volgende eigenschappen:

1. Eigenschappen van het optellen:
* commutativiteit:    ∀a,b∈ℝ    a + b = b + a
* associativiteit:    ∀a,b,c∈ℝ    a + (b + c) = (a + b) + c

2. Eigenschappen van de vermenigvuldiging:
* commutativiteit:    ∀a,b∈ℝ    a b = b a
* associativiteit:    ∀a,b,c∈ℝ    a (b c) = (a b) c

3. Eigenschappen die de twee bewerkingen verbinden:
* distributiviteit van het vermenigvuldigen ten opzichte van het optellen:    ∀a,b,c∈ℝ    a (b + c) = a b + a c

We zullen nagaan of hetzelfde geldt voor complexe getallen - arithmetisch en grafisch. Dat is evident op basis van de definitie zelf en van de eigenschappen van de reële getallen. We checken dat even met behulp van de "Mathematica"-functie "ComplexExpand". In het huidig tijdperk worden we dikwijls aan genade of ongenade van ons software overgeleverd. We gaan uiteraard van uit dat "Mathematica" feilloos wiskunde kent. Als je ze toch niet betrouwt, kan je alles zelf uitreken - in dit geval heb je nog ten minste de keuze...

ComplexExpand[a1 + b1 I + a2 + b2 I]

ComplexExpand[a2 + b2 I + a1 + b1 I]

We krijgen twee keer hetzelfde resultaat. Het optellen van complexe getallen is commutatief.

ComplexExpand[
      a1 + b1 I + 
        (a2 + b2 I + a3 + b3 I)]

ComplexExpand[
      (a1 + b1 I + a2 + b2 I) + a3 + 
        b3 I]

We krijgen twee keer hetzelfde resultaat. Het optellen van complexe getallen is associatief.

ComplexExpand[
      (a1 + b1 I) (a2 + b2 I)]

ComplexExpand[
      (a2 + b2 I) (a1 + b1 I)]

We krijgen... weeral twee keer hetzelfde resultaat. Het vermenigvuldigen van complexe getallen is commutatief.

ComplexExpand[
      (a1 + b1 I) 
        ((a2 + b2 I) (a3 + b3 I))]

ComplexExpand[
      ((a1 + b1 I) (a2 + b2 I)) 
        (a3 + b3 I)]

Hoe zou dat anders... - we krijgen weeral twee keer hetzelfde resultaat! Het begint al echt een beetje monotoon te worden. En de verwachte conclusie: Het vermenigvuldigen van complexe getallen is assotiatief.

ComplexExpand[
      (a1 + b1 I) 
        (a2 + b2 I + a3 + b3 I)]

ComplexExpand[
      (a1 + b1 I) (a2 + b2 I) + 
        (a1 + b1 I) (a3 + b3 I)]

En? Kan je zelf raden wat het resultaat is? Natuurlijk kan je dat! [voor het zekerste - het antwoord voor de meest onzekere onder ons: De distributiviteit geldt ook voor complexe getallen :-) ]

Probeer dat ook grafisch aan te tonen.  Door hierop te klikken vind je de oplossing van de opgave.

LICHAAM

( M ;  + , x , 0 , 1 )  [ een verzameling M met twee bewerkingen:  + : M x M → M  (plus)  en  x : M x M → M  (maal)  en met twee neutrale elementen tov die bewerkingen ]  heet lichaam als:
1. Plus is commutatief, dwz						∀a,b∈M     a + b = b + a
2. Plus is associatief, dwz						∀a,b,c∈M     a + (b + c) = (a + b) + c
3. 0 is het neutrale element tov de bewerking "+", dwz		∀a∈M     a + 0 = a
4. Elk element van  M  heeft zijn inverse tov plus in  M,  dwz 	∀a∈M  ∃a'∈M     a + a' = 0
5. Maal is commutatief, dwz						∀a,b∈M     a x b = b x a
6. Maal is associatief, dwz						∀a,b,c∈M     a x (b x c) = (a x b) x c
7. 1 is het neutrale element tov de bewerking "x", dwz		∀a∈M     a x 1 = a
8. Elk verschillend van nul element van  M  heeft zijn inverse tov maal in  M, dwz
		∀a∈M  [ a ≠ 0  ⇒  (∃a''∈M   a x a'' = 1) ]
9. Maal is distributief ten opzichte van plus, dwz 			∀a,b,c∈M     a x (b + c) = a x b + a x c

[ terug naar de tekst van het notebook ]

We hebben dus daarnet bijna aangetoond dat de verzameling van complexe getallen met de bewerkingen plus en maal aan de algemene definitie van het LICHAAM voldoet. Dat lichaam wordt "het lichaam ℂ van de complexe getallen" genoemd.  (het neutraal element is  (0,0)  en het eenheidselement is  (1,0)  - waarom?). Om het bewijs te voltooien, moet men nog voor elk getal  z=(a,b)  zijn multiplicatief invers en de tegengestelde vinden. Tracht ze zelf uit te rekenen. Als het niet lukt, kan je de oplossing van die opgave consulteren.
Je vind ze door op dat stukje blauwe tekst te klikken.

Meer daarover - en ook over de algebra's van de quaternionen en de octaven - ga je in een van de volgende notebooks kunnen lezen.

Complexe functies

Inleiding

We kunnen al optellen en vermenigvuldigen de verzameling van de complexe getallen. Dan kunnen we automatisch ook aftrekken (optellen van een tegengestelde van een vector) en delen (vermenigvuldigen met het invers element voor de vermenigvuldiging). Bij het delen worden de straallengtes gedeeld en de argumenten afgetrokken. Machtsvercheffing is een meervoudige vermenigvuldiging  - dat kennen we dus ook al. Toch wordt dat nog even apart besproken. Worteltrekken wordt ook besproken in dit hoofdstuk.

Machtsverheffing

Bij het vermenigvuldigen van complexe getallen, worden hun moduli met mekaar vermenigvuldigd, en de argumenten opgeteld. Dat weet je al. Hoe gaat de machtsverheffing er dan uitzien?
Om het kwadraat van het getal  z = r (cosφ + i sinφ)  uit te rekenen, moeten we dit getal met zichzelf vermenigvuldigen. De twee getallen die we dan met elkaar vermenigvuldigen, hebben dus dezelfde modulus en hetzelfde argument.

(z^2) = (r r) (cos(φ+φ) + i sin(φ+φ)) = (r^(2 ))(cos2φ + i sin2φ)

(z^3) = z (z^2) = (r (r^(2 ))) (cos(φ+2φ) + i sin(φ+2φ)) = (r^3)(cos3φ + i sin3φ)

Een simpele inductie (schrijf als oefening exact het inductiebewijs uit. Als het niet lukt, consulteer de oplossing. Klik op dat stukje blauwe tekst om ze te vinden.) toont, dat voor elk natuurlijk getal  n  geldt:

(([r (cosφ + i sinφ)])^n) = (r^(n ))(cosnφ + i sinnφ)

Deze belangrijke formule is gekend als de "formule van de Moivre" en helpt ons om heel gemakkelijk machten van complexe getallen te vinden.

Deze formule laat ons ook toe om bijvoorbeeld de formules voor   cosnφ   en   sinnφ   te vinden (uitgedrukt in termen van  cosφ  en  sinφ). Hoe?
cosnφ  + i sinnφ = (((cosφ  +  i sinφ))^n)
Als we nu het rechterlid kunnen uitrekenen en zijn reëel en imaginair deel aanduiden, is onze opgave opgelost:
het reële deel van het rechterlid van de gelijkheid moet immers gelijk zijn aan het reële deel van het linkerlid - en dat is  cosnφ!
analoog - het imaginaire deel van het rechterlid van de gelijkheid moet gelijk zijn aan het imaginaire deel van het linkerlid - en dat is  sinnφ!
Gebruik het programma hieronder om de formules voor   cosnφ   en   sinnφ   voor verschillende  n  te vinden. Het programma helpt ons namelijk het reële en imaginaire deel van het rechterlid van de gelijkheid te vinden. Vervang de rode 3 in het programma door een zelfgekozen waarde van  n.

\(Clear[f, formuleCos, formuleSin]; 


    f[n_] := Expand[\((Cos[x] + I\ Sin[x])\)^n]\)formuleCos[n_] := ComplexExpand[Re[f[n]]]formuleSin[n_] := ComplexExpand[Im[f[n]]]
f[3]formuleCos[3]formuleSin[3]

Het resultaat van de berekening hierboven is:

cos3φ = (((cosφ))^3) - 3 cosφ (((sinφ))^2)
sin3φ = 3 (((cosφ))^2) sinφ - (((sinφ))^3)

Die formules kunnen soms heel nuttig zijn en je kan ze altijd gemakkelijk afleiden uit de formule van de Moivre.

Op die manier kan je nog veel andere goniometrische formules vinden - maar dat is een onderwerp voor een ander notebook.

Wortels

Voor elk natuurlijk getal   n>1   geldt: ELK complex getal (behalve nul) heeft PRECIES  n  VERSCHILLENDE   n-de machtswortels. Die liggen op de cirkel met  (0,0)  als het middelpunt en straal gelijk aan   ((|z | )^(1/n)):  die punten zijn de hoekpunten van een regelmatige  n-hoek.
	Waarom? - kan je vragen.
Het kan niet anders - worteltrekken is immers de omgekeerde bewerking van  de machtsverheffing. Als we naar de  n-de machtswortels van   z = r (cosφ + i sinφ)   zoeken, moeten we een soort "omgekeerde de Moivre - principe" toepassen:
We zoeken het getal  w  dat aan de vergelijking    (w^n) = z    voldoet.
We zien onmiddellijk dat   |w| = \(TraditionalForm
      \`\@\(|\( z | \)\)\%n\). 
	En het argument?
Een goede kandidaat is zeker  (φ/n),   want  (φ/n) n=φ.
Maar   ((φ  +  2 π)/n) n=φ+2π   heeft dezelfde   cos   en   sin   als   φ   (wegens de  2 π  - periodiciteit van die functies), dus het getal met de argument  ((φ  +  2 π)/n)   voldoet ook aan de voorwaarde.
((φ  +  4 π)/n) n=φ+4π    ook...
Op die manier krijgen we exact  n  verschillende wortels van  z!

	(z^(1/n)) = \(TraditionalForm
      \`\@\(|\( z | \)\)\%n\)(cos[((φ + 2  kπ)/n)]+i sin[((φ + 2  kπ)/n)])      voor   k=0,1,...,n-1

Op de tekening hieronder zie je een illustratie van de ligging van de zevendemachtswortels van 1.
Het argument van de eerste wortel is nul en ze liggen allemaal op de eenheidscirkel.
In geval van zevendemachtswortels van een ander complex getal  z  verschillend van nul zou de tekening heel gelijkaardig zijn. De regelmatige veelhoek zou alleen maar geroteerd zijn over de hoek  Arg[z]/7  tegen de klokwijzers in en zijn hoekpunten zouden liggen op een cirkel met straal  ((|z | )^(1/7)).

De  n-de machtswortel van 1 met argument  ((2 π)/n)  wordt dikwijls  (Subscript[w, 1])  (of  (Subscript[ε, 1]))  genoemd, de wortel met argument  ((4 π)/n)  is  (Subscript[w, 2]), ... , de wortel met argument  ((2 (n  -  1) π)/n)  is  (Subscript[w, n - 1]).
Merk op, dat  (Subscript[w, i]) = ((Subscript[w, 1])^i)  voor   i=0 ,1 ,2 ,...,n-1.  De modulus is overal 1, en de argumenten nemen in tegenwijzerszin telkens toe met  ((2 π)/n)  - we herkennen onmiddellijk de definitie van het vermenigvuldigen met  (Subscript[w, 1])! Dit is ook heel duidelijk te zien op de tekening hieronder.

Experimenteer daar gerust zelf mee! Door de rode "7" te vervangen door een ander natuurlijk getal  n  en de twee cellen hieronder te evalueren, krijg je de tekening van alle  n-de machtswortels van 1 van de door jou gekozen graad  n.
Als je wil, kan je ook het programma in de gesloten cel hieronder bekijken.

\(<< Graphics`Arrow`
\)\(Clear[eenheidswortels]
\)\(eenheidswortels[n_] := 
      Show[{{Graphics[
              Table[{Hue[0], Arrow[{0, 0}, {Cos[x], Sin[x]}]}, {x, 0, 2\ Pi, 
                  2\ Pi/n}]]}, 

          			{Graphics[
              Table[{Hue[0], PointSize[0.03], Point[{Cos[x], Sin[x]}]}, {x, 
                  0, 2\ Pi, 2\ Pi/n}]]}, 

          			{Graphics[{Hue[0.3], Circle[{0, 0}, 1]}]}, {
            Graphics[{Hue[0.7], Circle[{0, 0},  .3, {0, 2\ Pi/n}]}]}, {
            Graphics[{Hue[0.7], 
                Text[FontForm[
                    \*""\!\(\(2  π\)\/n\)"", {"Courier-Bold", 
                      18}], {0.5\ Cos[π/n], 0.5\ Sin[π/n]}]}]}, 

          			{Graphics[{Hue[0], 
                Text[FontForm[
                    \*""\!\(w\_1\)"", {"Courier-Bold", 18}], {
                    Cos[2\ π/n], Sin[2\ π/n] -  .2}]}]}, 

          			{Graphics[{Hue[0], 
                Text[FontForm[
                    \*""\!\(w\_2\)=\!\(w\_1\^2\)"", {
                      "Courier-Bold", 18}], {Cos[4\ π/n], 
                    Sin[4\ π/n] -  .2}]}]}, 

          			{Graphics[{Hue[0], 
                Text[FontForm[
                    \*""\!\(w\_3\)=\!\(w\_1\^3\)"", {
                      "Courier-Bold", 18}], {Cos[6\ π/n], 
                    Sin[6\ π/n] -  .2}]}]}, 

          			{Graphics[{Hue[0], 
                Text[FontForm[
                    "...en zo voort", {"Courier-Bold", 12}], {
                    Cos[6\ π/n], Sin[6\ π/n] -  .35}]}]}}, 
        PlotRange -> All, AspectRatio -> Automatic, Axes -> True]\)

eenheidswortels[7]

Je kan er ook zelf mee spelen - en  n-de machtswortels van willekeurige complexe getallen vinden. Je kan daarvoor het programma hieronder gebruiken. Vervang de drie rode argumenten  [ r , φ , n ]  van functie "wortels" door de zelf gekozen getallen. Wat is de betekenis van die argumenten?:
* het eerste getal is modulus van het complex getal (waarvan je de wortels wil vinden)
* het tweede getal is het argument van dit complex getal (in radialen. Niet vergeten:  π/2  is ongeveer  1.5708)
* het derde getal is de macht van de wortels.
Het programma toont het complex getal  z=(r,φ)  dat je gekozen hebt (in het roos) en alle  n-de machtswortels van dit getal (in het rood) :  de wortels vormen de hoekpunten van een regelmatige  n-hoek met middelpunt  (0,0)  en liggen op de cirkel met straal  (r^(1/n)).  De groene cirkel (eenheidscirkel) werd getekend om de link met het vorige voorbeeld te schetsen. Je mag ook gerust  r=1  kiezen en kijken wat er dan gebeurt!
De hoek tussen de eerste rode pijl in het eerste kwadrant en de positieve richting van de  x-as is gelijk aan  (φ/n).  Dat is die rotatiehoek waarover er sprake was bij het vorige voorbeeld.
(door de cel open te klikken kan je de programmatie bekijken).

\(<< Graphics`Arrow`

Clear[wortels]; 


    wortels[r_, φ_, 
        n_] := {{
          Graphics[
            Table[{Hue[0], 
                Arrow[{0, 0}, {r^\((1/n)\)\ Cos[x], r^\((1/n)\)\ Sin[x]}]}, {
                x, φ/n, 2\ Pi, 2\ Pi/n}]]}, 

        		{Graphics[
            Table[{Hue[0], PointSize[0.03], 
                Point[{r^\((1/n)\)\ Cos[x], r^\((1/n)\)\ Sin[x]}]}, {x, 
                φ/n, 2\ Pi, 2\ Pi/n}]]}, 

        		{Graphics[{Hue[0.3], Circle[{0, 0}, 1]}]}, 

        		{Graphics[{Hue[0.9], Circle[{0, 0}, r]}]}, 

        		{Graphics[{
              Hue[0.9], {PointSize[0.03], 
                Point[{r\ Cos[φ], r\ Sin[φ]}]}}]}, 

        		{Graphics[{Hue[0.9], 
              Text[FontForm["z", {"Courier-Bold", 18}], {
                  r\ Cos[φ], r\ Sin[φ] -  .3}]}]}, 

        		{Graphics[{Hue[0], Circle[{0, 0}, r^\((1/n)\)]}]}, 

        		{Graphics[{Hue[0.9], 
              Arrow[{0, 0}, {r\ Cos[φ], r\ Sin[φ]}]}]}, 

        		{Graphics[{Hue[0.7], 
              Circle[{0, 0},  .3, {φ/n, 
                  \((φ + 2\ Pi)\)/n}]}]}, {
          Graphics[{Hue[0.7], 
              Text[FontForm[
                  \*""\!\(\(2  π\)\/n\)"", {"Courier-Bold", 
                    14}], {0.5\ Cos[\((φ + π)\)/n], 
                  0.5\ Sin[\((φ + π)\)/n]}]}]}, 

        		{Graphics[{Hue[ .6], 
              Arrow[{2, 1}, {0.7\ Cos[φ/n], 
                  0.7\ Sin[φ/n]}], 
\ \ \ \ \ 
              Text[FontForm[
                  \*""\!\(φ\/n\)"", {"Courier-Bold", 
                    18}], {2, 1}]}]}, 

        \ 	{Graphics[{Hue[ .6], Circle[{0, 0},  .7, {0, φ/n}]}]}}
        \)

Show[wortels[2,0.8,5],PlotRange -> All,AspectRatio -> Automatic,Axes -> True]

Als we de som van alle wortels van 1 van een bepaalde macht willen uitrekenen, constateren we rap (op basis van de informatie over het verband tussen de  (Subscript[w, 1])  en de rest van de wortels van 1 en gebruikmakende van de formule voor de som van de geometrische reeks), dat die NUL is voor  n>1:

1 + ((Subscript[w, 1])^2)  +   \(TraditionalForm
      \`\(\(\(\(w\_1\^3\  + \)\  ... \)\  + \ w\_1\^\(n - 1\)\  = \)\ \)\)((((Subscript[w, 1])^n)  -  1)/((Subscript[w, 1])  -  1)) = ((1  -  1)/((Subscript[w, 1])  -  1)) = 0	-    ((Subscript[w, 1])^n)  is immers gelijk aan 1.

Zou dat geen meetkundige interpretatie hebben?
Hieronder zie je het grafisch bewijs van hetzelfde feit (voor  n=5,  want voor grotere  n  is de tekening minder overzichtelijk).
Een opmerking: de hele redenering steunt op de eigenschappen van regelmatige veelhoeken.
We moeten bewijzen dat de som van de wortels van 1 (de "dikke" vectoren op de tekening) nul is.
We weten, dat de som van de vectoren die een regelmatige veelhoek vormen nul is (de som van de vectoren die "toekomen" in de plaats van hun "vertrek" - de totale verplaatsing is nul). We verschuiven die vectoren tot  (0,0)  en merken op, dat ze tesamen een sterreachtig "skelet" vormen dat na een rotatie over een hoek (de "zwarte") met het "skelet" van de  n-de machtswortels van 1 samenvalt. De vectorlengtes in beide "skeletten" zijn verschillend (gelijk enkel in het geval van  n = 6), maar alle vectoren van elke groep apart zijn onder mekaar even lang. De som van alle vectoren van een van die groepen is nul, dus hetzelfde geldt ook voor de tweede groep. Einde bewijs.
Alle hoeken op de tekening (behalve de "zwarte" hoeken) zijn onderling gelijk. Ze hebben verschillende kleuren om je de aparte parallelle verplaatsingen te helpen volgen.
Een raad: kijk apart naar de elementen van de tekening die onderling dezelfde kleur hebben.

Een opmerking: een andere meetkundige interpretatie van hetzelfde feit steunt op dat het zwaartepunt van de veelhoek op de tekening zich in  (0,0)  bevindt (alle n symmetrieassen van de veelhoek snijden mekaar in  (0,0)).  De formule voor coördinaten van het zwaartepunt van een puntenverzameling (alle punten worden verondersteld hetzelfde "gewicht" te hebben) is "de som van de coördinaten van alle punten van die verzameling gedeeld door het aantal punten". In dit geval betekent dat precies dat de som van alle  n-de machtswortels van 1 nul is!

<< Graphics`Arrow`
Clear[n, veelhoek, stralen, straaltjes, bogen1, bogen2, bogen3];

n=5;

veelhoek := 
        Table[{Hue[(x + 6)/10], 
            Arrow[{Cos[x], Sin[x]}, {Cos[x + 2 Pi/n], Sin[x + 2 Pi/n]}]}, {
            x, 0, 2 Pi, 2 Pi/n}]stralen := 
      Table[{Thickness[0.013], Hue[(x + 6)/10], 
          Arrow[{0, 0}, {Cos[x], Sin[x]}]}, {x, 0, 2 Pi, 2 Pi/n}]straaltjes := 
      Table[{Hue[(x + 6)/10], 
          Arrow[{0, 0}, {Cos[x + 2 Pi/n] - Cos[x], 
              Sin[x + 2 Pi/n] - Sin[x]}]}, {x, 0, 2 Pi, 2 Pi/n}]bogen1 := 
      Table[{Thickness[0.01], Hue[(x - 2 Pi/n + 6)/10], 
          Circle[{0, 0}, 0.3, {x, x + Pi/2 - Pi/n}]}, {x, 2 Pi/n, 
          2 Pi + 2 Pi/n, 2 Pi/n}]bogen2 := 
      Table[{Thickness[0.01], Hue[(x - 2 Pi/n + 6)/10], 
          Circle[{Cos[x], Sin[x]}, 0.3, {x + Pi, x + 3 Pi/2 - Pi/n}]}, {x, 
          2 Pi/n, 2 Pi + 2 Pi/n, 2 Pi/n}]bogen3 := 
        Table[{Thickness[0.01], 
            Circle[{0, 0}, 0.4, {x + Pi/2 - Pi/n, x + 2 Pi/n}]}, {x, 0, 
            2 Pi, 2 Pi/n}]
Show[Graphics[{veelhoek, stralen, straaltjes, bogen1, bogen2, bogen3, 
          Circle[{0, 0}, 1]}], PlotRange -> All, AspectRatio -> Automatic, 
      Axes -> True]

Kijk tenslotte eens wat de functie   f[z]=2(z^2)  doet met de zevendemachtswortels van 1! (7 kleuren op de eenheidscirkel. De beelden hebben identieke kleur en liggen op cirkel met straal 2).  Zie je dat ze geen van de wortels (behalve 1 zelf) op een getal met hetzelfde argument afbeeldt? (zie kleuren - de drie pijlen werden getekend voor de overzichtelijkheid). Dat betekent veel meer dan men zou kunnen denken - heeft verband met de getallentheorie (begrippen zoals relatief priem, grootste gemene deler), groepentheorie (generatoren van groepen, cyclische groepen)... - dat gaat zeker ook een onderwerp zijn van andere notebooks!

\(<< Graphics`ArgColors`
<< Graphics`Arrow`


      Clear[kleuren, punten, coords, complex]; 


    coords[z_] := {Re[z], Im[z]}
\)\(complex[{a_, b_}] := a + b\ I
\)\(kleuren[set_List] := Table[ArgColor[set[\([j]\)]], {j, Length[set]}]; 

    
punten[set_List] := 
      Table[{PointSize[0.02], Point[coords[set[\([j]\)]]]}, {j, 
          Length[set]}]; 

Clear[n]; 

n = 7; 
    set1 = E\^\(\(I\ Range[n]\ 2\ π\)\/n\); 


    Clear[f]; 

f[z_] := 2  z^2
\)\(Show[{Graphics[Transpose[{kleuren[set1], punten[set1]}]], 
        Graphics[Transpose[{kleuren[set1], punten[f[set1]]}]], 
			
        Graphics[{Thickness[0.01], Arrow[{1, 0}, {2, 0}]}], 
	
        Graphics[
          Arrow[{Cos[2\ Pi/n], Sin[2\ Pi/n]}, {2\ Cos[4\ Pi/n], 
              2\ Sin[4\ Pi/n]}]], 
	
        Graphics[
          Arrow[{Cos[4\ Pi/n], Sin[4\ Pi/n]}, {2\ Cos[8\ Pi/n], 
              2\ Sin[8\ Pi/n]}]]}, 
	
      PlotRange -> {{\(-2.2\), 2.2}, {\(-2.2\), 2.2}}, 
      AspectRatio -> Automatic, Axes -> True]\)

Er is nog veel te vertellen over de wortels van complexe getallen - als je dat onderwerp leuk vond, kan je naar uitbreidingen in de nieuwe notebooks zoeken!

Kennismaking met de werking van enkele complexe functies. Voorbeeld- en Oefengedeelte.

Inleiding

Nu stellen we voor dat jijzelf probeert te experimenteren met de complexe functies. Met functies die complexe getallen op complexe getallen afbeelden. Je kan zien, hoe ze het complexe vlak veranderen.
Een raad: voordat je iets aan de notebook verandert, sla je de oorspronkelijke versie onder een andere naam op, zodat dat je altijd de originele versie kan consulteren.

1. Teken een willekeurige puntenverzameling in het lege coördinatenstelsel hieronder.

Hoe? - klik op het coördinatenstelsel. Nadat het geactiveerd is, teken je jouw puntenverzameling met de muis (tegelijkertijd Ctrl ingedrukt houden). Copieer de verzameling door onmiddellijk Ctrl+c ("Copy") in te drukken en plak ze na de komma in " setStudent = Map [ complex , □] ;"  met Ctrl+v ("Paste").

2. Nu kan je checken hoe verschillende functies op je puntenverzameling werken. Om dat te bekijken, kan je de functies van de voorbeelden hieronder gebruiken (vervang de rode plaatsen in de programmatie door setStudent en evalueer cellen). Als je de verzameling van de argumenten naast de verzameling van de beelden wil zien, kies voor "GraphicsArray".

Opgave:

Welke meetkundige transformaties corresponderen met:

z -> a z
z -> z + b
z -> a z + b
z -> (z^2)
z -> (1/z)
z -> Conjugate[z]
z -> (1/Conjugate)[z]

waar  a  en  b  vaste complexe getallen zijn. Gebruik de grafische methode die hierboven beschreven is om dit vraagstuk op te lossen. Antwoorden kan je verder in de notebook vinden - er worden verschillende voorbeelden besproken.

\(<< Graphics`ArgColors`
\)\(Clear[kleuren, punten, coords, complex]
\)\(coords[z_] := {Re[z], Im[z]}
\)\(complex[{a_, b_}] := a + b\ I
\)\(kleuren[set_List] := Table[ArgColor[set[\([j]\)]], {j, Length[set]}]; 

    
punten[set_List] := 
      Table[{PointSize[0.02], Point[coords[set[\([j]\)]]]}, {j, 
          Length[set]}]; 


    puntenKlein[set_List] := 
      Table[{PointSize[0.01], Point[coords[set[\([j]\)]]]}, {j, 
          Length[set]}]; \)

\(Plot[0, {x, \(-4\), 4}, AspectRatio -> Automatic, 
      Axes -> True, PlotRange -> {{\(-5\), 5}, {\(-5\), 5}}]
\)\(\(setStudent = Map[complex, ]; \)
\)

Hieronder, in de gesloten cel (die je niet hoeft open te klikken - het is geen interessante ervaring...), kan je de coördinaten van alle punten van de verzameling set1 vinden. Set1 is een bloem (OK, dat was ten minste de bedoeling...) met vier blaadjes - elk in een ander kwadrant. Alle punten van de verzameling zijn gekleurd - dat vergemakkelijkt het onderzoeken van het gedrag van de functies die we straks gaan analyseren - de functiewaarden gaan namelijk precies dezelfde kleuren krijgen als hun argumenten. Als je later je eigen puntenverzameling tekent, om nog beter de werking van de functies te kunnen begrijpen, gaan al de punten van die verzameling ook gekleurd zijn. "Mathematica" rekent hun coördinaten uit.

set1=Map[complex,\({{\(-1.84402\)*10^\(-007\), \ 1.42447}, 
                \ {0.0863316, \ 1.48203}, \ 
{0.287772, \ 1.65469}, 
                \ {0.517991, \ 1.91369}, \ 
{1.03598, \ 1.97124}, 
                \ {1.29498, \ 1.94247}, \ 
{1.55397, \ 1.53958}, 
                \ {1.58275, \ 1.28059}, \ 
{1.58275, \ 1.02159}, 
                \ {1.58275, \ 0.992816}, \ 
{1.55397, \ 0.992816}, 
                \ {1.55397, \ 0.935261}, \ 
{1.52519, \ 0.589934}, 
                \ {1.52519, \ 0.561157}, \ 
{1.52519, \ 0.503602}, 
                \ {1.46764, \ 0.330939}, \ 
{1.46764, \ 0.302161}, 
                \ {1.29498, \ 0.0719432}, \ 
{1.41009, \ \(-0.10072\)}, 
                \ {1.66908, \ \(-0.302161\)}, \ 
{2.07196, \ \(-0.791375\)}, 
                \ {2.10074, \ \(-1.1367\)}, \ 
{2.04319, \ \(-1.42447\)}, 
                \ {1.98563, \ \(-1.42447\)}, \ 
{1.98563, \ \(-1.48203\)}, 
                \ {1.72664, \ \(-1.74102\)}, \ 
{1.58275, \ \(-1.91369\)}, 
                \ {1.0072, \ \(-1.74102\)}, \ 
{0.776986, \ \(-1.65469\)}, 
                \ {0.345327, \ \(-1.53958\)}, \ 
                
{0.0863316, \ \(-1.28059\)}, 
                \ {\(-0.086332\), \ \(-1.3957\)}, \ 
                
{\(-0.172664\), \ \(-1.56836\)}, 
                \ {\(-0.431659\), \ \(-1.68347\)}, \ 
                
{\(-0.719432\), \ \(-1.68347\)}, 
                \ {\(-0.94965\), \ \(-1.56836\)}, \ 
                
{\(-1.38131\), \ \(-1.22303\)}, 
                \ {\(-1.35253\), \ \(-1.25181\)}, \ 
                
{\(-1.41009\), \ \(-0.964038\)}, 
                \ {\(-1.41009\), \ \(-0.618711\)}, \ 
                
{\(-1.35253\), \ \(-0.359716\)}, 
                \ {\(-1.12231\), \ \(-0.10072\)}, \ 
                
{\(-1.12231\), \ 0.187052}, \ {\(-1.49642\), \ 0.330939}, \ 
                
{\(-1.6403\), \ 0.532379}, \ {\(-1.6403\), \ 0.964038}, \ 
                
{\(-1.55397\), \ 1.48203}, \ {\(-1.2662\), \ 1.65469}, \ 
                
{\(-0.920873\), \ 1.74102}, \ {\(-0.661877\), \ 1.74102}, \ 
                
{\(-0.402882\), \ 1.59714}, \ {\(-0.172664\), \ 1.45325}}
                \)];

De eerste reeks van voorbeelden illustreren de werking van de functies van het type z -> a z + b.

In het eerste voorbeeld,   f[z]=z(0.3+1.4 i )-2.3-2.7i ,   worden alle punten van onze set1 eerst geroteerd om  (0,0)  over de hoek  Arg[(0.3,1.4)]  - je kan die hoek zelf uitrekenen volgens de formule die je kan vinden door het klikken op die tekst - en de moduli worden vergroot door het vermenigvuldigen met  Abs[(0.3,1.4)],  die je ook kan uitrekenen volgens de formule (te vinden door de blauwe letters aan te klikken). Nadien wordt het resultaat van deze twee transformaties (rotatie en homothetie) verschoven naar het derde kwadrant: een translatie over de vector  [-2.3,-2.7].
Analyseer volgende twee voorbeelden op gelijkaardige manier.
(door de cel open te klikken kan je de programmatie bekijken).

Clear[f]
f[z_] := 
        z (0.3 + 1.4 I) - 2.3 - 2.7 I
Show[{Graphics[Transpose[{kleuren[set1],punten[set1]}]],Graphics[Transpose[{kleuren[set1],punten[f[set1]]}]]},PlotRange -> {{-5, 5}, {-5, 5}},AspectRatio -> Automatic,Axes -> True]

Het tweede voorbeeld van de eerste reeks is   f[z]=z (0.3+1.4 i )+1.9+2.1 i

Clear[f]
f[z_] := 
        z (0.3 + 1.4 I) + 1.9 + 2.1 I
Show[{Graphics[Transpose[{kleuren[set1],punten[set1]}]],Graphics[Transpose[{kleuren[set1],punten[f[set1]]}]]},PlotRange -> {{-5, 5}, {-5, 5}},AspectRatio -> Automatic,Axes -> True]

En het laatste voorbeeld...   f[z]=i z+2+2 i

Clear[f]
f[z_] := I z + 2 + 2 I
Show[{Graphics[Transpose[{kleuren[set1],punten[set1]}]],Graphics[Transpose[{kleuren[set1],punten[f[set1]]}]]},PlotRange -> {{-5, 5}, {-5, 5}},AspectRatio -> Automatic,Axes -> True]

De tweede reeks voorbeelden illustreert de werking van de functies van het type z -> (z^n).

Het eerste voorbeeld:  f[z]=(z^2).
Je weet reeds wat er gebeurt bij het verheffen tot de tweede macht -  Arg[f[z]]=2 Arg[z]   en   Abs[f[z]]=(((Abs[z]))^2)  - het argument van een complex getal wordt dus verdubbeld en de straallengte vermenigvuldigd met zichzelf.
Bekijk eens aandachtig het gedrag van de argumenten (set1 - het bloemetje dus) onder invloed van deze functie - denk erraan dat elke waarde van de functie dezelfde kleur krijgt als het argument waarin die functiewaarde berekend werd. Welke punten worden waar afgebeeld?
- de punten van het eerste kwadrant belanden in het eerste en het tweede kwadrant
	(kwadrantgrenzen:  2 x 0 = 0 ,  2 x π/2 = π)
- de punten van het tweede kwadrant belanden in het derde en het vierde kwadrant
	(kwadrantgrenzen:  2 x π/2 = π ,  2 x π = 2π)
- de punten van het derde kwadrant belanden in het eerste en het tweede kwadrant
	(kwadrantgrenzen:  2 x π = 2π  - op de cirkel equivalent met 0 ,  2 x 3π/2 = 3π  - op de cirkel equivalent met  π)
- de punten van het vierde kwadrant belanden in het derde en het vierde kwadrant
	(kwadrantgrenzen:  2 x 3π/2 = 3π  - op de cirkel equivalent met π ,  2 x 2π = 4π  - equivalent met  2π).
Dat wil zeggen dat de functie het hele vlak twee keer doorloopt. Elk punt van het vlak is een functiewaarde voor 2 verschillende argumenten, zijn vierkantswortels.
Zo is het punt  z=r(cosφ + i sinφ)  functiewaarde (kwadraat dus) van getallen:

(Subscript[z, 1]) = (Sqrt[r])(cos((φ/2)) + i sin((φ/2)))     en     (Subscript[z, 2]) = (Sqrt[r])(cos((φ/2)+π) + i sin((φ/2)+π)).

Elk getal verschillend van nul heeft twee verschillende vierkantwortels! - zelfs de negatieve getallen. Let op de "groene" en "donkerblauwe" argumenten die op de imaginaire as liggen. De functiewaarden voor die argumenten zijn negatieve reële getallen!
In dit geval was het wel handiger (overzichtelijker) om de argumenten en de waarden van de functie op twee aparte coördinatenstelsels voor te stellen (argumenten links, waarden rechts - ook hier hebben de argumenten en de waarden voor die argumenten dezelfde kleur).

Clear[f]
f[z_] := z^2
Show[GraphicsArray[{Graphics[Transpose[{kleuren[set1],punten[set1]}],AspectRatio -> Automatic,PlotRange -> {{-5, 5}, {-5, 5}},Axes -> True],Graphics[Transpose[{kleuren[set1],punten[f[set1]]}],AspectRatio -> Automatic,PlotRange -> {{-5, 5}, {-5, 5}},Axes -> True]}]]

Verzameling set2 - een krulletje. In de cel hieronder bevinden zich de coördinaten van haar punten. Ook dat is niet erg interessant - je hoeft die cel niet open te klikken.

set2=Map[complex,\({{0.470395, \ 0.60977}, \ {0.470395, \ 0.644613}, \ 
                
{0.435552, \ 0.714301}, \ {0.365865, \ 0.749144}, \ 
                
{0.331021, \ 0.749144}, \ {0.261334, \ 0.818831}, \ 
                
{0.22649, \ 0.818831}, \ {0.156803, \ 0.853675}, \ 
                
{0.121959, \ 0.853675}, \ {0.0522721, \ 0.923362}, \ 
                
{0.0174285, \ 0.923362}, \ {\(-0.0522587\), \ 0.923362}, \ 
                
{\(-0.0871023\), \ 0.958206}, 
                \ {\(-0.156789\), \ 0.958206}, \ 
                
{\(-0.191633\), \ 0.958206}, \ {\(-0.26132\), \ 0.958206}, 
                \ 
{\(-0.296164\), \ 0.958206}, 
                \ {\(-0.365851\), \ 0.958206}, \ 
                
{\(-0.400695\), \ 0.958206}, \ {\(-0.400695\), \ 0.923362}, 
                \ 
{\(-0.470382\), \ 0.923362}, 
                \ {\(-0.505226\), \ 0.923362}, \ 
                
{\(-0.505226\), \ 0.888519}, \ {\(-0.574913\), \ 0.888519}, 
                \ 
{\(-0.574913\), \ 0.818831}, 
                \ {\(-0.609756\), \ 0.818831}, \ 
                
{\(-0.609756\), \ 0.783988}, \ {\(-0.609756\), \ 0.714301}, 
                \ 
{\(-0.679444\), \ 0.714301}, 
                \ {\(-0.679444\), \ 0.679457}, \ 
                
{\(-0.714287\), \ 0.679457}, \ {\(-0.714287\), \ 0.60977}, 
                \ 
{\(-0.714287\), \ 0.574926}, 
                \ {\(-0.783974\), \ 0.505239}, \ 
                
{\(-0.818818\), \ 0.505239}, \ {\(-0.818818\), \ 0.470395}, 
                \ 
{\(-0.818818\), \ 0.400708}, 
                \ {\(-0.818818\), \ 0.365865}, \ 
                
{\(-0.888505\), \ 0.365865}, \ {\(-0.888505\), \ 0.296177}, 
                \ 
{\(-0.888505\), \ 0.261334}, 
                \ {\(-0.888505\), \ 0.191647}, \ 
                
{\(-0.888505\), \ 0.156803}, 
                \ {\(-0.888505\), \ 0.0871157}, \ 
                
{\(-0.888505\), \ 0.0522721}, 
                \ {\(-0.888505\), \ \(-0.0174151\)}, \ 
                
{\(-0.888505\), \ \(-0.0522587\)}, 
                \ {\(-0.888505\), \ \(-0.121946\)}, \ 
                
{\(-0.888505\), \ \(-0.156789\)}, 
                \ {\(-0.888505\), \ \(-0.226477\)}, \ 
                
{\(-0.888505\), \ \(-0.26132\)}, 
                \ {\(-0.888505\), \ \(-0.331007\)}, \ 
                
{\(-0.853662\), \ \(-0.365851\)}, 
                \ {\(-0.853662\), \ \(-0.435538\)}, \ 
                
{\(-0.783974\), \ \(-0.435538\)}, 
                \ {\(-0.783974\), \ \(-0.470382\)}, \ 
                
{\(-0.749131\), \ \(-0.540069\)}, 
                \ {\(-0.749131\), \ \(-0.574913\)}, \ 
                
{\(-0.679444\), \ \(-0.574913\)}, 
                \ {\(-0.679444\), \ \(-0.6446\)}, \ 
                
{\(-0.6446\), \ \(-0.6446\)}, 
                \ {\(-0.6446\), \ \(-0.679444\)}, \ 
                
{\(-0.574913\), \ \(-0.679444\)}, 
                \ {\(-0.540069\), \ \(-0.749131\)}, \ 
                
{\(-0.470382\), \ \(-0.783974\)}, 
                \ {\(-0.435538\), \ \(-0.783974\)}, \ 
                
{\(-0.365851\), \ \(-0.783974\)}, 
                \ {\(-0.331007\), \ \(-0.853662\)}, \ 
                
{\(-0.26132\), \ \(-0.853662\)}, 
                \ {\(-0.226477\), \ \(-0.888505\)}, \ 
                
{\(-0.156789\), \ \(-0.888505\)}, 
                \ {\(-0.121946\), \ \(-0.888505\)}, \ 
                
{\(-0.0522587\), \ \(-0.888505\)}, 
                \ {\(-0.0174151\), \ \(-0.958192\)}, \ 
                
{0.0522721, \ \(-0.958192\)}, 
                \ {0.0871157, \ \(-0.958192\)}, \ 
                
{0.156803, \ \(-0.958192\)}, \ {0.191647, \ \(-0.958192\)}, 
                \ 
{0.261334, \ \(-0.958192\)}, 
                \ {0.296177, \ \(-0.958192\)}, \ 
                
{0.365865, \ \(-0.958192\)}, \ {0.400708, \ \(-0.958192\)}, 
                \ 
{0.470395, \ \(-0.958192\)}, 
                \ {0.505239, \ \(-0.958192\)}, \ 
                
{0.574926, \ \(-0.958192\)}, \ {0.60977, \ \(-0.958192\)}, 
                \ 
{0.679457, \ \(-0.923349\)}, 
                \ {0.714301, \ \(-0.923349\)}, \ 
                
{0.783988, \ \(-0.923349\)}, \ {0.783988, \ \(-0.853662\)}, 
                \ 
{0.818831, \ \(-0.853662\)}, 
                \ {0.818831, \ \(-0.818818\)}, \ 
                
{0.888519, \ \(-0.818818\)}, \ {0.888519, \ \(-0.749131\)}, 
                \ 
{0.923362, \ \(-0.749131\)}, 
                \ {0.923362, \ \(-0.714287\)}, \ 
                
{0.993049, \ \(-0.714287\)}, \ {0.993049, \ \(-0.6446\)}, \ 
                
{0.993049, \ \(-0.609756\)}, \ {0.993049, \ \(-0.540069\)}, 
                \ 
{1.02789, \ \(-0.540069\)}, \ {1.02789, \ \(-0.505226\)}, 
                \ 
{1.02789, \ \(-0.435538\)}, \ {1.02789, \ \(-0.400695\)}, 
                \ 
{1.09758, \ \(-0.400695\)}, \ {1.09758, \ \(-0.331007\)}, 
                \ 
{1.09758, \ \(-0.296164\)}, \ {1.13242, \ \(-0.296164\)}, 
                \ 
{1.13242, \ \(-0.226477\)}, \ {1.13242, \ \(-0.191633\)}, 
                \ 
{1.13242, \ \(-0.121946\)}, 
                \ {1.13242, \ \(-0.0871023\)}, \ 
                
{1.13242, \ \(-0.0174151\)}, \ {1.13242, \ 0.0174285}, \ 
                
{1.20211, \ 0.0871157}, \ {1.20211, \ 0.121959}, \ 
                
{1.20211, \ 0.191647}, \ {1.20211, \ 0.22649}, \ 
                
{1.20211, \ 0.296177}, \ {1.20211, \ 0.331021}, \ 
                
{1.20211, \ 0.400708}, \ {1.20211, \ 0.435552}, \ 
                
{1.16727, \ 0.435552}, \ {1.16727, \ 0.505239}, \ 
                
{1.16727, \ 0.540083}, \ {1.09758, \ 0.540083}, \ 
                
{1.09758, \ 0.60977}, \ {1.09758, \ 0.644613}, \ 
                
{1.09758, \ 0.714301}, \ {1.09758, \ 0.749144}, \ 
                
{1.06274, \ 0.749144}, \ {1.06274, \ 0.818831}, \ 
                
{0.993049, \ 0.818831}, \ {0.993049, \ 0.853675}, \ 
                
{0.958206, \ 0.923362}, \ {0.958206, \ 0.958206}, \ 
                
{0.888519, \ 0.958206}, \ {0.888519, \ 1.02789}, \ 
                
{0.853675, \ 1.06274}, \ {0.783988, \ 1.13242}, \ 
                
{0.783988, \ 1.16727}, \ {0.749144, \ 1.16727}, \ 
                
{0.679457, \ 1.23695}, \ {0.644613, \ 1.23695}, \ 
                
{0.644613, \ 1.2718}, \ {0.574926, \ 1.34149}, \ 
                
{0.540083, \ 1.37633}, \ {0.470395, \ 1.44602}, \ 
                
{0.435552, \ 1.48086}, \ {0.365865, \ 1.55055}, \ 
                
{0.331021, \ 1.58539}, \ {0.261334, \ 1.58539}, \ 
                
{0.22649, \ 1.65508}, \ {0.156803, \ 1.65508}, \ 
                
{0.121959, \ 1.65508}, \ {0.0522721, \ 1.68992}, \ 
                
{0.0174285, \ 1.68992}, \ {\(-0.0522587\), \ 1.68992}, \ 
                
{\(-0.0871023\), \ 1.75961}, \ {\(-0.156789\), \ 1.75961}, 
                \ 
{\(-0.191633\), \ 1.75961}, \ {\(-0.26132\), \ 1.79445}, 
                \ 
{\(-0.296164\), \ 1.79445}, \ {\(-0.365851\), \ 1.79445}, 
                \ 
{\(-0.400695\), \ 1.79445}, \ {\(-0.470382\), \ 1.86414}, 
                \ 
{\(-0.505226\), \ 1.86414}, \ {\(-0.574913\), \ 1.86414}, 
                \ 
{\(-0.574913\), \ 1.89898}, \ {\(-0.609756\), \ 1.89898}, 
                \ 
{\(-0.609756\), \ 1.96867}, \ {\(-0.679444\), \ 1.96867}, 
                \ 
{\(-0.679444\), \ 2.00351}, \ {\(-0.679444\), \ 2.0732}, 
                \ 
{\(-0.714287\), \ 2.10804}, \ {\(-0.714287\), \ 2.17773}, 
                \ 
{\(-0.714287\), \ 2.21258}, \ {\(-0.714287\), \ 2.28226}, 
                \ 
{\(-0.714287\), \ 2.31711}}\)];

Het tweede voorbeeld van de reeks:   f[z]=(z^3)+2+2 i   - verheffing tot de derde macht. Volgens onze verwachtingen, werd het krulletje 3 keer rond de oorsprong van het assenkruis gedraaid en naar het eerste kwadrant verschoven over de vector  [2,2].

Clear[f]
f[z_] := z^3 + 2 + 2 I
Show[GraphicsArray[{Graphics[Transpose[{kleuren[set2],punten[set2]}],AspectRatio -> Automatic,PlotRange -> {{-5, 5}, {-5, 5}},Axes -> True],Graphics[Transpose[{kleuren[set2],punten[f[set2]]}],AspectRatio -> Automatic,PlotRange -> {{-5, 5}, {-5, 5}},Axes -> True]}]]

Derde reeks voorbeelden - betreffende een symmetrie   (z -> Conjugate[z]).

Conjugate[a+b i ]=a-b i    - dat is de definitie van de functie "Conjugate" of "toegevoegde". Je ziet dus ook onmiddellijk, dat het argument en de functiewaarde symmetrisch liggen tegenover de  x-as. Beeld en argument hebben dezelfde  x-coördinaat - dat wil zeggen dat beide punten op dezelfde verticale rechte liggen. Ze liggen wel langs verschillende kanten van de  x-as ( b  en  -b!) en op dezelfde afstand  (|b|)  van de  x-as. Ze voldoen dus aan de definitie van twee symmetrische punten ten opzichte van de as! Met behulp van de complexe getallen kunnen we dus niet alleen rotaties en translaties beschrijven, maar ook symmetrieën!
Kijk naar de tekening of je dat ook kan zien. Je kan ook het gedrag van je eigen puntenverzameling onder de werking van de functie  f  onderzoeken door "set2" door "setStudent" te vervangen in het programma in de cel hieronder.

Clear[f]
f[z_] := Conjugate[z]
Show[GraphicsArray[{Graphics[{Transpose[{kleuren[set2],punten[set2]}]},AspectRatio -> Automatic,PlotRange -> {{-5, 5}, {-5, 5}},Axes -> True],Graphics[{Transpose[{kleuren[set2],punten[f[set2]]}]},AspectRatio -> Automatic,PlotRange -> {{-5, 5}, {-5, 5}},Axes -> True]}]]

Tweede voorbeeld - het beeld van de bloem set1 onder  z->Conjugate[z]:  de bloem wordt afgebeeld op haar spiegelbeeld ten opzichte van de  x-as. Zie argumenten op de figuur links en de functiewaarden rechts

Clear[f]
f[z_] := Conjugate[z]
Show[GraphicsArray[{Graphics[{Transpose[{kleuren[set1],punten[set1]}]},AspectRatio -> Automatic,PlotRange -> {{-5, 5}, {-5, 5}},Axes -> True],Graphics[{Transpose[{kleuren[set1],punten[f[set1]]}]},AspectRatio -> Automatic,PlotRange -> {{-5, 5}, {-5, 5}},Axes -> True]}]]

Vierde reeks voorbeelden met  z -> (1/z)

Die operatie laat je toe om het multiplicatief invers van een complex getal te vinden - een getal dat door het te vermenigvuldigen met het gegeven getal   1=(1,0)  geeft. Voor elke   z=r (cosφ+ i sinφ)   zoeken we dus een getal, dat na het vermeniguldigen met  z  het resultaat   1=1(cos0+ i sin0)   geeft. Het is onmiddellijk duidelijk dat zijn modulus gelijk moet zijn aan  (1/r)  (daarmee moet men immers  r  vermenigvuldigen om  1  te krijgen!) en zijn argument moet   -φ   zijn (opgeteld bij   φ   geeft nul!).
z=r (cosφ+ i sinφ)   wordt dus door de afbeelding gestuurd op  (1/r)(cos(-φ) + i sin(-φ)) .
Op de tekening zie je de eenheidscirkel. Merk op dat alle punten van de bloemverzameling (die BUITEN die cirkel liggen - hun modulus is dus groter dan 1) naar binnen overgebracht zijn. Dat was ook te verwachten, want als  r  groter is dan 1, is  1/r  kleiner dan 1. Hoe zijn de argumenten van de punten van de bloem veranderd? - naar minus-argumenten. Dat wil zeggen dat alle punten die boven de  x-as lagen, onder de  x-as belanden en omgekeerd - alle punten onder de  x-as worden door de functie naar boven gestuurd. Bekijk dat op de tekening! - volg de kleuren van de punten en van hun beelden door de functie.

Clear[f]
f[z_] := 1/z
Show[GraphicsArray[{Graphics[{Transpose[{kleuren[set1],punten[set1]}],Circle[{0, 0}, 1]},AspectRatio -> Automatic,PlotRange -> {{-5, 5}, {-5, 5}},Axes -> True],Graphics[{Transpose[{kleuren[set1],punten[f[set1]]}],Circle[{0, 0}, 1]},AspectRatio -> Automatic,PlotRange -> {{-5, 5}, {-5, 5}},Axes -> True]}]]

Vijfde reeks voorbeelden - inversie  z -> (1/Conjugate)[z]

Deze functie is de samenstelling van de twee functies die hierboven beschreven zijn. Om het beeld van het punt z te vinden, moeten we namelijk twee operaties na mekaar uitvoeren :
z -> Conjugate[z]-> (1/Conjugate)[z].  Als je de tekeningen van de veranderingen van de verzameling set1 (bloem) onder de drie functies (Conjugate[z], 1/z, 1/Conjugate[z]) aandachtig bekijkt, kan je dat zeer goed zien.
De operatie die we nu uitgevoerd hebben, heet in de meetkunde "inversie" - dat is een van de leukste meetkundige operaties. Soms wordt zij ook "symmetrie ten opzichte van de eenheidscirkel" genoemd. Waarom? - alle punten die buiten de cirkel liggen, worden onder invloed van die operatie naar binnen gestuurd, en alles wat binnen is, gaat naar buiten. Dat heeft natuurlijk ook zijn formele beschrijving, met exacte formules. Het beeld van een complex getal  z  is een complex getal met hetzelfde argument ( dat wil zeggen:  (0,0),  z  en het beeld van  z  liggen op dezelfde halfrechte met het beginpunt in  (0,0) ) en met de modulus gelijk aan  1/Abs[z]. "En wat is dan het beeld van nul?" - kan je vragen. Dat is "het punt in de oneindigheid", het punt, dat tot alle rechten behoort - de horizon dus. Leuk, he? En het beeld van de oneindigheid is nul - nog leuker eigenlijk :-)

Clear[f]
f[z_] := 1/Conjugate[z]
set4[x0_, y0_, r_] := 
        Map[complex, 
          Table[{x0 + r Cos[φ], y0 + r Sin[φ]}, {
              φ, 0, 2 Pi,  .01}]]
Show[GraphicsArray[{Graphics[{Transpose[{kleuren[set1],punten[set1]}],Circle[{0, 0}, 1]},AspectRatio -> Automatic,PlotRange -> {{-5, 5}, {-5, 5}},Axes -> True],Graphics[{Transpose[{kleuren[set1],punten[f[set1]]}],Circle[{0, 0}, 1]},AspectRatio -> Automatic,PlotRange -> {{-5, 5}, {-5, 5}},Axes -> True]}]]

Met behulp van eenvoudige vlakke meetkunde kan je bewijzen, dat het beeld van elke cirkel die niet door  (0,0)  gaat, een andere cirkel is. Merk ook op, dat de eenheidscirkel zelf een verzameling van fixpunten van de afbeelding is. Alle punten van de eenheidscirkel gaan onder de inversie gewoon over naar zichzelf! Hoe leg je dat uit?
In ieder geval zie je, dat de cirkel die we door de inversie afbeelden en zijn beeld mekaar snijden op de eenheidscirkel - en dat is geen toeval - dat is consequentie van de vaststelling hierboven.

\(Clear[f]
\)\(f[z_] := 1/Conjugate[z]
\)Show[{
        Graphics[
          Transpose[{kleuren[set4[1, 1, 2]], puntenKlein[set4[1, 1, 2]]}]], 
        Graphics[
          Transpose[{kleuren[set4[1, 1, 2]], 
              puntenKlein[f[set4[1, 1, 2]]]}]], Graphics[Circle[{0, 0}, 1]]}, 
      PlotRange -> {{-5, 5}, {-5, 5}}, 
      AspectRatio -> Automatic, Axes -> True]

Het beeld van een cirkel die WEL door  (0,0)  gaat, is een rechte. Ook hier behoren de snijpunten van de cirkel en de rechte tot de eenheidscirkel.

\(Clear[f]
\)\(f[z_] := 1/Conjugate[z]
\)\(set4[x0_, y0_, r_] := 
      Map[complex, 
        Table[{x0 + r\ Cos[φ], y0 + r\ Sin[φ]}, {
            φ, 0, 2\ Pi,  .01}]]
\)\(Show[{
        Graphics[
          Transpose[{kleuren[set4[0, 2, 2]], puntenKlein[set4[0, 2, 2]]}]], 
        Graphics[
          Transpose[{kleuren[set4[0, 2, 2]], 
              puntenKlein[f[set4[0, 2, 2]]]}]], Graphics[Circle[{0, 0}, 1]]}, 
      PlotRange -> {{\(-5\), 5}, {\(-5\), 5}}, 
      AspectRatio -> Automatic, Axes -> True]
\)

...We verschuiven de cirkel een beetje naar beneden. Punt  (0,0)  is nu door de cirkel omringd - de rechte van de vorige tekening "gaat in een grote cirkel over"

\(Clear[f]
\)\(f[z_] := 1/Conjugate[z]
\)\(set4[x0_, y0_, r_] := 
      Map[complex, 
        Table[{x0 + r\ Cos[φ], y0 + r\ Sin[φ]}, {
            φ, 0, 2\ Pi,  .01}]]
\)Show[{
        Graphics[
          Transpose[{kleuren[set4[0, 2, 2.1]], 
              puntenKlein[set4[0, 2, 2.1]]}]], 
        Graphics[
          Transpose[{kleuren[set4[0, 2, 2.1]], 
              puntenKlein[f[set4[0, 2, 2.1]]]}]], 
        Graphics[Circle[{0, 0}, 1]]}, 
      PlotRange -> {{-5, 5}, {-5, 5}}, 
      AspectRatio -> Automatic, Axes -> True]

...En nu verschuiven we dezelfde cirkel een beetje naar boven zodanig dat  (0,0)  erbuiten ligt. Ook nu wordt onze cirkel op een grote cirkel afgebeeld. Deze keer ligt de grote cirkel  anders dan de cirkel op de vorige tekening. Je kan de indruk krijgen dat het te maken heeft met de ligging van de oorspronkelijke cirkel tegenover het punt  (0,0) -  en het is zo. De rechte op de eerste van die drie tekeningen schijnt een soort "grensgeval" te zijn, een overgang van "de onderste helft" van het vlak naar "de bovenste helft".

\(Clear[f]
\)\(f[z_] := 1/Conjugate[z]
\)\(set4[x0_, y0_, r_] := 
      Map[complex, 
        Table[{x0 + r\ Cos[φ], y0 + r\ Sin[φ]}, {
            φ, 0, 2\ Pi,  .01}]]
\)Show[{
        Graphics[
          Transpose[{kleuren[set4[0, 2, 1.9]], 
              puntenKlein[set4[0, 2, 1.9]]}]], 
        Graphics[
          Transpose[{kleuren[set4[0, 2, 1.9]], 
              puntenKlein[f[set4[0, 2, 1.9]]]}]], 
        Graphics[Circle[{0, 0}, 1]]}, 
      PlotRange -> {{-5, 5}, {-5, 5}}, 
      AspectRatio -> Automatic, Axes -> True]

Het beeld van een rechte die NIET door  (0,0)  gaat, is een cirkel die WEL door  (0,0)  gaat. In dit geval zijn er geen snijpunten met de eenheidscirkel - noch van de rechte, noch van haar beeld.

\(Clear[f]
\)\(f[z_] := 1/Conjugate[z]
\)\(setRechte[a_, b_] := {
        Graphics[Table[Point[{x, a\ x + b}], {x, \(-5\), 5,  .01}]]}
\)\(set5[a_, b_] := 
      Map[complex, Table[{x, a\ x + b}, {x, \(-5\), 5,  .01}]]
\)Show[{
        Graphics[
          Transpose[{kleuren[set5[-2, 3]], 
              puntenKlein[set5[-2, 3]]}]], 
        Graphics[
          Transpose[{kleuren[set5[-2, 3]], 
              puntenKlein[f[set5[-2, 3]]]}]], 
        Graphics[Circle[{0, 0}, 1]]}, 
      PlotRange -> {{-5, 5}, {-5, 5}}, 
      AspectRatio -> Automatic, Axes -> True]

Een rechte die WEL door  (0,0)  gaat, wordt op zichzelf afgebeeld onder de inversie, maar is, in tegenstelling tot de eenheidscirkel zelf, GEEN verzameling van fixpunten. De punten van de rechte die binnen de eenheidscirkel zitten, vliegen immers naar buiten en de punten buiten de eenheidscirkel - vliegen naar binnen. De rechte blijft dus zichzelf, maar de punten veranderen van plaats. Bekijk dat op de twee tekeningen hieronder - de rechte zelf op de eerste tekening, haar beeld op de tweede. De kleuren helpen ons nagaan, welke punten van de rechte naar waar zijn gegaan.
Als je de cel hieronder openklikt om naar het programma te kijken, kan je je afvragen, waarom er hier een andere formule voor de functie f gebruikt werd. De formule is equivalent met   f[z]=1/Conjugate[z]  - in dit geval was het echter handiger (om de juiste kleurenverspreiding te bekomen) om met de Cartesische coördinaten te werken. Probeer zelf te verantwoorden waarom de formule voor de coördinaten van   f[z]   voor   z=(x,y)   als volgt is:   ((x/((x^2) +  (y^2))), (y/((x^2) +  (y^2)))).

\(setRechteNul[a_] := {
        Graphics[
          Table[{Hue[x/10], Point[{x, a\ x}]}, {x, \(-5\), 5,  .015}]], 

        																												
        Graphics[Circle[{0, 0}, 1]]}\)Clear[f]\(f[x_, y_] := {x/\((x^2 + y^2)\), y/\((x^2 + y^2)\)}
\)\(setRechteBeeld[a_] := {
        Graphics[
          Table[{Hue[x/10], Point[f[x, a\ x]]}, {x, \(-5\), 5,  .0015}]], 

        																												
        Graphics[Circle[{0, 0}, 1]]}
\)Show[setRechteNul[1], Axes -> True, AspectRatio -> Automatic, 
      PlotRange -> {{-5, 5}, {-5, 5}}]Show[setRechteBeeld[1], Axes -> True, AspectRatio -> Automatic, 
      PlotRange -> {{-5, 5}, {-5, 5}}]

Een leuk beeldje - hoe wordt een ellips vervormd door de inversie:

\(Clear[f]
\)\(f[z_] := 1/Conjugate[z]
\)\(set4[x0_, y0_, r1_, r2_] := 
      Map[complex, 
        Table[{x0 + r1\ Cos[φ], y0 + r2\ Sin[φ]}, {
            φ, 0, 2\ Pi,  .01}]]
\)Show[{
        Graphics[
          Transpose[{kleuren[set4[0, 0, 2,  .5]], 
              punten[set4[0, 0, 2,  .5]]}]], 
        Graphics[
          Transpose[{kleuren[set4[0, 0, 2,  .5]], 
              punten[f[set4[0, 0, 2,  .5]]]}]], Graphics[Circle[{0, 0}, 1]]}, 
      PlotRange -> {{-5, 5}, {-5, 5}}, 
      AspectRatio -> Automatic, Axes -> True]

... en een ellips die geen snijpunten met de eenheidscirkel heeft:

\(Clear[f]
\)\(f[z_] := 1/Conjugate[z]
\)\(set4[x0_, y0_, r1_, r2_] := 
      Map[complex, 
        Table[{x0 + r1\ Cos[φ], y0 + r2\ Sin[φ]}, {
            φ, 0, 2\ Pi,  .01}]]
\)Show[{
        Graphics[
          Transpose[{kleuren[set4[0, 2, 2,  .5]], 
              puntenKlein[set4[0, 2, 2,  .5]]}]], 
        Graphics[
          Transpose[{kleuren[set4[0, 2, 2,  .5]], 
              puntenKlein[f[set4[0, 2, 2,  .5]]]}]], 
        Graphics[Circle[{0, 0}, 1]]}, 
      PlotRange -> {{-5, 5}, {-5, 5}}, 
      AspectRatio -> Automatic, Axes -> True]

... en nog een ellips, die door  (0,0)  passeert:

\(Clear[f]
\)\(f[z_] := 1/Conjugate[z]
\)\(set4[x0_, y0_, r1_, r2_] := 
      Map[complex, 
        Table[{x0 + r1\ Cos[φ], y0 + r2\ Sin[φ]}, {
            φ, 0, 2\ Pi,  .01}]]
\)Show[
      GraphicsArray[{
          Graphics[{
              Transpose[{kleuren[set4[0,  .5, 2,  .5]], 
                  puntenKlein[set4[0,  .5, 2,  .5]]}], Circle[{0, 0}, 1]}, 
            AspectRatio -> Automatic, 
            PlotRange -> {{-5, 5}, {-5, 5}}, Axes -> True], 
          Graphics[{
              Transpose[{kleuren[set4[0,  .5, 2,  .5]], 
                  puntenKlein[f[set4[0,  .5, 2,  .5]]]}], Circle[{0, 0}, 1]}, 
            AspectRatio -> Automatic, 
            PlotRange -> {{-5, 5}, {-5, 5}}, Axes -> True]}]]

... en een stukje sinusoide...

\(Clear[f]
\)\(f[z_] := 1/Conjugate[z]
\)\(setSinus[a_] := 
      Map[complex, Table[{x, Sin[a\ x]}, {x, \(-5\), \(- .01\),  .01}]]
\)Show[
      GraphicsArray[{
          Graphics[{Transpose[{kleuren[setSinus[3]], punten[setSinus[3]]}], 
              Circle[{0, 0}, 1]}, AspectRatio -> Automatic, 
            PlotRange -> {{-5, 5}, {-5, 5}}, Axes -> True], 
          Graphics[{
              Transpose[{kleuren[setSinus[3]], punten[f[setSinus[3]]]}], 
              Circle[{0, 0}, 1]}, AspectRatio -> Automatic, 
            PlotRange -> {{-5, 5}, {-5, 5}}, Axes -> True]}]]

Inleiding tot de complexe exponentiële functie.

Als kleine voorbereiding voor deze paragraaf, herhalen wij eventjes de grafiek van de reële exponentiële functie.

Plot[(E^x), {x, -4, 3}, AspectRatio -> Automatic]

Limit[E^x, x -> -Infinity]

Limit[E^x, x -> Infinity]

Waarde van die functie voor  x=0  is gelijk aan 1. De functie is stijgend over de hele as - alle waarden voor argumenten kleiner dan nul zijn dus kleiner dan 1 (maar positief) en alle waarden voor argumenten groter dan nul zijn groter dan 1.
Die korte herinnering gaat ons helpen het vervolg beter te begrijpen.

Het is niet de bedoeling ons met de complexe exponentiële functie bezig te houden. Toch is het de moeite om het gedrag van de functie  f  met de formule   (x, y) → 
              (e^x)(cos[y], sin[y])   even te analyseren. Zelfs als we die functie als een   (ℝ^2) → (ℝ^2)   functie zien, stellen we vast, dat elk complex getal  z = x + iy   op het complexe getal met poolcoördinaten   ((e^x),y)  wordt afgebeeld.   f[x+ i y]=\(TraditionalForm
      \`e\^x\ \((cos[y] + \ i\ sin[y])\)\).   Klik hierop om te zien zien, wat (e^(i y)) symboliseert . 
(e^(i y))=cos[y]+i sin[y].   Als we dat nu in de definitie van f substitueren, krijgen we:   f [x+i y]=(e^x) (e^(i y)). 
Als we nu van de "hypothetische" complexe exponentiële functie  (e^z)  dezelfde eigenschap zouden verwachten als van de reële exponentiële, namelijk:   f[a+b]=f[a]f[b],   kunnen we dat herschrijven als   f[x+i y]=(e^(x  +  i y)),   dus   f[z]=(e^z)...    Dat is natuurlijk geen "deftige" definitie van de complexe exponentiële functie. Dat neemt niet weg dat de functie  f  waarover we spreken, de "echte" complexe exponentiële voorstelt... De correcte definitie van die functie kan je in een van de volgende notebooks vinden.

Op de tekeningen hieronder zie je twee exemplaren van het  (ℝ^2)-vlak. Op het bovenste zie je de argumenten van  f,  op het onderste - de functiewaarden. Als je de formule van  f:   f[(x, y)] = 
            ((e^x) cos[y] , (e^x) sin[y])   goed analyseert, zie je (zie tekening!):

* als je  x  fixeert op een bepaalde waarde  a  (op de tekening zijn dat  a = -1, 1, 2, 3)  en  y  laat variëren van  0  tot  2 π,  worden de rechten  x=a  op cirkels met stralen  (e^a)  afgebeeld.
Het beeld van de rechte "Lijn1" is de cirkel "Circle1" enz. Functie  f  is  2π - periodisch ten opzichte van de tweede variabele (omdat cosinus en sinus  2π -periodisch zijn), de rechten  x=a  worden dus oneindig vele keren "gewikkeld" rond de cirkels met de stralen   (e^a).

* voor verschillende waarden van  x  krijgen we verschillende cirkels - zeer kleine cirkels voor negatieve  x  (kijk terug naar de grafiek van de reële exponentiële functie!) en steeds grotere cirkels voor grotere  x.

De kleuren van de functiewaarden (op de tweede tekening) stemmen overeen met de kleuren van de argumenten (op de eerste tekening), waarvoor ze uitgerekend werden. Er werd ook aangeduid welke rechten naar welke cirkels overgaan.

Door de cel open te klikken, kan je de programmatie bekijken.

Clear[alle, coords, kleuren, veel];

alle[re_List, im_List] := 
      Flatten[Outer[#1 + I #2&, re, im]]

coords[z_] := {Re[z], Im[z]}

<< Graphics`ArgColors`

kleuren[z_] := ArgColor[(E^z)]

veel = alle[{-1, 1, 2, 3}, Table[j, {j, -1, 13,  .1}]];

Show[Graphics[\({Line[{{\(-1\), 2\ π}, {4, 2\ π}}]
, 
              Line[{{\(-1\), 4\ π}, {4, 4\ π}}]
			, 
              Text[FontForm["Lijn1", {"Courier-Bold", 14}], {
                  \(- .6\), 3}]
			, 
              Text[FontForm["Lijn2", {"Courier-Bold", 14}], {1, 3}]

              			, Text[
                FontForm["Lijn3", {"Courier-Bold", 14}], {2, 3}]

              			, Text[
                FontForm["Lijn4", {"Courier-Bold", 14}], {3, 3}]
                
, 
              Transpose[{Map[kleuren, veel], Map[Point, Map[coords, veel]]}]}
              \),Axes -> True,Ticks -> {{-1, 1}, Range[0, 4] π},AspectRatio -> 1]]
Show[Graphics[\({Transpose[{Map[kleuren, veel], 
                Map[Point, Map[coords, E\^veel]]}]
		, 
            Text[FontForm["Circle1", {"Courier-Bold", 14}], {0, 
                E^\((\(-1\))\)}]
		, 
            Text[FontForm["Circle2", {"Courier-Bold", 14}], {0, 
                E}]
		, 
            Text[FontForm["Circle3", {"Courier-Bold", 14}], {0, 
                E^2}]
		, 
            Text[FontForm["Circle4", {"Courier-Bold", 14}], {0, 
                E^3}]
		}\),PlotRange -> {{-20, 20}, {-20, 20}},Axes -> True,Ticks -> {{-1, 1}, 2 Range[0, 10]},AspectRatio -> Automatic]]

Hieronder kan je nog het beeld van een groter stuk complex vlak onder de werking van die functie vinden. Uitgebreide bespreking daarvan komt in de volgende notebook.

\(<< Graphics`Graphics3D`
\)\(GraphicsArray[{
        ParametricPlot3D[{E^x\ Cos[y], 
            E^x\ Sin[y], 0}, {x, \(-2\), 2}, {y, \(-2.5\), 
            2.5}], 
	
        ParametricPlot3D[{E^x\ Cos[y], 
            E^x\ Sin[y], 0}, {x, 2, 4}, {y, \(-3.15\), 3.15}]}]
      \)

Toepassingen in de meetkunde

Je hebt al in de vorige secties verschillende meetkundige toepassingen van complexe getallen gezien. Hier zie je nog een korte samenvatting en uitbreiding van dit onderwerp.

Isometrie

Met behulp van complexe getallen kunnen wij onder andere symmetrieën  (Conjugate[z]),  translaties (optellen van een gefixeerd complex getal) en rotaties (vermenigvuldigen met een vast complex getal) beschrijven. Je hebt al verschillende voorbeelden daarvan gezien in deze notebook. In de volgende notebooks kan je daar veel meer over lezen.

Spirograph

De spirograph is een kleine reclame voor complexe getallen en tegelijkertijd ook voor de volgende notebook! - dat soort prachtige tekeningen kan men heel gemakkelijk maken met behulp van complexe getallen. Er wordt hier trouwens enkel maar van het optellen van complexe getallen gebruik gemaakt. Zoals je ziet, bestaat het programma enkel maar uit een paar regeltjes en dat is te danken aan de compacte notatie  (e^(i φ))  en de programmeermogelijkheden die "Mathematica" biedt (werken met lijsten).

Exacte bespreking van dat voorbeeld vind je in een aparte notebook, die bijna volledig aan de spirograph en zijn "afgeleiden" toegewijd zal zijn!

spirograph[f_, φ_, opts___]:=
	ParametricPlot[{Re[f], Im[f]},{φ, - π,  π},
		opts,
		PlotRange -> All,AspectRatio -> Automatic,Frame -> True,Axes -> False,FrameTicks -> None,PlotPoints -> 250];

Clear[f, n, cons];

f[φ_] := 
          Plus@@Table[E^(cons^k I φ)/2^k, {k, n}]
	\(n = 5; 
cons = 3; 


    𝓈 = 
      spirograph[f[φ], φ, PlotPoints -> 2\ cons\ 2^n]; 
    \)

Oplossen van meetkundige oefeningen

De volgende notebook over complexe getallen bevat leuke illustraties van het toepassen van complexe getallen in het oplossen van meetkundige vraagstukken. Men kan met behulp van complexe getallen op een heel eenvoudige en mooie manier puntenverzamelingen beschrijven.  |z| ≤ r   bij voorbeeld is een schijf met straal  r  en middelpunt  (0,0).
De notatie is ongetwijfeld simpeler dan met behulp van de Cartesische coördinaten...

Fractalen

Nog een stukje reclame - weeral een programmaatje van amper 5 lijnen en - wat een resultaat!
Ook dit gaan we in de volgende notebook exact bespreken.

nieuw[z_]  :=  {Sqrt[z  -  c],  -Sqrt[z  -  c]}
alle[begin_]:=NestList[nieuw, begin, 10] // Flatten
coords[z_] := {Re[z], Im[z]}
\(Clear[c]; \ c =  .3 +  .4\ I; 


      ListPlot[Map[coords, alle[ .3 + \  .5\ I]], AspectRatio -> Automatic]
        \)

De Hoofdstelling van de Algebra

Iedere veelterm (polynoom) in  ℂ[X]  (verzameling van alle polynomen met complexe coëfficiënten) met graad  n>0  heeft minstens één wortel in  ℂ.

Zo kort en bondig - en zo anders dan in  ℝ[X]... Iedereen weet dat de stelling niet geldt voor de polynomen met reële coëfficiënten - polynoom   P(x) = (x^2)+1  heeft immers geen wortels in de verzameling van reële getallen. In  ℂ  wel - wat zijn de wortels van die polynoom in  ℂ?

Aangezien onze notebook een "meetkundige" karakter heeft, gaan we dat onderwerp hier niet verder uitdiepen. Wat niet betekent dat het oninteressant is. Misschien wordt het het onderwerp van één van de volgende notebooks?

Slot

In deze notebook heb je kennis gemaakt met de basisbegrippen van complexe getallen. Het is eigenlijk maar een begin van een groot en omvangrijk onderwerp. Misschien ga je ooit nog kennis maken met de theorie van de complexe functies - die zo verbazend verschillend is van de theorie van de reële functies...
In ieder geval ga je zeker de complexe getallen moeten gebruiken en hopelijk is deze notebook enigszins nuttig voor jou geweest.

Antwoorden op vraagstukken

Hier vind je de grafische illustratie van de wetten die gelden voor het optellen en vermenigvuldigen van complexe getallen. Commutativiteit is zodanig evident, dat we dat niet aantonen. We raden echter aan om dat te proberen (neem de programmatuur voor de associativiteit als voorbeeld! - gewoon 1 getal minder in beide gevallen).
Door op dit stukje blauwe tekst te klikken kan je later naar de tekt van de notebook terugkeren.

Als je in het programmeren geinteresseerd bent, kan je de cellen met de programma's openklikken. Functies  f,  g  en  g1  zijn enkel maar hulpmiddelen om ons doel te bereiken. Voor elk van de wetten wordt er een apart programma voor het linker- en de rechterlid van de gelijkheid geschreven. Om het vergelijken van de grafieken voor beide kanten te vergemakkelijken, werden er speciale "GraphicsArrays" aangemaakt.

voorbereidende functie voor het optellen. Als je wil, kan je het programma bekijken door het openklikken van de cel.

Clear[f]\(f[a1_, b1_, a2_, b2_] := {{Hue[ .5], PointSize[0.04], Point[{a1, b1}]}, 
        
																{Hue[ .1], PointSize[0.03], 
          Point[{a2, b2}]}, 

        																{Hue[0], PointSize[0.03], 
          Point[{0, 0}]}, 

        																{Hue[ .3], PointSize[0.03], 
          Point[{a1 + a2, b1 + b2}]}, 

        																{Hue[ .7], Line[{{0, 0}, {a1, b1}}]}, 
        
																{Hue[ .2], 
          Line[{{0, 0}, {a2, b2}}]}, 

        																{Hue[ .2], 
          Line[{{a1, b1}, {a1 + a2, b1 + b2}}]}, 

        																{Hue[ .7], 
          Line[{{a2, b2}, {a1 + a2, b1 + b2}}]}, 

        																{Hue[0], 
          Line[{{0, 0}, {a1 + a2, b1 + b2}}]}
															}
        \)\(plusTempor[a1_, b1_, a2_, b2_] := 	
      Show[Graphics[{f[a1, b1, a2, b2], 

            																{
              Text[FontForm[
                  \*""\!\(z\_1\)"", {"Courier-Bold", 16}], {
                  a1 + 0.2, b1 + 0.2}]}, 

            																{
              Text[FontForm[
                  \*""\!\(z\_2\)"", {"Courier-Bold", 16}], {
                  a2 + 0.2, b2 + 0.2}]}, 

            																{
              Text[FontForm[
                  \*""\!\(z\_1\)+\!\(z\_2\)"", {"Courier-Bold", 
                    16}], {a1 + a2 -  .5, b1 + b2 -  .2}]}	
			}], 

        																		\ Axes -> True, 
        AspectRatio -> Automatic]\)

plusTempor[1, 2, 3, 4]

ASSOCIATIVITEIT VAN HET OPTELLEN

Linkerlid van de vergelijking in de associativiteitswet voor het optellen. Als je wil, kan je het programma bekijken door het openklikken van de cel.

\(plusAssocLinksBinnen[a1_, b1_, a2_, b2_, a3_, b3_] := 

      		{f[a1, b1, a2 + a3, b2 + b3], f[a2, b2, a3, b3], 

        		{Text[
            FontForm[
              \*""\!\(z\_1\)+(\!\(z\_2\)+\!\(z\_3\))"", {
                "Courier-Bold", 18}], {a1\  + a2 + a3 - 2, 
              b1 + b2 + b3}]}, 

        		{Text[
            FontForm[\*""\!\(z\_1\)"", {"Courier-Bold", 16}], {
              a1 + 0.2, b1 + 0.2}]}, 

        		{Text[
            FontForm[\*""\!\(z\_2\)"", {"Courier-Bold", 16}], {
              a2 + 0.2, b2 + 0.2}]}, 

        		{Text[
            FontForm[\*""\!\(z\_3\)"", {"Courier-Bold", 16}], {
              a3 + 0.2, b3 + 0.2}]}
			}\)\(plusAssocLinks[a1_, b1_, a2_, b2_, a3_, b3_] := 
      Show[Graphics[plusAssocLinksBinnen[a1, b1, a2, b2, a3, b3]], 

        																		\ Axes -> True, 
        AspectRatio -> Automatic]\)

plusAssocLinks[2, 4, 1, 6, 4, 1]

Rechterlid van de vergelijking in de associativiteitswet voor het optellen. Als je wil, kan je het programma bekijken door het openklikken van de cel.

\(plusAssocRechtsBinnen[a1_, b1_, a2_, b2_, a3_, b3_] := 

      		{f[a1, b1, a2, b2], f[a1 + a2, b1 + b2, a3, b3], 

        		{Text[
            FontForm[
              \*""(\!\(z\_1\)+\!\(z\_2\))+\!\(z\_3\)"", {
                "Courier-Bold", 18}], {a1\  + a2 + a3 - 2, 
              b1 + b2 + b3}]}, 

        		{Text[
            FontForm[\*""\!\(z\_1\)"", {"Courier-Bold", 16}], {
              a1 + 0.2, b1 + 0.2}]}, 

        		{Text[
            FontForm[\*""\!\(z\_2\)"", {"Courier-Bold", 16}], {
              a2 + 0.2, b2 + 0.2}]}, 

        		{Text[
            FontForm[\*""\!\(z\_3\)"", {"Courier-Bold", 16}], {
              a3 + 0.2, b3 + 0.2}]}
			}
\)\(plusAssocRechts[a1_, b1_, a2_, b2_, a3_, b3_] := 
      Show[Graphics[plusAssocRechtsBinnen[a1, b1, a2, b2, a3, b3]], 

        																		\ Axes -> True, 
        AspectRatio -> Automatic]\)

plusAssocRechts[2, 4, 1, 6, 4, 1]

Illustratie van de associativiteitswet voor het optellen - ongeacht de plaatsing van de haakjes krijgen we hetzelfde resultaat, als gevolg van eigenschappen van het parallellogram.
Als je wil, kan je het programma bekijken door het openklikken van de cel.

plusAssocVergelijking[a1_, b1_, a2_, b2_, a3_, b3_] := 
      Show[GraphicsArray[{
            Graphics[plusAssocLinksBinnen[a1, b1, a2, b2, a3, b3], 
              AspectRatio -> Automatic], 
            Graphics[plusAssocRechtsBinnen[a1, b1, a2, b2, a3, b3], 
              AspectRatio -> Automatic]}],  Axes -> {True, True}]

plusAssocVergelijking[2, 4, 1, 6, 4, 1]

voorbereidende functie voor het vermenigvuldigen - poolcoördinaten. Als je wil, kan je het programma bekijken door het openklikken van de cel.

Clear[g]\(g[r1_, φ1_, r2_, 
        φ2_] := {{Hue[ .7], Dashing[{0.05, 0.05}], 
          Line[{{0, 0}, plaats[1, 0]}]}, 

        																								{Hue[ .7], 
          Dashing[{0.05, 0.05}], 
          Line[{plaats[1, 0], plaats[r1, φ1]}]}, 

        																								{Hue[ .7], 
          Line[{{0, 0}, plaats[r1, φ1]}]}, 

        																								{Hue[ .3], 
          Dashing[{0.05, 0.05}], 
          Line[{plaats[r2, φ2], 
              plaats[r1\ r2, φ1 + φ2]}]}, 

        																								{Hue[ .3], 
          Line[{{0, 0}, plaats[r2, φ2]}]}, 

        																								{Hue[0], 
          Line[{{0, 0}, product[{{r1, φ1}, {r2, φ2}}]}]}, 
        
																									{Hue[0], 
          PointSize[0.03], 
          Point[product[{{r1, φ1}, {r2, φ2}}]]}, 

        																									{Hue[ .7], 
          PointSize[0.03], Point[plaats[r1, φ1]]}, 

        																									{Hue[ .3], 
          PointSize[0.03], Point[plaats[r2, φ2]]}

        																									}\)\(	maalTempor[r1_, φ1_, r2_, φ2_] := 	
      Show[Graphics[{g[r1, φ1, r2, φ2], 

            				{
              Text[FontForm[
                  \*""\!\(z\_1\)"", {"Courier-Bold", 16}], {
                  r1\ Cos[φ1] + 0.2, 
                  r1\ Sin[φ1] + 0.2}]}, 

            				{
              Text[FontForm[
                  \*""\!\(z\_2\)"", {"Courier-Bold", 16}], {
                  r2\ Cos[φ2] + 0.2, 
                  r2\ Sin[φ2] + 0.2}]}, 

            				{
              Text[FontForm[
                  \*""\!\(z\_1\)\!\(z\_2\)"", {"Courier-Bold", 
                    16}], 
							{
                  r1\ Cos[φ1]\ r2\ Cos[φ2] - 
                    r1\ Sin[φ1]\ r2\ Sin[φ2] +  .2, 

                  								
                  r1\ Cos[φ1]\ r2\ Sin[φ2] + 
                    r2\ Cos[φ2] r1\ Sin[φ1] -  .2}]}, 

            				{Hue[0], Circle[{0, 0},  .5, {0, φ1}]}, 

            				{Circle[{0, 0},  .7, {0, φ2}]}, 

            				{Hue[0], 
              Circle[{0, 0},  .9, {φ2, 
                  φ1 + φ2}]}
			}], 

        																		\ Axes -> True, 
        AspectRatio -> Automatic]\)

maalTempor[3, Pi/3, 1.5, 2 Pi/7]

ASSOCIATIVITEIT VAN HET VERMENIGVULDIGEN

Linkerlid van de vergelijking in de associativiteitswet voor het vermenigvuldigen. Als je wil, kan je het programma bekijken door het openklikken van de cel.

\(maalAssocLinksBinnen[r1_, φ1_, r2_, φ2_, r3_, 
        φ3_] := 

      	{g[r1, φ1, r2\ r3, φ2 + φ3], 
        g[r2, φ2, r3, φ3], 

        				{Hue[0], Circle[{0, 0},  .2, {0, φ2}]}, 

        				{Circle[{0, 0},  .3, {0, φ3}]}, 

        				{Hue[0], 
          Circle[{0, 0},  .4, {φ3, φ2 + φ3}]}, 
        
				{Hue[ .1], Circle[{0, 0},  .6, {0, φ1}]}, 

        				{Hue[ .7], 
          Circle[{0, 0},  .7, {0, φ2 + φ3}]}, 

        				{Hue[ .1], 
          Circle[{0, 0},  .8, {φ2 + φ3, 
              φ1 + φ2 + φ3}]}, 

        				{
          Text[FontForm[\*""\!\(z\_1\)"", {"Courier-Bold", 16}], {
              r1\ Cos[φ1] + 0.1, r1\ Sin[φ1] + 0.1}]}, 

        				{
          Text[FontForm[\*""\!\(z\_2\)"", {"Courier-Bold", 16}], {
              r2\ Cos[φ2] + 0.1, r2\ Sin[φ2] + 0.1}]}, 

        				{
          Text[FontForm[\*""\!\(z\_3\)"", {"Courier-Bold", 16}], {
              r3\ Cos[φ3] + 0.1, r3\ Sin[φ3] + 0.1}]}, 

        				{
          Text[FontForm[
              \*""\!\(z\_1\)(\!\(z\_2\)\!\(z\_3\))"", {
                "Courier-Bold", 16}], 
            plaats[r1\ r2\ r3, φ1 + φ2 + φ3] + {
                0.5, 0}]}
			}
\)\(maalAssocLinks[r1_, φ1_, r2_, φ2_, r3_, 
        φ3_] := 
      Show[Graphics[
          maalAssocLinksBinnen[r1, φ1, r2, φ2, r3, 
            φ3]], 
																		\ 
        Axes -> True, AspectRatio -> Automatic]\)

maalAssocLinks[2, Pi/3, 1.5, 2 Pi/17, 1, Pi/6]

Rechterlid van de vergelijking in de associativiteitswet voor het vermenigvuldigen. Als je wil, kan je het programma bekijken door het openklikken van de cel.

\(maalAssocRechtsBinnen[r1_, φ1_, r2_, φ2_, r3_, 
        φ3_] := 

      	{g[r1, φ1, r2, φ2], 
        g[r1\ r2, φ1 + φ2, r3, φ3], 

        			{Hue[0], Circle[{0, 0},  .2, {0, φ1}]}, 

        				{Circle[{0, 0},  .3, {0, φ2}]}, 

        				{Hue[0], 
          Circle[{0, 0},  .4, {φ2, φ1 + φ2}]}, 
        
				{Hue[ .1], Circle[{0, 0},  .6, {0, φ3}]}, 

        				{Hue[ .7], 
          Circle[{0, 0},  .7, {0, φ1 + φ2}]}, 

        				{Hue[ .1], 
          Circle[{0, 0},  .8, {φ1 + φ2, 
              φ1 + φ2 + φ3}]}, 

        				{
          Text[FontForm[\*""\!\(z\_1\)"", {"Courier-Bold", 16}], {
              r1\ Cos[φ1] + 0.1, r1\ Sin[φ1] + 0.1}]}, 

        				{
          Text[FontForm[\*""\!\(z\_2\)"", {"Courier-Bold", 16}], {
              r2\ Cos[φ2] + 0.1, r2\ Sin[φ2] + 0.1}]}, 

        				{
          Text[FontForm[\*""\!\(z\_3\)"", {"Courier-Bold", 16}], {
              r3\ Cos[φ3] + 0.1, r3\ Sin[φ3] + 0.1}]}, 

        				{
          Text[FontForm[
              \*""(\!\(z\_1\)\!\(z\_2\))\!\(z\_3\)"", {
                "Courier-Bold", 16}], 
            plaats[r1\ r2\ r3, φ1 + φ2 + φ3] + {
                0.5, 0}]}
											}
\)\(maalAssocRechts[r1_, φ1_, r2_, φ2_, r3_, 
        φ3_] := 
      Show[Graphics[
          maalAssocRechtsBinnen[r1, φ1, r2, φ2, r3, 
            φ3]], 
																		\ 
        Axes -> True, AspectRatio -> Automatic]\)

maalAssocRechts[2, Pi/3, 1.5, 2 Pi/17, 1, Pi/6]

Illustratie van de associativiteitswet voor de vermenigvuldiging - ongeacht de plaatsing van de haakjes krijgen we hetzelfde resultaat. Gevolg van associativiteitswet voor het vermenigvuldigen van reële getallen (stralen!) en voor het optellen van reële getallen (de hoeken!).
Als je wil, kan je het programma bekijken door het openklikken van de cel.

maalAssocVergelijking[r1_, φ1_, r2_, φ2_, r3_, 
        φ3_] := 
      Show[GraphicsArray[{
            Graphics[
              maalAssocLinksBinnen[r1, φ1, r2, φ2, r3, 
                φ3], AspectRatio -> Automatic, 
              PlotRange -> {{-1.2, 1.6}, {0, 3}}], 
            Graphics[
              maalAssocRechtsBinnen[r1, φ1, r2, φ2, r3, 
                φ3], AspectRatio -> Automatic, 
              PlotRange -> {{-1.2, 1.6}, {0, 3}}]}],  
        Axes -> {True, True}]

maalAssocVergelijking[2, Pi/3, 1.5, 2 Pi/17, 1, Pi/6]

voorbereidende functie voor het vermenigvuldigen - Cartesische coördinaten. Als je wil, kan je het programma bekijken door het openklikken van de cel.

\(Clear[g1]; 


    g1[a1_, b1_, a2_, 
        b2_] := {{Hue[ .15], Polygon[{{a1, b1}, {0, 0}, {1, 0}}]}, 

        																									{Hue[ .15], 
          Polygon[{{a1\ a2 - b1\ b2, a1\ b2 + a2\ b1}, {0, 0}, {a2, b2}}]}, 

        																									{Hue[0], 
          PointSize[0.03], Point[{a1\ a2 - b1\ b2, a1\ b2 + a2\ b1}]}, 

        																									{Hue[0], 
          Line[{{0, 0}, {a1\ a2 - b1\ b2, a1\ b2 + a2\ b1}}]}, 

        																									{Hue[ .7], 
          PointSize[0.03], Point[{a1, b1}]}, 

        																									{Hue[ .7], 
          Line[{{0, 0}, {a1, b1}}]}, 

        																									{Hue[ .3], 
          PointSize[0.03], Point[{a2, b2}]}, 

        																									{Hue[ .3], 
          Line[{{0, 0}, {a2, b2}}]}, 

        																									{
          Line[{{0, 0}, {1, 0}}]}, 

        																									{
          Line[{{a1, b1}, {1, 0}}]}, 

        																									{
          Line[{{a2, b2}, {a1\ a2 - b1\ b2, a1\ b2 + a2\ b1}}]}

        																									}\)\(	maalTempor1[a1_, b1_, a2_, b2_] := 	
      Show[Graphics[{g1[a1, b1, a2, b2], 

            			{Text[
                FontForm[\*""\!\(z\_1\)"", {"Courier-Bold", 16}], {
                  a1 - 0.1, b1}]}, 

            			{Text[
                FontForm[\*""\!\(z\_2\)"", {"Courier-Bold", 16}], {
                  a2, b2}]}, 

            			{Text[
                FontForm[
                  \*""\!\(z\_1\)\!\(z\_2\)"", {"Courier-Bold", 
                    16}], {a1\ a2 - b1\ b2 +  .1, a1\ b2 + a2\ b1 -  .1}]}

            			}], 
																		\ Axes -> True, 
        AspectRatio -> Automatic]\)

maalTempor1[2,  .5,  .5,  .4]

DISTRIBUTIVITEIT

Linkerlid van de vergelijking in de distributiviteitswet. Als je wil, kan je het programma bekijken door het openklikken van de cel.

\(distribLinksBinnen1[a1_, b1_, a2_, b2_, a3_, b3_] := {
        f[a2, b2, a3, b3], 

        								\ {
          Text[FontForm[
              \*""\!\(z\_2\)+\!\(z\_3\)"", {"Courier-Bold", 18}], {
              a2 + a3, \ b2 + \ b3 +  .5}]}, 

        								{
          Text[FontForm[\*""\!\(z\_2\)"", {"Courier-Bold", 16}], {
              a2 + 0.2, b2 + 0.2}]}, 

        								{
          Text[FontForm[\*""\!\(z\_3\)"", {"Courier-Bold", 16}], {
              a3 + 0.2, b3 + 0.2}]}
			}\)\(distribLinks1[a1_, b1_, a2_, b2_, a3_, b3_] := 
      Show[Graphics[distribLinksBinnen1[a1, b1, a2, b2, a3, b3]], 

        																		\ Axes -> True, 
        AspectRatio -> Automatic]
\)\(distribLinksBinnen[a1_, b1_, a2_, b2_, a3_, b3_] := {f[a2, b2, a3, b3], 
        g1[a1, b1, a2 + a3, b2 + b3], 

        								\ {
          Text[FontForm[
              \*""\!\(z\_1\)(\!\(z\_2\)+\!\(z\_3\))"", {
                "Courier-Bold", 18}], {
              a1\ a2 + a1\ a3 - b1\ b2 - b1\ b3 - 1, 
              a2\ b1 + a3\ b1 + a1\ b2 + a1\ b3 - 1}]}, 

        								{
          Text[FontForm[\*""\!\(z\_1\)"", {"Courier-Bold", 16}], {
              a1 + 0.2, b1 + 0.2}]}, 

        								{
          Text[FontForm[\*""\!\(z\_2\)"", {"Courier-Bold", 16}], {
              a2 + 0.2, b2 + 0.2}]}, 

        								{
          Text[FontForm[\*""\!\(z\_3\)"", {"Courier-Bold", 16}], {
              a3 + 0.2, b3 + 0.2}]}
			}\)\(distribLinks[a1_, b1_, a2_, b2_, a3_, b3_] := 
      Show[Graphics[distribLinksBinnen[a1, b1, a2, b2, a3, b3]], 

        																		\ Axes -> True, 
        AspectRatio -> Automatic]\)

distribLinks1[2, 1, -1, 4, 5, 2]distribLinks[2, 1, -1, 4, 5, 2]

Rechterlid van de vergelijking in de distributiviteitswet. Als je wil, kan je het programma bekijken door het openklikken van de cel.

\(distribRechtsBinnen1[a1_, b1_, a2_, b2_, a3_, b3_] := {
        g1[a1, b1, a2, b2], g1[a1, b1, a3, b3], 

        								\ {
          Text[FontForm[
              \*""\!\(z\_1\)\!\(z\_2\)"", {"Courier-Bold", 18}], {
              a1\ a2 - b1\ b2 + 1, a2\ b1 + a1\ b2 + 1}]}, 

        								\ {
          Text[FontForm[
              \*""\!\(z\_1\)\!\(z\_3\)"", {"Courier-Bold", 18}], {
              a1\ a3 - b1\ b3 +  .5, a3\ b1 + a1\ b3 - 1}]}, 

        								{
          Text[FontForm[\*""\!\(z\_1\)"", {"Courier-Bold", 16}], {
              a1 + 0.2, b1 + 0.2}]}, 

        								{
          Text[FontForm[\*""\!\(z\_2\)"", {"Courier-Bold", 16}], {
              a2 + 0.2, b2 + 0.2}]}, 

        								{
          Text[FontForm[\*""\!\(z\_3\)"", {"Courier-Bold", 16}], {
              a3 + 0.2, b3 + 0.2}]}
			}\)\(distribRechts1[a1_, b1_, a2_, b2_, a3_, b3_] := 
      Show[Graphics[distribRechtsBinnen1[a1, b1, a2, b2, a3, b3]], 

        																		\ Axes -> True, 
        AspectRatio -> Automatic]
\)\(distribRechtsBinnen[a1_, b1_, a2_, b2_, a3_, b3_] := {
        g1[a1, b1, a2, b2], g1[a1, b1, a3, b3], 
        f[a1\ a2 - b1\ b2, a1\ b2 + a2\ b1, a1\ a3 - b1\ b3, 
          a1\ b3 + a3\ b1], 

        								\ {
          Text[FontForm[
              \*""\!\(z\_1\)\!\(z\_2\)+\!\(z\_1\)\!\(z\_3\)"", {
                "Courier-Bold", 18}], {a1\ a2 + a1\ a3 - b1\ b2 - b1\ b3, 
              a2\ b1 + a3\ b1 + a1\ b2 + a1\ b3 + 1}]}, 

        								{
          Text[FontForm[\*""\!\(z\_1\)"", {"Courier-Bold", 16}], {
              a1 + 0.2, b1 + 0.2}]}, 

        								{
          Text[FontForm[\*""\!\(z\_2\)"", {"Courier-Bold", 16}], {
              a2 + 0.2, b2 + 0.2}]}, 

        								{
          Text[FontForm[\*""\!\(z\_3\)"", {"Courier-Bold", 16}], {
              a3 + 0.2, b3 + 0.2}]}
			}\)\(distribRechts[a1_, b1_, a2_, b2_, a3_, b3_] := 
      Show[Graphics[distribRechtsBinnen[a1, b1, a2, b2, a3, b3]], 

        																		\ Axes -> True, 
        AspectRatio -> Automatic]\)

distribRechts1[2, 1, -1, 4, 5, 2]distribRechts[2, 1, -1, 4, 5, 2]

Illustratie van de distributiviteitswet - in beide gevallen krijgen we hetzelfde resultaat. Eerst optellen en daarna vermenigvuldigen (voorgesteld in de eerste rij van de tekening hieronder) betekent eerst de diagonaal van parallellogram  [(Subscript[z, 2]),  (Subscript[z, 3])]  vinden en daarna het eindpunt van de diagonaal draaien rond  (0,0)  over de hoek  Arg[(Subscript[z, 1])]  en haar lengte vermenigvuldigen met  Abs[(Subscript[z, 1])].  Eerst vermenigvuldigen en daarna optellen (geillustreert in de tweede rij van de tekening hieronder) betekent: eerst het hele parallellogram  [(Subscript[z, 2]),  (Subscript[z, 3])]  draaien rond  (0,0)  over de hoek  Arg[(Subscript[z, 1])]  en dit vergroten (of verkleinen) door al afmetingen met  Abs[(Subscript[z, 1])]  te vermenigvuldigen (homothetie!) en pas daarna zijn diagonaal vinden. Het is heel goed te zien dat beide operaties hetzelfde resultaat hebben! [Alle "gele" driehoeken op de tekeningen hieronder zijn gelijkvormig!]
Als je wil, kan je het programma bekijken door het openklikken van de cel.

\(distribVergelijking[a1_, b1_, a2_, b2_, a3_, b3_] := 
      Show[GraphicsArray[{{
              Graphics[{distribLinksBinnen1[a1, b1, a2, b2, a3, b3], 
                  Text[FontForm[
                      "eerst optellen... --->", {"Courier-Bold", 
                        12}], {1, \(-2\)}], 
						
                  Text[FontForm[
                      "HET LINKERLID VAN DE GELIJKHEID", {
                        "Courier-Bold", 14}], {5, 12}]}, 
                AspectRatio -> Automatic, 
                PlotRange -> {{\(-8\), 8}, {\(-3\), 16}}], 
				
              Graphics[{distribLinksBinnen[a1, b1, a2, b2, a3, b3], 
                  Text[FontForm[
                      "...dan vermenigvuldigen", {"Courier-Bold", 
                        12}], {0, \(-2\)}]}, AspectRatio -> Automatic, 
                PlotRange -> {{\(-8\), 8}, {\(-3\), 16}}]}, 

            				{
              Graphics[{distribRechtsBinnen1[a1, b1, a2, b2, a3, b3], 
                  Text[FontForm[
                      "eerst vermenigvuldigen... --->", {
                        "Courier-Bold", 12}], {4, \(-2\)}], 
						
                  Text[FontForm[
                      "HET RECHTERLID VAN DE GELIJKHEID", {
                        "Courier-Bold", 14}], {5, 12}]}, 
                AspectRatio -> Automatic, 
                PlotRange -> {{\(-8\), 8}, {\(-3\), 16}}], 
				
              Graphics[{distribRechtsBinnen[a1, b1, a2, b2, a3, b3], 
                  Text[FontForm[
                      "...dan optellen", {"Courier-Bold", 12}], {2, 
                      \(-2\)}]}, AspectRatio -> Automatic, 
                PlotRange -> {{\(-8\), 8}, {\(-3\), 16}}]
				}}], \ 
        Axes -> {True, True}]\)

distribVergelijking[2, 1, -1, 4, 5, 2]

De formules voor het multiplicatief invers en de tegengestelde van een complex getal.
Door op dit stukje blauwe tekst te klikken kan je later naar de tekst van de notebook terugkeren.

voor  z=(x,y):
-z=(-x,-y)			
(z^(-1))=((x/((x^(2 )) +  (y^2))), ((-y)/((x^(2 )) +  (y^2))))		
want    z+(-z)=(0,0)     en  	z (z^(-1))=(1,0).

Inductiebewijs - de wet van de Moivre.
Door op dit stukje blauwe tekst te klikken kan je later naar de tekst van de notebook terugkeren.

Laat  z=r (cosφ + i sinφ). Voor elk  n≥0  geldt de volgende formule voor  (z^(n )):
(([r (cosφ + i sinφ)])^n)= (r^(n ))(cosnφ  +  i sinnφ). 

Bewijs:

We moeten aantonen dat de formule waar is voor elk natuurlijk getal  n≥0.
Om dat te bekomen, passen we het inductieprincipe toe:

Laat ons veronderstellen dat de formule waar is voor een bepaald   n≥0,  dus dat de formule voor   (z^n)  is:    (([r (cosφ + i sinφ)])^n)= (r^(n ))(cosnφ  +  i sinnφ).
We gaan nu aantonen dat die veronderstelling impliceert, dat de formule ook voor het volgend natuurlijk getal  (n+1  dus)  geldt, dus dat  (z^(n + 1))  als volgt uitgerekend kan worden:
(([r (cosφ+i sinφ)])^(n + 1))=  (r^(n + 1))(
              cos(n + 1) φ + 
                i sin(n + 1) φ):

Eerste stap: We weten, dat  (z^(n + 1))=z (z^n).  Dus:
\(TraditionalForm
      \`\([r\ \((cosφ + i\ sinφ)\)]\)\^\(n + 1
          \)\)= r (cosφ+i sinφ)  \(TraditionalForm
      \`\([r\ \((cosφ + i\ sinφ)\)]\)\^n\)= (*)
 
Tweede stap: We hebben verondersteld dat de formule waar is voor  n,  dus we kunnen de formule voor  (z^n)  substitueren in de gelijkheid hierboven:
(*) = r (cosφ+i sinφ) (r^n)(cosnφ+i sinnφ) = (**)
 
Derde stap: Nu kunnen we de definitie van het vermenigvuldigen van twee complexe getallen toepassen (de moduli worden vermenigvuldigd en de argumenten opgeteld) en de gelijkheid voortzetten:
(**) = (r^(n + 1))(cos(n+1)φ+i sin(n+1)φ)

Je ziet dat we de formule voor  n+1  hebben bekomen!
We hebben dus aangetoond dat als de formule voor een bepaalde  n≥0  waar is, is ze ook waar voor het volgende (en in vervolg: voor ALLE volgende) natuurlijke getal.
Om te kunnen beweren dat de formule voor ALLE natuurlijke getallen waar is, moeten we nog aantonen dat "onze ketting van de ware formules" ergens begint. En dat is echt niet moeilijk. Men ziet onmiddellijk dat de formule voor  n=0  op een evidente manier waar is. Ook voor  n=1  is dat vanzelfsprekend (en voor  n=2  hebben we dat in het hoofdstuk over de machtsverheffing uitgerekend), maar al de echtheid van de formule voor  n=0  op z'n eentje volstaat.

Op basis van het principe van volledige inductie is de stelling bewezen.