Responsible for this page: Sune Söderkvist , sune@isy.liu.se
Page last update: 2010-09-01

[ Go to content ] [ Help ] [ Information about accessability ]
På svenska | A to Z Maps Web overview Contact us
Go to LiU.se

Användning av MatLab för ekvationslösning

Sune Söderkvist, sune@isy.liu.se, augusti 1999

Detta dokument finns också som PDF-dokument.

MatLab är ett interaktivt program för numerisk beräkning, signalanalys och grafritning; allmänt använt inom såväl högskola som industri. Hela konceptet i MatLab bygger på matrishantering.

  1. Starta MatLab.
  2. Inmatning av matriser i MatLab:

    Skriv: A=[a b c;d e f;g h k] <return>

    Resultat: tex2html_wrap_inline3916

    OBS!

    • Mellanslag mellan varje koefficient i en rad, t.ex. a b c.
    • Varje rad i matrisen åtföljs av semikolon (;) eller med <return>. Det senare kan vara att föredra vid stora matriser.
    • Hakparenteser omger hela uttrycket.
    • Koefficienterna a,b,c etc. får vara reella eller komplexa.
    OBS! Vid långa rader kan raden brytas och inmatningen fortsättas direkt på nästa rad genom att vid slutet av aktuell rad göra ett mellanslag följt av tre punkter (...) och <return>.
  3. Vid inmatning av komplexa koefficienter kan såväl i som j användas som beteckning för den komplexa enheten.
    Observera dock att MatLab alltid svarar med i.
  4. Komplexa koefficienter tex2html_wrap_inline3920 inmatas som a+j*b respektive A*exp(j* tex2html_wrap_inline3922 ), eller som a+i*b respektive A*exp(i* tex2html_wrap_inline3922 ).

    OBS!

    • Multiplikationstecknet * måste alltid skrivas ut.
      Undantag: Om j multipliceras med ett tal där talet står först. T.ex. a=3+2j (* behövs ej) men 3+j*2 (* måste skrivas ut).
    • b*j uppfattas på samma sätt som j*b av MatLab.
  5. Lösningen till ekvationssystemet tex2html_wrap_inline3928 där A är en tex2html_wrap_inline3932 -matris och där x och B är tex2html_wrap_inline3938 -matriser (vektorer) kan enligt appendix A i läroboken (S. Söderkvist: Kretsteori & Elektronik) bestämmas som tex2html_wrap_inline3940 där tex2html_wrap_inline3942 är inversmatrisen till A. (Fungerar även när matrisen har komplexa koefficienter.)

    I MatLab utföres denna operation med kommandot \ (backslash).

Ex. Lös ekvationsnystemet

displaymath3794

Lösning: Skriv

    A=[1 2 3+4j;4 5 6*exp(j*pi/2);7 8 sqrt(9)]; <return>
    B=[10+5j;11*exp(j*pi);12+exp(j*pi/3)];      <return>
    x=A\B                                       <return>
MatLab svarar då
    x =

     -23.4283 +17.0951i
      21.2370 -16.3169i
       2.2007 + 3.9120i
Dvs.

eqnarray3813

OBS!

  • Semikolon innan <return> innebär att resultatet av aktuell operation ej skrivs ut på datorns skärm.
  • Konstanten tex2html_wrap_inline3946 finns fördefinierad i MatLab och kallas pi.
  • MatLab använder decimalpunkt.
  • Vid inmatning av t.ex. koefficienten (3+4j) i matrisen får ej mellanslag förekomma före eller efter plustecknet, eftersom ett mellanslag skiljer två olika koefficienter från varandra.

Kommentar: Ekvationssystemet kan alternativt lösas med kommandosekvensen inv(A)*B, där kommandot inv beräknar inversmatrisen tex2html_wrap_inline3942 . Denna metod bör dock undvikas i MatLab eftersom dålig noggrannhet erhålls om matrisen A är nära singulär.
A\B ger bättre noggrannhet.