Vakiokertoimisen lineaariyhtälön karakteristisen yhtälön kompleksiset juuret

Tarkastelun kohteena olkoon kertalukua n oleva vakiokertoiminen homogeeninen differentiaaliyhtälö:

n = 3

diffyht =  
      Sum[(Subscript[a, k]) D[y[x], {x, k}], {k, 0, n}]  ==  0

Tämän karakteristinen yhtälö saadaan sijoittamalla yhtälöön yrite y  =  (e^(r x)) ja jakamalla sijoittamisen jälkeen eksponenttitekijä pois. Samaan tulokseen päästään korvaamalla differentiaaliyhtälössä derivaatat vastaavilla muuttujan r potensseilla:

karaktyht =  
      diffyht /. 
        Table[D[y[x], {x, k}] -> r^k, {k, 0, n}]

Kyseessä on polynomiyhtälö, jonka juuret (Subscript[r, 1]), (Subscript[r, 2]) jne. antavat differentiaaliyhtälön perusratkaisut y  =  (e^((Subscript[r, 1]) x)), y  =  (e^((Subscript[r, 2]) x)) jne. Oletetaan, että yhtälöllä on kompleksinen juuripari \(TraditionalForm\`r\_1\  = \ α\  + \ β\ i\), \(TraditionalForm\`r\_2\  = \ α\  - \ β\ i\), ja pyritään osoittamaan, että tällöin vastaaviksi perusratkaisuiksi kelpaavat \(TraditionalForm\`e\^\(α\ x\)\ \(sin(β\ x)\)\) ja \(TraditionalForm\`e\^\(α\ x\)\ \(cos(β\ x)\)\). Koska \(TraditionalForm\`r\_1\  = \ α\  + \ β\ i\) ja \(TraditionalForm\`r\_2\  = \ α\  - \ β\ i\) ovat juuria, seuraavat ehdot toteutuvat:

komplehdot =  
      ComplexExpand[{karaktyht /. 
            r -> α + I β, 
          karaktyht /. 
            r -> α - I β}]

Yhtälöissä esiintyvät vakiot ovat kaikki reaalisia, jolloin kahdesta kompleksisesta ehdosta saadaan periaatteessa neljä reaalista ehtoa asettamalla kummankin reaali- ja imaginaariosa erikseen = 0. Erilaisia ehtoja saadaan kuitenkin vain kaksi, kuten pitääkin: Jos nimittäin reaalikertoimisella polynomiyhtälöllä on juurena α  +  β i, myös liittoluku on juuri. Reaalisten ehtojen esiin poimiminen on yksinkertaisinta tehdä hiirellä. Se voidaan tehdä myös Mathematican keinoin. Tämä on hieman monivaiheista, koska Mathematica kohtelee muuttujia normaalisti kompleksisina ja tämän johdosta kertoimet on erikseen määriteltävä reaalisiksi määreellä Element[muuttujat,Reals]. Merkintä [[1]] viittaa listan ensimmäiseen elementtiin, ts. edelliseen kahdesta yhtälöstä.

muuttujat =  
      Flatten[{Table[
            (Subscript[a, k]), {k, 0, n}], α, β}]

reaaliosaehdot =  
      Simplify[Map[Re, komplehdot, {2}], 
        Element[muuttujat, Reals]]

imagosaehdot =  
      Simplify[Map[Im, komplehdot, {2}], 
        Element[muuttujat, Reals]]

ehdot =  {reaaliosaehdot[[1]], 
        imagosaehdot[[1]]}

Sijoitetaan tutkittavat perusratkaisut differentiaaliyhtälöön:

sij =  {diffyht /. 
          y -> Function[x, Exp[α x] Sin[β x]], 
        diffyht /. 
          y -> Function[x, 
              Exp[α x] Cos[β x]]}

Ongelmana on, toteutuvatko nämä yhtälöt, kun oletetaan, että α ja β toteuttavat edellä johdetut ehdot:

Simplify[sij, ehdot]

Molemmat yhtälöt näyttävät olevan tosia, ja vastaavat perusratkaisut siis todella ovat \(TraditionalForm\`e\^\(α\ x\)\ \(sin(β\ x)\)\) ja \(TraditionalForm\`e\^\(α\ x\)\ \(cos(β\ x)\)\).

Symbolisissa laskentajärjestelmissä kuten Mathematicassa on suhteellisen hyvät työkalut (usean muuttujan) polynomiehtojen käsittelyyn; taustalla ovat ns. Gröbnerin kannat. Probleeman monimutkaistuessa laskennan raskaus kuitenkin kasvaa nopeasti.

Kompleksisten juurten tapausta voidaan käsitellä myös toisin. Koska kompleksiluvut toteuttavat samanlaiset laskusäännöt (derivointisäännöt mukaanluettuina) kuin reaaliluvutkin, voidaan ajatella, että kirjoitetaan differentiaaliyhtälön yleinen ratkaisu kompleksisten eksponenttifunktioiden avulla:

komplratk =  
      C[1] Exp[(α + I β) x]  +  
        C[2] Exp[(α - I β) 
              x]

Tämä kehitetään käyttäen eksponenttifunktion laskusääntöä \(TraditionalForm\`e\^\(x + y\)\  = \ e\^x\ e\^y\), joka on voimassa myös kompleksitapauksessa, ja sen jälkeen sovelletaan Eulerin kaavaa (e^(i u))  =  
        cos u  +  i sin u. Laskun voi tehdä käsin tai käyttämällä sopivaa Mathematican funktiota:

trigratk =  ComplexExpand[komplratk]

Tämä todellakin näyttää sisältävän haluttua muotoa \(TraditionalForm\`e\^\(α\ x\)\ \(sin(β\ x)\)\) ja \(TraditionalForm\`e\^\(α\ x\)\ \(cos(β\ x)\)\) olevia termejä. Näiden kertoimet ovat

sinkerroin =  
      Coefficient[trigratk, 
        Exp[α x] Sin[β x]]

coskerroin =  
      Coefficient[trigratk, 
        Exp[α x] Cos[β x]]

Ratkaisu voidaan sieventää antamalla näille kertoimille nimet C[3] ja C[4]:

uudetvakiot =  
      Solve[{sinkerroin == C[3], 
          coskerroin == C[4]}, {C[1], C[2]}]

trigratk /. First[uudetvakiot] // Simplify

C[1] ja C[2] sekä toisaalta C[3] ja C[4] ovat symmetrisessä asemassa. Jos kumpi tahansa pari valitaan mielivaltaisesti, toinen pari määräytyy.

SKK 30.04.2001