http://www.math.hut.fi/teaching/k3/03/L/CA1.html      Päivitetty 8.9.03

Luentomateriaalia Viikolla 37, Kompleksiluvut ja -funktiot

Sisällysluettelo, joitakin luentokalvo-tyyppisiä kehitelmiä, Matlab-esimerkkejä.
Kts. myös Viikkotiivistelmä 37 (pdf) tai sama ps-muodossa

Tämä ei ole kattava luentopruju.

Kirjallisuutta:

  1. [KRE] Kreyszig: Advanced Engineering Mathematics, 8. painos Part D Complex Analysis, s. 651 - >
  2. [Lop] Lopez: AEM
  3. [AG] Kivelä: Algebra ja geometria 3. Kompleksiluvut s. 41 ->
  4. [RA] Kivelä: Reaalimuuttujan analyysi Luku 5 ss. 72 - 75

Sisällysluettelo

Numerointi luentojen mukainen. Tässä tiedostossa on vain valikoituihin kohtiin tekstiä.
  1. Kompleksiluvun määritelmä, kompleksitaso
  2. Polaarimuoto, argumentti
  3. Kerto- ja jakolasku polaarimuodossa, aritmetiikkaa
  4. Kolmioepäyhtälö, liittolukuominaisuuksia
  5. Potenssit, De Moivre'n kaava, juuret
  6. Eksponenttifunktio
  7. Logaritmi ja yleinen potenssi
  8. Trigonometriset ja hyperboliset funktiot

Motivaatio

  1. "Perustason tehtävät". Tällaisia ovat esim. vaihtovirtapiirilaskut sähköopissa, mekaaniset värähtelevät systeemit, Näihin riittävät kompleksilukujen perusominaisuudet, polaarimuoto, De Moivre'n kaava ym.
  2. Vaativammat tehtävät, joissa tarvitaan analyyttisten ja harmonisten funktioiden ominaisuuksia. Monet virtausdynamiikan, lämpöopin ja sähköstatiikan tehtävät kuuluvat sovellutusten piirin.

  3. Vaikka alkuperäinen tehtävä olisikin reaalialueella muotoiltu, voidaan ratkaisussa joutua kompleksialueelle (esim. ominaisarvotehtävät).

  4. Monet käsitteet saadaan esitetyksi yhtenäisemmässä ja helpommassa muodossa (esim. Fourier-sarjat ja -muunnokset) ja moni puhtaasti reaalifunktioihin liittyvä ilmiö voidaan oikeasti "ymmärtää" vasta kompleksialueella tarkasteltuna.

1. Kompleksiluvun määritelmä, kompleksitaso

[KRE8] 12.1, 12.2 (osittain) 
[Lop] 35.1
[AG]
Tarve reaalilukuja laajempaan lukujoukkoon syntyi tarpeesta ratkaista polynomiyhtälöitä. Yksinkertaisin tällainen yhtälö lienee:

x2=-1

Historian kirjoihin on jäänyt ensimmäisenä "kompleksilukuja" tarvinneena matemaatikkona Cardano(1501-1576), jonka sanotaan johtaneen kolmannen asteen yhtälön ratkaisukaavan. Itse asiassa kunnia kuulunee toiselle italialaiselle miehelle nimeltään Niccolo Fontana alias Tartaglia (1499-1557). Lue asiaan liittyvä kiehtova tarina tästä.

Kompleksilukujen nimi ja systemaattisen käyttöönotto on peräisin Gauss:lta. Noudatamme mm. kirjoissa [KRE] ja [AG] esiintyvää tyyliä.

Määritelmä.

Kompleksiluku z=(x,y) on reaalilukupari.
Kompleksilukujoukko on reaalilukuparien joukko R2 varustettuna seuraavilla laskutoimituksilla:
  • Yhteenlaskulla: z1+z2= (x1,y1)+(x2,y2)=(x1+x2,y1+y2)
  • Kertolaskulla: z1 z2 =(x1,y1)(x2,y2)= (x1 x2 - y1 y2,x1 y2 + x2 y1)
Kompleksilukujoukolle käytetään merkintää C

Huom: Joukkona C on sama kuin R2. Merkintä C viittaa siihen, että käytössä on myös yllä määritelty kertolasku.

Kompleksiluvun z=(x,y) x-koordinaattia sanotaan reaalioasaksi ja y-koordinaattia imaginaariosaksi, ja merkitään:

                x = Re z,  y = Im z

Kompleksilukujen kertolasku voidaan muistaa näin:

Tulon reaaliosa = ReRe - ImIm
Tulon imaginaariosa = ReIm + ImRe
Merkitään erityisesti symbolilla i kompleksilukua (0,1) . Edellä oleva esitys voidaan siten kirjoittaa muotoon:
       z=x+yi .
Tässä, kuten aina jatkossa, samastamme: (1,0) = 1, ja yleisesti (x,0)=x. Nyt saamme kaipaamamme säännön:
       i^2 = (0,1)(0,1)=(ReRe-ImIm,ReIm+ImRe)=(-1,0)=-1
Kaikki mystiikka salaperäisen "imaginaarisen" i:n ympäriltä on näin hälvennyt!

Johtopäätös: Kompleksiluvut eivät ole hiukkaakaan "vähemmän reaalisia" kuin reaaliluvut.

2. Polaarimuoto, liittoluku, argumentti

Koska kompleksilukujoukko on vanha tuttu taso C=R2, voimme havainnollistaa geometrisesti.

Koska opettelemme samalla Matlabia, annamme kuvien tuottamiseen käytetyn Matlab-koodin. Sen voi www-sivulta suoraan leikata/liimata Matlab-istuntoon ja tarpeen mukaan modifioida.

clf
z=1+1.5*i
zv=1-1.5*i % Liittoluku (z-viiva)
plot([0 z]) 
hold on
plot(z,'o')
plot([0 zv],'r')
plot(zv,'o')
axis([-2 2 -2 2])
xlabel('Re-akseli')
ylabel('Im-akseli')
grid
shg
angle(z)   % Arg z    
ans =
    0.9828
[kompl1.gif]

Kompleksiaritmetiikkaa Matlabilla

» format compact
» z1=8+3*i;z2=9-2*i;
» z1-z2
ans =
  -1.0000 + 5.0000i
» z1*z2
ans =
  78.0000 +11.0000i
» z1/z2
ans =
   0.7765 + 0.5059i
» format long;z1/z2
ans =
  0.77647058823529 + 0.50588235294118i

5 Potenssit, De Moivre'n kaava, juuret

clf
format compact
clear
n=5;
z=1+2*i;
plot([0, z])
hold on
plot(z,'ob')
axis square
axis([-2 2 -2 2])
text(real(z),imag(z+0.1*z),num2str(z))
r=sqrt(5)
R=r^(1/n)
Theta=angle(z)
phi=Theta/n+(0:n-1).*(2*pi/n)
w=R*(cos(phi)+i*sin(phi))
plot(w,'or')
%plot(w,'r')
t=linspace(-pi,pi); plot(R*exp(i*t))
for j=0:n-1
  text(real(w(j+1)),imag(w(j+1)+0.1*z),['w_',num2str(j)])
end
grid
shg
[juuriesim.gif]

6. Eksponenttifunktio

KRE8 12.6. s. 679.. Pidämme tunnettuna reaalisen eksponenttifunktion ominaisuuksineen. Käytämme sille tuttua merkintää ex, missä siis x epsilon R. Helpoimmalla pääsemme tällä määritelmällä:

Määritelmä Olkoon z=x+i y, asetetaan

ez = ex (cos y + i sin y).
Tässä siis ex tarkoittaa entuudestaan tunnettua reaalista eksponenttifunktiota.

Huom! Exp-funktio voitaisiin määritellä samalla potenssisarjalla, joka pätee reaalialueella. Tällöin ei tarvitsisi tietää mitään reaalisen exp-funktion ominaisuuksista.

Eulerin kaava

ascii

2.1 Eksponenttifunktion välittämä kuvaus

Kootaan vielä yhteen exp-funktion ominaisuuksia lausuttuina modulin ja argumentin avulla.
  1. Määritelmä:
    ez = ex (cos y + i sin y), kun z = x + iy.
    
  2. | ez | = ex = eRe z
  3. arg( ez ) = y = Im z
    (Arg(ez) saadaan lisäämällä tai vähentämällä sopiva 2pi :n monikerta.)
  4. Erityisesti |ez| = ex # 0 kaikilla z epsilon C.
%complex/demoexp.m
% 7.5.03
addpath c:\usr\heikki\opemate\complex
x=[-1 0 1];   % Näihin kohtiin 3 pystyviivaa z-tasoon.
y=linspace(-pi/6,3*pi/4,20);  % Näihin 20 vaakaviivaa.
m=length(y); n=length(x);
[X,Y]=meshgrid(x,y);         % Pysty- ja vaakaviivojen leikkauspisteiden
Z=X+i*Y;                     % muodostama hila z-tasossa
W=exp(Z);                    % Hilapisteiden kuvat w-tasossa (exp-funktion arvot)
W=W+i*eps;                   % Piirtämistä varten lisätään pienenpieni imag-osa siltä
                             % varalta, että jokin arvo olisi reaalinen.
tol=0.2                 
ztaso=[min(x)-tol,max(x)+tol,min(y)-tol,max(y)+tol];

%%%%%%%%%%%%%%%%%

figure(1)
clf
axis(ztaso)
hold on
Z=Z+i*eps;        % Tällä niksillä varmistetaan, että alkioissa myös imag. osa.
                  % plot ei nimittäin toimi samalla tavoin reaalisille alkioille.
                  % (vrt. edellä)
plot(Z(:,1),'b')  % 1. pystyviiva sinisellä 'b'
plot(Z(:,2),'g')  % 2. vihreällä 'g'
plot(Z(:,3),'c')  % 3. värillä 'cyan'


for k=1:m        
   plot(Z(k,:),'r')  % Kaikki 20 vaakaviivaa piirretään punaisella 'r'.
end
title('z-taso')
shg
[demoexp0.gif]

%%%%%%%%%%%%%%%%%%%%%
figure(2)          % Avataan uusi ikkuna w-tasoa varten.
clf
axis square
hold on
plot(W(:,1),'b')   % 1. pystyviivan kuva (sininen)
plot(W(:,2),'g')   % 2. pystyviivan kuva (vihreä)
plot(W(:,3),'c')   % 3. pystyviivan kuva ('cyan')
                   % Siis kukin w-kuvakäyrä samalla värillä kuin vastaava z-lähtöviiva. 
for k=1:m
   plot(W(k,:),'r') % Kaikkien 20:n vaakaviivan kuvat punaisella.
end
title('w-taso')
shg
[demoexp1.gif]

Pysty- ja vaakaviivojen kuvautuminen exp-funktiossa
  1. Pystyviiva x=a kuvautuu ea - säteiselle ympyräviivalle.
    y:n vaihteluväli määrää vastaavan keskuskulman. Jos y vaihtelee 2pi:n korkuisen kaistaleen verran, saadaan koko ympyrä.
  2. Vaakaviiva y=b kuvautuu osalle napasädettä, jonka kulma on b. Säteen osaa rajoittavat ympyräviivat, joiden säteet ovat ex1 ja ex2, missä x1 ja x2 rajaavat x-vaihteluvälin.

Jaksollisuus, perusalue

Koska cos ja sin ovat 2pi-jaksoisia, ei eksponenttifunktion arvo muutu, jos y korvataan y+2npi:llä, missä nepsilonZ (=kokonaisluvut). Siten exp-funktio on 2pii-jaksoinen, eli eksponenttifunktiolla on puhtaasti imaginaariset jaksot. (Tämänhän näemme kuvistakin oikein havainnollisesti.)

Siten ez saa kaikki mahdolliset arvonsa 2pi:n korkuisessa "vyössä", missä x saa kaikki reaaliarvot, eli:

[jaksovyo]
clf
v=([-20+i*pi, 20+i*pi,20-i*pi, -20-i*pi])
fill(real(v),imag(v),'y')
grid

7. Logaritmi

Olemme todenneet, että exp-funktio kuvaa 2pi:n korkuisen vyön:
            V={z=x+iy | xepsilonR,  y epsilon (-pi,pi]}
bijektiivisesti kompleksitasolle, josta on origo poistettu. (Puhumme O:ssa punkteeratusta tasosta). Niinpä sillä on käänteiskuvaus, jonka määrittelyjoukko on W0 = C2 \ {0}.

Saamme siten kuvauksen

                Log: W0 ---> V.
Esim (KRE8 Exa 1 s. 681) Haluamme määrätä kompleksiluvun 3+4i logaritmin.
Toisin sanoen on ratkaistava z yhtälöstä
       ez = 3 + 4i .
Olkoon z=x+iy, tällöin
      exeiy = 3+4i = 5e, missä;
      φ=arg(3+4i) = arctan 4/3 (päähaara).
Siis on oltava
     ex = 5
     y=φ + 2npi
Jos käänteisfunktion arvo valitaan jaksovyöstä V, on y=φ, joten
    Log(3+4i) = ln 5 + i arctan 4/3. 
Jos merkitsemme log(3+4i):llä mitä tahansa yhtälön ratkaisua, saamme:
   log(3+4i) = ln 5 + i(arctan 4/3 + 2npi) .
Saimme laskusäännön logaritmeille:
  1. Laske luvun (tässä 3+4i) itseisarvo (moduli) ja ota sen (reaalinen) logaritmi.
    Näin saat (kompleksisen) logaritmin reaaliosan.
  2. Laske luvun (tässä 3+4i) argumentti, se antaa (kompleksisen) logaritmin imaginaariosan. (Argumentin päähaara antaa logaritmin päähaaran.)
Lasketaan Matlabilla:
w=3+4*i
modw=sqrt(3^2+4^2)
abs(w)               % Tarkistetaan, että Matlabin abs toimii kompleksiluvuilla, tottakai!
phii=atan(4/3)
atan2(4,3)           % 2-argumenttinen arcustangentti, joka valitsee haaran oikein.
angle(w)             % Argumentin päähaara on sekin ohjelmoitu Matlabiin.
                     % Kaikki antavat saman. Yksiargumenttinen atan antaa tässä tapauksessa
                     % myös oikean tuloksen, kuten päättelimme. Yleisesti ei, vaan  
                     % siihen voidaan joutua lisäämään + tai - pi
log(5)
Tässä yllä olevien komentojen tulokset:
w =
   3.0000 + 4.0000i
modw =
     5
ans =
     5
phii =
    0.9273
ans =
    0.9273
ans =
    0.9273
» 
Lasketaan suoraan soveltamalla Matlab:n log-funktiota komplekslukuun:
» log(w)
ans =
   1.6094 + 0.9273i
» log(5)
ans =
    1.6094
Siis kaikki toimii, kuten pitää. Näemme, että Matlab:n log-funktio laskee kompleksisen logaritmin päähaaran, kuten luonnollista on.

Huomautus päähaarasta. Käyttämämme (argumentin ja logaritmin) päähaara (-pi,pi] on varsin yleisesti käytetty, mutta tämä on sopimuskysymys. Joissakin oppikirjoissa käytetään päähaarana väliä (0,2pi] (tai [0,2pi)).

Tehdään vielä sama lasku uudestaan yleisesti

Haluamme laskea Log z:n mielivaltaiselle zepsilonC\{0}. Kyseessä on siis yhtälön
       ew = z 
ratkaiseminen w:n suhteen, kun zepsilonC\{0} on annettu.

Olkoon z= r e, ja merkitään w=u+iv. Tällöin siis:

   eueiv = r e.
Aivan kuten äsken, näemme, että:
   u = ln r,  v= φ = Arg z.
Muut logaritmin haarat saadaan lisäämällä imaginaariosaan v 2pi:n monikertoja. Matlab-ajo: demolog.m
% addpath /home/apiola/opetus/materiaali03/complex
% Laskentaa kompleksisilla logaritmeilla.
% Matlabin funktio log on logaritmin päähaara, siis luentomerkinnöissä
% (ja KRE:ssä) LN.

  % Syötteet:
     log(-1)
     log(i)
     log(3+4*i)
     moduuli=log(5)
     argumentti=angle(3+4*i)
     atan(4/3)
     atan2(4,3)
     log(2)

     % Syötteet ja tuosteet:
>> log(-1)
ans =
        0 + 3.1416i        % pi*i
>>      log(i)
ans =
        0 + 1.5708i        % i*pi/2
>>      log(3+4*i)
ans =
   1.6094 + 0.9273i
>> moduuli=log(5)
moduuli =
    1.6094
>>      argumentti=angle(3+4*i)
argumentti =
    0.9273
>>      atan(4/3)
ans =
    0.9273
>>      atan2(4,3)
ans =
    0.9273

>>      log(2)     % Posit. reaaliluvun log ja kompleksisen logaritmin
  ans =            % päähaara ovat samat, koska posit. reaaliluvun
    0.6931         % arg = 0


Heikki K Apiola