Innehåll 1 Vad är MATLAB? 1.1 Vad kan man göra med MATLAB? 1.2 Några MATLAB–exempel 1 1 2 2 Grunderna i MATLAB 2.1 Utvecklingsmiljön i MATLAB 2.2 Hjälpkommandon och demonstrationsexempel 2.3 Introduktion till matriser i MATLAB 2.4 Variabler i MATLAB 2.5 Aritmetiska uttryck och matematiska funktioner 2.6 Utskriftsformat 2.7 Spara resultat, lagra och hämta data 2.8 M–filer: kommando- och funktionsfiler 17 17 20 22 26 29 36 37 39 3 Matrisoperationer 3.1 Indexering av matriser 3.2 Addition och subtraktion 3.3 Multiplikation 3.4 Division 3.5 Transponering och konjugering 3.6 Elementvisa aritmetiska operationer 3.7 Elementvisa funktioner 3.8 Potenser och funktioner av matriser 3.9 Relationsoperatorer 3.10 Logiska operatorer 3.11 Logiska funktioner för matriser 43 43 45 45 48 49 50 51 52 53 55 56 4 Att skapa nya matriser 4.1 Matrisbyggande funktioner 4.2 Tomma matriser 4.3 Generering av vektorer och delmatriser 4.4 Speciella matriser i MATLAB 59 59 68 70 73 5 Strängar och andra datatyper 5.1 Datatyper 5.2 Strängar 5.2.1 Tilldelning 5.2.2 Strängkommandon 5.2.3 Utskrift och inläsning 5.2.4 Evaluering av strängar 5.3 Heltal 5.4 Bitvisa operationer 5.5 Mängder 77 77 80 80 81 88 90 94 94 95 vi Innehåll 5.6 5.7 Cellmatriser Strukturer 96 99 6 Dataanalys och statistik 6.1 Maximum och minimum 6.2 Summa, produkt och differens 6.3 Statistikkommandon 6.4 Sortering 6.5 Histogram och stapeldiagram 6.6 Triangulering av områden 6.7 Polygonanalys 101 101 102 105 108 109 112 113 7 Linjära ekvationssystem 7.1 Determinant, invers, rang mm 7.2 Lösning av ekvationssystem och LU–uppdelning 7.3 Trappstegsmatriser 7.4 Cholesky–uppdelning 7.5 QR–faktorisering 7.6 Normer och konditionstal 7.7 Över– och underbestämda ekvationssystem 115 115 118 122 124 125 129 132 8 Egenvärden och egenvektorer 8.1 Beräkning av egenvärden och egenvektorer 8.2 Övre Hessenberg–form, QR– och QZ–uppdelning 8.3 Schur–uppdelning och singulärvärdesuppdelning 137 137 142 146 9 Glesa matriser 9.1 Inledning och bakgrund 9.2 Att skapa och omvandla glesa matriser 9.3 Operationer på glesa matriser 9.4 Specialfall av glesa matriser 9.5 Ekvationssystem med gles matris 151 151 151 153 156 159 10 Analys av funktioner, interpolation och kurvanpassning 10.1 Polynom i MATLAB 10.2 Nollställen till funktioner 10.3 Minimum och maximum av funktioner 10.4 Interpolation, kurvanpassning och ytanpassning 10.5 Signalanalys 165 165 168 171 174 182 11 Integraler och differentialekvationer 11.1 Integralberäkning 11.2 Differentialekvationer 11.2.1 Begynnelsevärdesproblem 11.2.2 Fördröjda differentialekvationer (delay differential equations) 11.2.3 Randvärdesproblem 11.2.4 Partiella differentialekvationer 185 185 188 188 196 198 203 Innehåll vii 12 Programmering i MATLAB 12.1 Översikt och grundläggande begrepp 12.2 Logiska uttryck 12.3 Villkorssatser 12.3.1 if-satsen 12.3.2 switch-satsen 12.4 Repetitionssatser 12.4.1 for-satsen 12.4.2 while-satsen 12.4.3 break- och continue-satserna 12.5 Felhantering 12.6 Parametrar till funktioner 12.6.1 Antal argument 12.6.2 Funktion som parameter 12.7 Underfunktioner och privata funktioner 12.8 Variablers räckvidd och livstid 12.9 Mer om M-filer 12.10Objektorienterad programmering 12.11Hjälpverktyg för programutveckling 12.11.1 Felsökning 12.11.2 Versionshantering 12.11.3 Tidtagning 207 207 208 208 208 211 212 212 217 219 221 223 223 227 231 231 233 236 245 245 250 250 13 Grafik 13.1 Grafikfönstret 13.2 2D–grafik 13.3 Att rita i andra koordinatsystem och i det komplexa talplanet 13.4 Manipulation av grafik och fönster 13.5 Att skapa ytnät och rita nivåkurvor 13.6 3D–grafik 13.7 Grafer av funktioner av två variabler 13.8 Ljus–, vy– och kamerainställningar 13.9 Grafer av funktioner av tre variabler 13.10Grafer av vektorfält 13.11Färgkontroll 13.12Film och bildspel 253 253 256 265 268 280 286 289 296 303 306 309 316 14 Avancerad grafik 14.1 Uppbyggnaden av en bild 14.2 Grafiska objekt 14.2.1 Allmänna funktioner 14.2.2 Gemensamma attribut och metoder 14.2.3 Rotobjektet 14.2.4 Figurobjekt 14.2.5 Ritområdesobjekt 14.2.6 Uicontrol-objekt 14.2.7 Uimenu-objekt 14.2.8 Uicontextmenu-objekt 14.2.9 Bildobjekt 321 321 323 325 330 332 334 339 346 349 351 352 viii Innehåll 14.2.10 Linjeobjekt 14.2.11 Polygonobjekt 14.2.12 Ytobjekt 14.2.13 Rektangelobjekt 14.2.14 Textobjekt 14.2.15 Belysningobjekt 14.3 Grafiska användargränssnitt 14.3.1 Guide 14.3.2 Huvudfönstret i Guide 14.3.3 Egenskapseditorn 14.3.4 Justeringsverktyget 14.3.5 Svarsfunktioner 14.3.6 Menyverktyget 354 355 362 365 366 369 371 377 378 380 382 383 385 15 MATLAB i samverkan med andra programspråk 15.1 MATLAB med Fortran och C, inledning 15.2 Kompilering av C och Fortran-filer 15.3 MATLAB och C 15.3.1 Hantering av mxArray-er i C 15.3.2 Hantering av MAT-filer i C 15.3.3 Anrop av MATLAB från C 15.3.4 Anrop av C från MATLAB 15.4 MATLAB och Fortran 15.4.1 Hantering av mxArray-er i Fortran 15.4.2 Hantering av MAT-filer i Fortran 15.4.3 Anrop av MATLAB från Fortran 15.4.4 Anrop av Fortran från MATLAB 15.5 MATLAB och Java 15.5.1 Inledning 15.5.2 Hur MATLAB hittar Java-klasser 15.5.3 Konstruktion av Java-objekt 15.5.4 Anrop av metoder 15.5.5 Åtkomst av instans- och klassvariabler 15.5.6 Arrayer 15.5.7 Java-metoder som påverkar MATLABs kommandon 15.5.8 Användargränssnitt i Java 387 387 388 390 390 399 402 404 410 410 412 414 415 417 417 417 419 420 421 423 425 425 16 Systemkommandon och filhantering 16.1 Systemkommandon 16.2 Tidsfunktioner 16.3 Utskrift på papper eller fil 16.4 Filhantering 16.5 MATLAB och avancerad filhantering 16.6 Ljud 431 431 435 441 443 448 454 A Snabbreferens för vanliga kommandon och funktioner 457 Innehåll ix B Introduktion till linjär algebra B.1 Vektorer B.2 Matriser, inledning B.3 Matrisbegrepp B.4 Matrisklasser B.5 Speciella matriser och hjälpmatriser B.6 Normer för vektorer och matriser B.7 Faktorisering av matriser 461 461 464 465 467 468 469 471 C MATLAB–toolboxar och Simulink 473