Handleiding MATLAB W en BMT trimester 1.1., 1.2. F.J.L. Martens J.C. van der Meer Faculteit Wiskunde en Informatica



Vergelijkbare documenten
Matlab introductie. Kees Vuik

Korte handleiding Maple bij de cursus Meetkunde voor B

Korte handleiding Maple, bestemd voor gebruik bij de cursus Wiskunde

Derive in ons wiskundeonderwijs Christine Decraemer

Constanten. Variabelen. Expressies. Variabelen. Constanten. Voorbeeld : varid.py. een symbolische naam voor een object.

Matlab-Introductie (les 1)

Beknopte handleiding voor Derive 5.0 for Windows

Aantekeningen over MATLAB

Uiteenzetting Wiskunde Grafische rekenmachine (ti 83) uitleg

1.0 Voorkennis. Voorbeeld 1: Los op: 6x + 28 = 30 10x.

3.0 Voorkennis. Voorbeeld 1: Los op: 6x + 28 = 30 10x.

maplev 2010/7/12 14:02 page 15 #17 Nadere detaillering van een aantal zaken van Module 1 Geen,, " ", \, save, read, protect, unprotect

Inhoud college 5 Basiswiskunde Taylorpolynomen

1.0 Voorkennis. Voorbeeld 1: Los op: 6x + 28 = 30 10x.

2. Een eerste kennismaking met Maxima

Hoofdstuk 1. Illustratie 2

1.1 Tweedegraadsvergelijkingen [1]

Rekenen met de GRM. 1 van 1. Inleiding: algemene zaken. donkerder. lichter

8. Differentiaal- en integraalrekening

2.1 Lineaire formules [1]

Introductie in R.

Tweede Programmeeropgave Numerieke Wiskunde 1 De golfplaat Uiterste inleverdatum : vrijdag 16 mei 2003

Basisvaardigheden algebra. Willem van Ravenstein Den Haag

Hoofdstuk 3. Matrices en stelsels. 3.1 Matrices. [[1,7]],[[12,8] ] of [ 1, 7; 12,8 ] bepaalt de matrix

15.1 Oppervlakten en afstanden bij grafieken [1]

5. Vergelijkingen Vergelijkingen met één variabele Oplossen van een lineaire vergelijking

Enkele voorbeelden volstaan. Zie verder de Help-file van Matlab.

Formules in Maple T.A. voor studenten

In dit hoofdstuk komen korte onderwerpen aan bod die we uitwerken met DERIVE. Zo leer je heel wat functies van DERIVE kennen.

1. (a) Gegeven z = 2 2i, w = 1 i 3. Bereken z w. (b) Bepaal alle complexe getallen z die voldoen aan z 3 8i = 0.

1. Een van mijn collega s, liet een mooi verhaal zien: De opgave was: Los op ln(x + 2) ln(x + 1) = 1.

Korte handleiding Maple, bestemd voor gebruik bij de cursus Wiskunde

Berekeningen op het basisscherm

Uitwerkingen Rekenen met cijfers en letters

Lesbrief GeoGebra. 1. Even kennismaken met GeoGebra (GG)

11.0 Voorkennis. Optellen alleen bij gelijknamige termen: 3a 3 + 4a 3 = 7a 3. Bij macht van een macht exponenten vermenigvuldigen: (a 5 ) 4 = a 20

Trillingen en geluid wiskundig. 1 De sinus van een hoek 2 Uitwijking van een trilling berekenen 3 Macht en logaritme 4 Geluidsniveau en amplitude

Eerste serie opgaven Systeemtheorie

Numerieke benadering van vierkantwortels

Hoofdstuk 2: Grafieken en formules

PC les 1: MATLAB gebruiken

UNIVERSITEIT TWENTE Faculteit Elektrotechniek, Wiskunde en Informatica

12. Uitwerkingen van de opgaven

Bijlage Inlezen nieuwe tarieven per verzekeraar

Een korte samenvatting van enkele FORTRAN opdrachten

II. ZELFGEDEFINIEERDE FUNCTIES

UNIVERSITEIT TWENTE Faculteit Elektrotechniek, Wiskunde en Informatica

Paragraaf 1.1 : Lineaire verbanden

Berekeningen op het basisscherm

Handleiding gebruik van Wortel TU/e

Wetenschappelijk Rekenen

OPPERVLAKTEBEREKENING MET DE TI83

Basistechnieken TI-84 Plus C Silver Edition

Verbanden en functies

10.0 Voorkennis. Herhaling van rekenregels voor machten: a als a a 1 0[5] [6] Voorbeeld 1: Schrijf als macht van a:

Datastructuren Programmeeropdracht 3: Expressies. 1 Expressies. Deadline. Dinsdag 8 december 23:59.

Functiewaarden en toppen

Samenvatting Wiskunde B

Computerrekenpakket Maple zesde jaar

UNIVERSITEIT TWENTE Faculteit Elektrotechniek, Wiskunde en Informatica

Deel 2. Basiskennis wiskunde

Willem van Ravenstein

Het installatiepakket haal je af van de website

12.0 Voorkennis. Voorbeeld 1: Los de vergelijking sin(a) = 0 op. We zoeken nu de punten op de eenheidscirkel met y-coördinaat 0.

1. Introductie tot SPSS

Een spoedcursus python

TI-SMARTVIEW. Installeren op Windows PC

3 Wat is een stelsel lineaire vergelijkingen?

1.1 Rekenen met letters [1]

Berekeningen op het basisscherm

Handleiding bij de Booktest Generator

UNIVERSITEIT TWENTE Faculteit Elektrotechniek, Wiskunde en Informatica

6.1 Eenheidscirkel en radiaal [1]

Checklist Wiskunde B HAVO HML

13. Symbool-, Lijnstijlbibliotheek (Resource Editor)... 1

Hoofdstuk 7 - veranderingen. getal & ruimte HAVO wiskunde A deel 2

Basiskennis lineaire algebra

1 Rekenen in eindige precisie

Controle structuren. Keuze. Herhaling. Het if statement. even1.c : testen of getal even of oneven is. statement1 statement2

6. Functies Definities en gebruik van functies/variabelen

Prof. dr. W. Guedens Lic. M. Reynders

PROS1E1 Gestructureerd programmeren in C Dd/Kf/Bd

(x x 1 ) + y 1. x x k+1 x k x k+1

De eerste stappen met de TI-Nspire 2.1 voor de derde graad

TRILLINGEN EN GOLVEN HANDOUT FOURIER

Landelijk Indicatie Protocol (LIP)

De grafische rekenmachine en de afgeleide

In dit document staat beschreven hoe je de meetgegevens vanuit Coach kunt opslaan en later in kunt lezen in Excel en hier een grafiek van kunt maken.

Opgaven bij de cursus Relativiteitstheorie wiskunde voorkennis Najaar 2018 Docent: Dr. H. (Harm) van der Lek

Functies. Verdieping. 6N-3p gghm

1. Orthogonale Hyperbolen

INSTALLATIE IN PRINT INSTALLEREN. Aan de slag met Communicate In Print

HP Prime: Functie App

Linalg.nb 1. Werk het notebook aandachtig door en maak de (genummerde) oefeningen aan het einde van elke sectie. Succes!

Inhoud college 6 Basiswiskunde

Wortels met getallen en letters. 2 Voorbeeldenen met de (vierkants)wortel (Tweedemachts wortel)

Een eerste kennismaking met Mathematica

Voorkennis wiskunde voor Biologie, Chemie, Geografie

Project Dynamica: oefenopgaven met R

UNIVERSITEIT TWENTE Faculteit Elektrotechniek, Wiskunde en Informatica

Transcriptie:

Handleiding MATLAB W en BMT trimester 1.1., 1.2. F.J.L. Martens J.C. van der Meer Faculteit Wiskunde en Informatica 2000/2001

2

Inhoudsopgave 1 Deze handleiding 7 2 Basiselementen van MATLAB 9 1 Het pakket MATLAB............................... 9 2 Het starten en stoppen............................... 9 3 Opdrachten in MATLAB............................. 10 4 Het afbreken van berekeningen of van uitvoer.................. 12 5 Onvolledige opdrachten.............................. 12 6 Variabelen...................................... 13 7 Het opslaan van databestanden.......................... 14 8 Het opslaan van de tekst van een MATLABsessie................ 14 9 Het beheer van files en het zoekpad........................ 15 10 Wiskundige expressies............................... 16 11 De arraystructuur................................. 18 12 Arrays met één rij of één kolom.......................... 19 13 Array-operaties in MATLAB........................... 20 13.1 Algebraïsche array-operaties........................ 20 13.2 Relationele array-operaties........................ 23 13.3 Andere array-operaties........................... 24 13.4 Transponeren................................ 26 14 Grafieken...................................... 27 15 Script files...................................... 29 16 Eigen functies.................................... 30 3

4 INHOUDSOPGAVE 17 De helpfaciliteiten................................. 31 18 Opgaven....................................... 33 3 De numerieke gereedschapskist 35 1 Inleiding....................................... 35 2 De grafiek...................................... 35 3 De nulpunten.................................... 36 4 De extrema..................................... 36 5 Numerieke integratie................................ 38 6 Opgaven....................................... 39 4 De symbolische gereedschapskist 41 1 Inleiding....................................... 41 2 Expressies met variabelen............................. 42 3 Substitutie..................................... 43 4 Differentiëren en integreren............................ 44 5 Numerieke waarden................................. 45 6 Het manipuleren van expressies.......................... 46 7 Symbolen, strings en getallen........................... 47 8 Opgaven....................................... 49 5 Lineaire Algebra 53 1 Inleiding....................................... 53 2 Matrices....................................... 53 2.1 Wat is een matrix?............................. 53 2.2 Het invoeren van matrices......................... 54 2.3 Matrices met symbolische elementen................... 55 2.4 Het invoeren van vectoren......................... 55 2.5 Bijzondere matrices............................ 57 2.6 Indices.................................... 58 2.7 Matrixbewerkingen in MATLAB..................... 59

INHOUDSOPGAVE 5 2.8 Matrixfuncties in MATLAB........................ 62 3 Oplossen van stelsels lineaire vergelijkingen................... 63 3.1 Het commando A \ b............................ 63 3.2 De rijgereduceerde trapvorm....................... 64 3.3 Het oplossen van stelsels met de Symbolic Toolbox........... 65 4 Numerieke aspecten bij gebruik van MATLAB................. 66 4.1 Getalrepresentatie en afrondfouten, een voorbeeld........... 66 4.2 Datafouten, een voorbeeld......................... 67 4.3 Efficiëntie.................................. 68 5 MATLAB en Lineaire Algebra.......................... 69 5.1 Opdrachten................................. 69 6 Differentiaalvergelijkingen 71 1 M-files........................................ 71 1.1 M-files maken................................ 71 1.2 Script- en functionfiles........................... 71 2 Differentiaalvergelijkingen............................. 73 2.1 Het numeriek oplossen van differentiaalvergelijkingen.......... 73 2.2 Stelsels differentiaalvergelijkingen..................... 75 2.3 Het richtingsveld.............................. 76 2.4 Plotten van integraalkrommen...................... 77 3 Het symbolisch oplossen van differentiaalvergelijkingen............. 77 3.1 Eerste-orde differentiaalvergelijkingen.................. 77 3.2 Stelsels eerste-orde differentiaalvergelijkingen.............. 78 3.3 Hogere-orde differentiaalvergelijkingen.................. 79 4 MATLAB en differentiaalvergelijkingen - Opdrachten.............. 79 4.1 Opdrachten................................. 79 Index........................................ 82 Referenties..................................... 82

6 INHOUDSOPGAVE

Hoofdstuk 1 Deze handleiding Deze handleiding is bedoeld om u snel met enkele aspecten van MATLAB vertrouwd te maken. Het is de bedoeling dat u, verdeeld over twee trimesters in een viertal dagdelen met dit materiaal oefent. Doe dit samen met iemand anders, dat werkt efficiënter. Als u weinig met computers gewerkt heeft, dan zult u misschien niet alles in deze twee dagdelen af kunnen werken. Haal dit snel op een geschikt moment in! Het programma is als volgt: Trimester 1.1. dagdeel 1 De hoofdstukken De handleiding, Basiselementen van MATLAB en De numerieke gereedschapskist. dagdeel 2 De hoofdstukken De symbolische gereedschapskist. Trimester 1.2. dagdeel 1 Het hoofdstuk Lineaire Algebra. dagdeel 2 Het hoofdstuk Differentiaalvergelijkingen. De trainingen aan het begin van trimester 1.1 sluiten aan bij het college Calculus (2Y130) en de basisvaardigheden uit deze trainingen zullen in dit college, met name bij de oefeningen, verder worden ontwikkeld. Het eerste dagdeel in het tweede trimester sluit aan op het eerste college Lineaire Algebra (2Y650) en is de aanzet tot het gebruik van MATLAB bij lineaire algebra. Het tweede dagdeel in het tweede trimester sluit aan op het zevende college Lineaire Algebra (2Y650) en de colleges Dynamische systemen (4Q220) en Dynamica (4A230) en is een eerste aanzet voor het gebruik van MATLAB bij colleges in het derde trimester. MATLAB speelt een zeer belangrijke rol bij het OGO, het Onwerp Georiënteerd Onderwijs. Hierbij zult u MATLAB moeten gebruiken. Eventueel moet u zichzelf met behulp van de 7

8 HOOFDSTUK 1. DEZE HANDLEIDING MATLABdocumentatie commando s eigen maken om bepaalde berekeningen uit te kunnen voeren. Daarom is een goede beheersing van de elementaire MATLABcommando s essentieel. Iedere sectie is voorzien van oefeningen. Voer deze oefeningen nauwgezet uit en schrijf uw uitwerkingen op. Vermeld bij uw uitwerkingen de gebruikte MATLABopdrachten. Als u geen aantekeningen maakt, zijn de oefeningen volstrekt zinloos! Het is verstandig om uw aantekeningen te bewaren zodat u in de toekomst nog eens kunt naslaan hoe iets ook alweer moet. Aan het eind van een trimester moet u zo bedreven zijn in het gebruik van MATLAB, dat u het deel van de handleiding, dat bij de genoten trainingen hoort, niet meer hoeft in te kijken. De hulpfaciliteiten van MATLAB bieden ook alle informatie. Een belangrijk onderdeel van deze trainingen is het leren gebruiken van deze faciliteiten. We gaan ervan uit dat u met Windows95/98 vertrouwd bent. U moet in staat zijn om files te beheren. U moet ze kunnen aanmaken, vinden, veranderen en weggooien. Op uw machine moet MATLAB inclusief de Extended Symbolic Math Toolbox of de Symbolic Math Toolbox en een Internetbrowser staan. De versies van deze programma s doen minder ter zake. Een commando kan dus net iets anders werken dan in deze handleiding staat, maar met wat experimenteren komt u er vast wel uit. Er zijn enkele redenen om niet al te gedetailleerd te omschrijven hoe u MATLAB op moet starten, welke menukeuzes u moet maken, wat u moet invoeren en hoe de resultaten eruit zien. De eerste reden is dat op uw machine MATLAB op een andere manier geïnstalleerd kan zijn en dat uw versie net even anders is dan de versie die uitgangspunt is geweest bij deze handleiding. De tweede reden is dat bij iedere nieuwe versie op detailpunten de programma s veranderen. De helpfaciliteiten helpen u wel op de goede weg.

Hoofdstuk 2 Basiselementen van MATLAB 1 Het pakket MATLAB MATLAB is een pakket voor technische berekeningen. Met het pakket kunnen berekeningen, visualisaties en en zelfgeschreven programma s gecombineerd worden. MATLAB kan worden uitgebreid met zogenaamde toolboxes. In het algemeen zijn dit collecties MATLABfuncties die geschikt zijn voor bijzondere klassen van problemen. De (Extended) Symbolic Math Toolbox wijkt af. Deze toolbox bestaat voor een groot deel uit ingrediënten van het pakket Maple dat sterk is in formulemanipulatie. MATLAB voert berekeningen uit met behulp van matrices. Matrices zijn rechthoekige schema s van getallen en worden ook arrays genoemd. De Symbolic Math Toolbox wijkt nogal af van MATLAB zelf. Symbolische berekeningen maken nauwelijks gebruik van arrays. MAT- LABfuncties maken in tegenstelling van functies uit de Symbolic Math Toolbox gebruik van berekeningen met matrices. Om deze reden is het van belang om te weten of een gebruikte functie uit MATLAB of uit de Symbolic Math Toolbox is. Op voorhand zal dit niet duidelijk zijn, maar na geregeld gebruik van MATLAB zal dit duidelijk worden. 2 Het starten en stoppen Starten kan op verschillende manieren: Klik op Start en Run en type in de box de naam van de directory, waarin matlab.exe is opgeslagen, gevolgd door \matlab. Bij versie 5.3 van MATLAB is dit matlabr11\bin\matlab. Klik het MATLABicoon aan. In beide gevallen verschijnt het Command Window waarin opdrachten kunnen worden ingetypt na de MATLABprompt 9

10 HOOFDSTUK 2. BASISELEMENTEN VAN MATLAB >> Opdrachten worden afgesloten met de return -toets. De opdracht wordt dan door MATLAB uitgevoerd. Als MATLAB klaar is, dan verschijnt na eventuele uitvoer een nieuwe prompt. Er kan dan weer een opdracht gegeven worden. Het verlaten van MATLAB kan ook op verschillende manieren: Door het commando >> quit Via File\Exit MATLAB Oefening 2.1 Start MATLAB, bekijk de mededelingen op het scherm en verlaat het programma. 3 Opdrachten in MATLAB Na de MATLABprompt >> met de knipperende verticale streep, de cursor, kan een opdracht worden ingetikt. Na indrukken van de Return -toets wordt de opdracht uitgevoerd en verschijnt het resultaat eventueel op het scherm. Een opdracht en zijn resultaat ziet er als volgt uit: >> a = 1 + 2 + 3 a = 6 Het resultaat van 1 + 2 + 3 wordt aan de variabele a toegekend. Met deze variabele kan men verder rekenen. >> b = 2*a + a/3 b = 14 In MATLAB worden variabelen geïntroduceerd door er een waarde aan toe te kennen. Men kan dan met de variabele verder rekenen en er later eventueel weer een nieuwe waarde aan toekennen. Het is niet mogelijk om berekeningen uit te voeren met een variabele waaraan

3. OPDRACHTEN IN MATLAB 11 geen waarde is toegekend. Een opdracht hoeft niet met een toekenning van de vorm variabele = te beginnen. In zo n geval wordt het resultaat automatisch aan de variabele ans toegekend. Men kan dan met ans verder rekenen. >> 4*a + 1 25 >> ans*ans 625 Wilt u nu weten wat de waarde van a is, dan volstaat de volgende opdracht: >> a a = 6 MATLAB zet normaal de uitvoer onder de opdracht. De uitvoer wordt onderdrukt door achter de opdracht een puntkomma te plaatsen. Na uitvoering van de opdracht s = 1 + 2; ziet het scherm er als volgt uit >> s = 1 + 2; >> De variabele s heeft de waarde 3 gekregen. Als u de waarde van deze variabele wil weten, dan kunt u s opnieuw opvragen. >> s s = 3 Als een opdracht meer dan een regel beslaat, dan kunt u voor het eind van de regel drie punten neerzetten en de Return -toets indrukken. U kunt dan op de volgende regel verder gaan. Het scherm ziet er na het voltooien van de opdracht als volgt uit:

12 HOOFDSTUK 2. BASISELEMENTEN VAN MATLAB >> s = 1 + 2 +... 3 + 4 s = 10 Oefening 2.2 Het is de bedoeling dat u onderstaande opdrachten in de aangegeven volgorde uitvoert. Bedenk, alvorens een opdracht uit te voeren, wat er op het scherm verschijnt en wat het resultaat van de opdracht zal zijn. a. >> a = 1 + 2 + 3 + 4 + 5 + 6 b. >> b = 1 + 2 + 3 + 4 + 5 + 6; c. >> b + 3 d. >> 1 + 2 + 3 + 4 + 5 + 6 e. >> c = 10*ans 4 Het afbreken van berekeningen of van uitvoer Een langdurige berekening van MATLAB kan met de toetscombinatie Control-C worden afgebroken. Na deze combinatie komt er een nieuwe prompt. Nieuwe opdrachten kunnen weer worden uitgevoerd. Oefening 2.3 Evaluatievan de opdracht pause(30) heeft als effect dat MATLAB 30 seconden pauze houdt. Voer deze opdracht uit en pas snel de toetscombinatie Control-C toe. Wat is het effect? 5 Onvolledige opdrachten Als een opdracht onvolledig is en u drukt op de Return -toets, dan zijn er twee mogelijkheden: Er verschijnen foutmeldingen en een nieuwe MATLABprompt. U kunt weer opnieuw aan de slag. De knipperende cursor staat helemaal links aan het begin van de regel onder de opdracht. Er zijn dan twee mogelijkheden. De opdracht kan worden afgemaakt en vervolgens worden geëvalueerd. De toetscombinatie Control-C zorgt ervoor dat de invoering van de opdracht wordt afgebroken. Er verschijnt ook een nieuwe MATLABprompt.

6. VARIABELEN 13 Oefening 2.4 Door de opdracht a = [2,3,4] wordt aan de variabele a het array (2, 3, 4) toegekend. (a) Voer a = [2,3,4 in en druk op de Return -toets. Maak de opdracht af. (b) Voer a = [2,3,4 in en druk op de Return -toets. Onderbreek de invoering van de opdracht. 6 Variabelen De naam van een variabele moet met een letter beginnen. Daarna mag de naam uit een willekeurig aantal cijfers en/of letters bestaan. MATLAB maakt onderscheid tussen grote en kleine letters. MATLAB gebruikt enkele speciale variabelen: ans Deze variabele bevat de uitkomst van de laatste berekening die niet aan een andere variabele is toegekend. eps De waarde van deze variabele is ongeveer 2.2204 10 16 en wordt intern door MAT- LAB gebruikt. Verwar eps niet met de e-macht. Want e = exp(1) 2.7183. i Het complexe getal i met de eigenschap i 2 = 1. j Het complexe getal i. De notatie j voor het getal i komt veel voor. pi 3.14159... Inf De waarde is oneindig. Delen van 1 door 0, 1/0, levert Inf op. NaN Deze variabele is een representatie van Not a Number. Een berekening met NaN resulteert altijd in NaN. De opdracht 0/0 levert NaN op. Het commando workspace resulteert in een window met de naam Workspace Browser waarin alle door u zelf gebruikte variabelen vermeld staan. Er staat ook aangegeven tot welke klasse de variabelen behoren. Eventueel kunt u via dit window enkele variabelen verwijderen. Oefening 2.5 Gebruik in enkele opdrachten de variabelen u en v correct en verwijder deze vervolgens. Enkele andere belangrijke commando s voor het variabelenbeheer zijn: who geeft lijst met gebruikte variabelen. whos geeft lijst met gebruikte variabelen en extra informatie. clear verwijdert alle variabelen. clear x y verwijdert de variabelen x en y. Waarschuwing: Het is mogelijk om aan de MATLABvariabelen zelf een andere waarde toe te kennen. Berekeningen kunnen hierdoor beïnvloed worden. Geef nooit een andere waarde aan een MATLABvariabele. Als u per ongeluk aan een MATLABvariabele een andere waarde geeft, dan kunt u deze waarde verwijderen met behulp van clear of de de Workspace Browser.

14 HOOFDSTUK 2. BASISELEMENTEN VAN MATLAB 7 Het opslaan van databestanden Resultaten van berekeningen van MATLAB worden vaak elders weer opnieuw gebruikt. De waarden van variabelen kunnen bewaard worden in een.mat file. Dit gebeurt met de opdracht >> save filenaam waardoor alle gebruikte variabelen worden bewaard in de file met naam filenaam.mat. De extensie.mat hoeft niet opgegeven te worden. Hoeven er maar een aantal variabelen te worden opgeslagen, dan dienen die gespecificeerd te worden na de filenaam. De opgeslagen file kan in MATLAB worden ingelezen met de opdracht >> load filenaam waarbij de extensie.mat mag worden weggelaten. De variabelen met hun waarde kunnen nu weer gebruikt worden. Oefening 2.6 Voer de twee opdrachten >> f = 2 en >> g = 3 + f uit. Sla de variabelen f en g op in de file probeer.mat. Verlaat MATLAB, start MATLAB opnieuw op en laad de file probeer.mat. Kijk of de variabelen f en g bekend zijn. Waar is de file probeer.mat terecht gekomen? Verwijder de file probeer.mat. 8 Het opslaan van de tekst van een MATLABsessie Het is ook mogelijk om alle in- en uitvoer van een MATLABsessie in een tekstfile op te slaan. U kunt deze tekst niet voor een nieuwe sessie gebruiken, maar u kunt wel zien wat u allemaal gedaan heeft. De opdracht >> diary filenaam zorgt ervoor dat alle in- en uitvoer naar de file filenaam wordt weggeschreven. Met de opdracht >> diary off wordt het opslaan beëindigd. Na het beëindigen kunt u de file filenaam bekijken.

9. HET BEHEER VAN FILES EN HET ZOEKPAD 15 Oefening 2.7 Open een tekstfile afschrift om in- en uitvoer op te slaan. Voer de opdrachten >> f = 2*3 en >> g = f+2 uit en beëindig het opslaan van in- en uitvoer. Bekijk de inhoud van de file afschrift. Waar is de file terecht gekomen? Verwijder deze file. 9 Het beheer van files en het zoekpad Als MATLAB draait, dan is er een directory actief. Aangemaakte files in een MATLABsessie komen hier terecht tenzij er expliciet directories worden vermeld. In MATLAB kunt u opvragen welke directory actief is. >> pwd C:\MATLABR11\work De opdracht is een afkorting van path working directory. Het antwoord is natuurlijk afhankelijk van de installatie van MATLAB op uw machine en van de manier van opstarten. Er kan een andere directory, bijvoorbeeld C:\tmp, gekozen worden waarin de aangemaakte files terechtkomen. >> cd C:\tmp Bij het zoeken naar files doorloopt MATLAB een zoekpad. De directories waarin zelf gemaakte files staan, moeten in het zoekpad staan, want anders kan MATLAB de zelf gemaakte files niet terugvinden. Maak een directory D:\matlabtr op uw D-schijf. De opdracht >> matlabpath laat een lijst van alle directories zien waar MATLAB naar files zoekt. Het toevoegen gaat als volgt: >> addpath D:\matlabtr Het opnieuw opvragen van het zoekpad laat zien of het toevoegen gelukt is. Het opstarten van MATLAB in de directory D:\matlabtr en het toevoegen van deze directory aan het zoekpad kan worden geautomatiseerd door een file startup.m in die directory

16 HOOFDSTUK 2. BASISELEMENTEN VAN MATLAB te plaatsten, waar ook al de file matlabrc.m staat. Deze file wordt dan bij het opstarten van MATLAB automatisch gelezen en de opdrachten erin worden uitgevoerd. >> which matlabrc C:\MATLABR11\toolbox\local\matlabrc.m In dit geval moet startup.m in C:\MATLABR11\toolbox\local worden gezet. Maak een tekstfile startup.m met de tekst % Voeg mijn directory met eigen M-files toe aan zoekpad. addpath D:\matlabtr % Ga naar mijn eigen directory. cd D:\matlabtr % Zet formaat voor papier op A4. set(0, DefaultFigurePaperType, a4 ) % Gebruik centimeters in plaats van inches. set(0, DefaultFigurePaperUnits, centimeters ) en zet deze file op de juiste plaats. Een regel achter een %-teken is commentaar. Het gebruik van deze file zorgt ervoor dat ook meteen enkele papierinstellingen worden veranderd. Verlaat MATLAB en start MATLAB opnieuw op. Controleer uw instellingen met onderstaande opdrachten. >> pwd D:\matlabtr >> get(0, DefaultFigurePaperType ) A4 Vanaf nu worden tijdens een MATLABsessie zelf gemaakte files zonder plaatsaanduiding automatisch naar D:\matlabtr geschreven en ook daar gezocht! 10 Wiskundige expressies Het invoeren van wiskundige expressies gaat niet letterlijk. De volgende tabellen maken duidelijk welke vertaalslag u moet uitvoeren. De variabelen in deze tabellen stellen getallen voor.

10. WISKUNDIGE EXPRESSIES 17 Bewerkingen standaard MATLAB a + b a + b a b a - b a b a * b a b a / b a b a ^ b Opmerking De volgorde van de bewerkingen in MATLAB is de gewone volgorde: Eerst machtsverheffen, dan vermenigvuldigen en delen en vervolgens optellen en aftrekken. Constanten Standaard MATLAB e exp(1) π pi i i of j inf of Inf Functies Standaard MATLAB Standaard MATLAB sin(x) sin(x) x sqrt(x) cos(x) cos(x) e x exp(x) tan(x) tan(x) ln(x) log(x) arcsin(x) asin(x) 10 log(x) log10(x) arccos(x) acos(x) x abs(x) arctan(x) atan(x) sign(x) sign(x) Opmerking De ronde haken ( en ) worden gebruikt om de volgorde van de berekeningen vast te leggen. Oefening 2.8 Bereken in MATLAB de volgende expressies: (a) 3 + 2 2 16 + 5 2 (b) 4 2/3 (c) log(e) (d) sin( π 4 ) Oefening 2.9 Geef de variabele x de waarde 2. Voer de expressies aan de linkerkant in MATLAB in en bereken deze. Het resultaat van de berekeningen staat aan de rechterkant.

18 HOOFDSTUK 2. BASISELEMENTEN VAN MATLAB Expressie x 3 6 x 1 + x 2 Resultaat 1.3333 0.8944 2 1 3 1.2599 e 1+x2 148.4132 x 3 sin(x 2 ) -6.0544 arctan(x) 1 + x 2 0.2214 11 De arraystructuur MATLAB gebruikt als basiseenheid voor het rekenen matrices ofwel arrays. Een array is een rechthoekige schema van getallen, die elementen worden genoemd, gerangschikt in m rijen en n kolommen: a 11 a 12... a 1n a 21 a 22... a 2n.... a m1 a m2... a mn. Een array kan op verschillende manieren worden ingevoerd. 1. Tussen [ en ] waarbij de elementen gescheiden worden door spaties of komma s en de rijen gescheiden worden door een puntkomma. De opdrachten zijn >> a = [1 2 3;4 5 6;7 8 9] of >> a = [1,2,3;4,5,6;7,8,9] 2. Tussen [ en ] waarbij de elementen gescheiden worden door spaties of komma s en de rijen steeds op een nieuwe regel met behulp van de Return -toets worden ingevoerd. De opdracht luidt nu >> a=[1 2 3 4 5 6 7 8 9] Het resultaat is dan a =

12. ARRAYS MET ÉÉN RIJ OF ÉÉN KOLOM 19 1 2 3 4 5 6 7 8 9 Met arrays kan men als volgt manipuleren: MATLAB Betekenis van opdracht a(1,2) Geef het element uit de eerste rij en de tweede kolom van a a(1,:) Geef de eerste rij van a. a(:,3) Geef de derde kolom van a. a(:,2)=[10;10;10] a(6) Verander de tweede kolom van a in een kolom met alleen maar tienen. Geef het 6 e element van de rij, ontstaan uit het aan elkaar plakken van de kolommen van a. 12 Arrays met één rij of één kolom Een array (matrix) met één rij wordt ook wel een rij of een rijvector genoemd, en een array (matrix) met één kolom een kolom of een kolomvector. Als het verschil tussen de opeenvolgende elementen van de rij steeds hetzelfde is, kan de rij ook gevormd worden door variabele = beginwaarde : stapgrootte : eindwaarde Hierbij is beginwaarde het eerste element van de rij, eindwaarde het laatste element van de rij en stapgrootte het verschil tussen de opeenvolgende elementen. Bijvoorbeeld >> x = 1:-.2:0 geeft de rij x = 1.0000 0.8000 0.6000 0.4000 0.2000 0 Als het verschil tussen de opeenvolgende elementen van de rij één is kan de stapgrootte worden weggelaten. Bijvoorbeeld >> x=1:5 geeft als resultaat de rij

20 HOOFDSTUK 2. BASISELEMENTEN VAN MATLAB x = 1 2 3 4 5 Men kan arrays (matrices, vectoren) samenvoegen tot nieuwe arrays. Rangschikt men de arrays in een rij, dan moet het aantal rijen in de arrays overeenkomen. Rangschikt men de arrays in een kolom, dan moet het aantal kolommen in de arrays overeenkomen. Het aaneenplakken van de arrays a = [2, 3, 4] en b = [6, 5] gaat als volgt: >> [a,b] 2 3 4 6 5 Elementen van rijen en kolommen kunnen worden aangegeven door te verwijzen naar de index. In dit geval kan men met één index volstaan. MATLABopdracht Resultaat b(1) 6, het eerste element van b. a([3,1]) [ 4 2 ], een array bestaande uit het 3e en 1e element van a. Oefening 2.10 Maak de rijvector met beginwaarde -1, eindwaarde 9 en stapgrootte 0.5. Oefening 2.11 Maak de rijvector met beginwaarde 9, eindwaarde 0 en stapgrootte 1. 13 Array-operaties in MATLAB Een array is een verzameling getallen gerangschikt in rijen en kolommen. Een arrayoperatie is een operatie (zoals de optelling of de vermeingvuldiging) die men op overeenkomstige elementen van twee arrays van dezelfde vorm toepast. Wanneer men een bewerking op alle elementen van één array toepast, dan spreekt men ook wel van een array-operatie. 13.1 Algebraïsche array-operaties De bewerkingen optellen en aftrekken worden automatische als arraybewerkingen opgevat. Na de toekenningsopdrachten >> a = [ 1, 2, 3]; b = [ 6, 5, 4]; levert het optellen van de arrays

13. ARRAY-OPERATIES IN MATLAB 21 >> a+b 7 7 7 en het aftrekken van de arrays >> a-b -5-3 -1 De arraybewerkingen vermenigvuldigen (*), delen (/) en machtsverheffen (ˆ) geeft men aan door voor het bewerkingsteken een punt (. ) te plaatsen. Dus >> a.*b 6 10 12 >> a./b 0.1667 0.4000 0.7500 >> a.^b 1 32 81 Bij al deze array-operaties gelden de volgende conventies: (1) Als bij een array-operatie een van de arrays gelijk is aan een getal, dan wordt dit getal gezien als een array waarvan ieder element gelijk is aan dat getal en waarvan de afmetingen gelijk zijn aan de afmetingen van het andere array. (2) Als ieder element van een array met hetzelfde getal vermenigvuldigd moet worden dan hoeft men geen punt voor het vermenigvuldigingsteken te zetten. Voorbeelden: >> 2.^b

22 HOOFDSTUK 2. BASISELEMENTEN VAN MATLAB 64 32 16 >> [2 2 2].^b 64 32 16 >> a./2 0.5000 1.0000 1.5000 3*a 3 6 9 Informatie over deze bewerkingen kan worden opgevraagd met het commando help arith. Het maken van een array van functiewaarden Beschouw de functie f(x) = x3 1 + x 2. We willen aan de variabele y de rijvector (f(0), f(0.2),..., f(1.8), f(2)) toekennen. maken we een array met de argumenten (0, 0.2,..., 1.8, 1). Eerst >> x = 0:0.2:2 x = Columns 1 through 7 0 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 Columns 8 through 11 1.4000 1.6000 1.8000 2.0000 Het maken van de rij van functiewaarden gaat met array-operaties! >> y = x.^3./ (1 + x.^2)

13. ARRAY-OPERATIES IN MATLAB 23 y = Columns 1 through 7 0 0.0077 0.0552 0.1588 0.3122 0.5000 0.7082 Columns 8 through 11 0.9270 1.1506 1.3755 1.6000 In feite wordt hier een rij van tellers componentsgewijs gedeeld door een rij van noemers. Oefening 2.12 (a) Voer de opdracht t = x.^3 / (1 + x.^2) uit. U krijgt geen foutmelding omdat u iets heel anders heeft uitgerekend! Opmerking: Ook al krijgt u uitvoer, wees altijd kritisch! (b) Voer de opdracht t = x^3./ (1 + x.^2) uit. Wat betekent de foutmelding? Oefening 2.13 Maak voor de volgende functies f het array (f(0), f(0.1),..., f(2)). (a) f(x) = x 2 + 2x + 1. (b) f(x) = (c) f(x) = 3x 1 + 3 x. x 1 + x. 13.2 Relationele array-operaties Relationele array-operaties zijn operaties waarbij arrays elementsgewijs worden vergeleken. Bijvoorbeeld voor de matrices A = ( 3 5 20 11 9 1 ) en B = ( 4 3 11 8 2 4 is de opdracht om te kijken welke elementen van A groter dan die van B zijn: ) >> A > B 0 1 1 1 1 0

24 HOOFDSTUK 2. BASISELEMENTEN VAN MATLAB Een 1 geeft aan welke elementen van A groter zijn dan de overeenkomstige van B. Het vergelijken van elementen kan alleen als de matrices A en B dezelfde afmetingen hebben of één van de matrices een getal is. Zo geeft >> A > 2 1 1 1 1 1 0 De relationele operaties staan in de volgende tabel. Operatie Betekenis > groter dan >= groter dan of gelijk aan < kleiner dan <= kleiner dan of gelijk aan == gelijk aan ~= niet gelijk aan Relationele operaties worden vaak gebruikt in combinatie met de functie find. Bekijk het resultaat van help find. Oefening 2.14 Voer de opdracht a = rand(5,5) uit. Deze opdracht genereert een array met 5 rijen en 5 kolommen waarbij ieder getal willekeurig gekozen wordt tussen 0 en 1. Maak een array met al die elementen van a, die kleiner dan 0.3 zijn. Hint: Gebruik bij deze opdracht find. 13.3 Andere array-operaties In MATLAB werken de wiskundige standaardfuncties sin, cos, sqrt, atan, asin etc. automatisch op array s. >> a = [1 2 3]; >> sin(a) 0.8415 0.9093 0.1411 >> sqrt(a) 1.0000 1.4142 1.7321

13. ARRAY-OPERATIES IN MATLAB 25 Beschouw de functie f(x) = x sin(x). Een rij van functiewaarden wordt met de volgende opdracht gegenereerd >> x = 0 : 0.25 : 4*pi; >> y = x.* sin(x) Het resultaat is een array met 51 functiewaarden. t Oefening 2.15 Beschouw de functie f(t) = 1 + t. Maak m.b.v. array-operaties en de functie sqrt de rij (f(0), f(0.1), f(0.2),..., f(1)). Enkele andere operaties zijn >> size(a) Het resultaat geeft de afmetingen van A aan, dat wil zeggen het aantal rijen en het aantal kolommen. >> sum(a) Deze functie berekent de kolomsommen van een rechthoekig array A en geeft deze sommen weer in een rijvector. (Een kolomsom is de som van de elementen van een kolom.) Als A een rij is, dan wordt de som van de elementen van A berekent. De functie >> prod(a) doet hetzelfde voor het product. Oefening 2.16 Geef een éénregelige opdracht die bij een array a het aantal elementen van a bepaalt die groter dan 5 zijn. Test uw opdracht uit met onderstaande arrays. (a) a = [1, 2, 3; 4, 5, 6; 7, 8, 9] (b) a = 1:10 (b) a = 10*rand(6,6) Dezelfde opdracht moet in alle drie de gevallen werken! Oefening 2.17 Geef een éénregelige opdracht die bij een array a de gemiddelde waarde van de elementen van a berekent. Test uw opdracht uit met onderstaande arrays.

26 HOOFDSTUK 2. BASISELEMENTEN VAN MATLAB (a) a = [1, 2, 3; 4, 5, 6; 7, 8, 9] (b) a = 1:10 (b) a = rand(6,6) Dezelfde opdracht moet in alle drie de gevallen werken! 13.4 Transponeren In een array (matrix) kunnen de rijen en kolommen verwisseld worden. Dit heet transponeren. Het resultaat wordt de getransponeerde array genoemd. Het transponeren gebeurt in MATLAB met de functie transpose. Na de opdrachten >> a = [1 2 3] a = 1 2 3 >> A = [1 2;3 4;5 6] A = 1 2 3 4 5 6 gaat het transponeren als volgt: >> transpose(a) en 1 2 3 >> transpose(a) 1 3 5 2 4 6

14. GRAFIEKEN 27 Het transponeren kan ook met behulp van de combinatie van een punt en een accent (. ). De opdrachten transpose(a) en A. leveren hetzelfde resultaat op. 14 Grafieken Grafieken worden getekend met de plot -opdracht. Het commando >> plot(v) waarbij v een rijvector is die de getallen v 1 t/m v N bevat, genereert een plaatje waarin de punten (1, v 1 ), (2, v 2 ) t/m (N, v N ) achtereenvolgens met lijnstukken verbonden zijn. Het commando >> plot(v,w) met v en w twee rijvectoren met evenveel elementen, tekent de punten (v i, w i ) en verbindt deze achtereenvolgens met lijnstukken. Het commando >> plot(v,w,x,y) tekent in dezelfde figuur de punten (v i, w i ) en (x i, y i ). sin(x) + 2x Veronderstel dat we de grafiek van de functie f(x) = 1 + x 2 willen tekenen. Het tekenen van de grafiek van f(x) met MATLAB gebeurt door een groot aantal punten (x i, f(x i )) achtereenvolgens met rechte lijnstukken te verbinden. De vloeiendheid van de grafiek wordt natuurlijk door het aantal punten bepaald. Het plotten van de grafiek kan met de volgende opdrachten: >> x=0:pi/100:2*pi; >> y=(sin(x)+2*x)./(1+x.^2); >> plot(x,y) Bij het tekenen van grafieken worden de assen automatisch gekozen. Men kan zelf de lengte van de assen kiezen met >> axis([xmin XMAX YMIN YMAX]) waarbij de grafiek getekend wordt in de rechthoek XMIN x XMAX en YMIN y YMAX. Na iedere nieuwe plot -opdracht verdwijnt de informatie van de oude plot. Wil men verschillende grafieken met verschillende plot -opdrachten in dezelfde figuur laten tekenen, dan moet men na de eerste plot -opdracht het commando

28 HOOFDSTUK 2. BASISELEMENTEN VAN MATLAB >> hold on geven. MATLAB onthoudt dan de grafieken. Het commando >> hold off herstelt de toestand waarin iedere volgende plot -opdracht de voorgaande plot doet verdwijnen. Voor het omgaan met het grafische scherm zijn ook de volgende commando s van belang: Het tonen van een grafiek gaat door activeren of met de opdracht >> shg Het grafische scherm blijft bewaard tot een nieuw plot -commando wordt gegeven of tot het wordt leeggemaakt. De opdracht voor het leegmaken is >> clf Voor het plaatsen van tekst en dergelijke in of bij een tekening zijn de volgende commando s van belang: >> grid voorziet de grafiek van een raster. >> title( titel ) zet een titel boven een plot, en wel de string aangegeven tussen de aanhalingstekens, in bovenstaand voorbeeld het woord titel. >> text(x,y, string ) zet in het punt (x, y) van de laatste plot de tekst string. >> xlabel( tekst ) schrijft informatie langs de x-as. >> ylabel( tekst ) doet hetzelfde voor de y-as. Het opslaan van een figuur in een file gebeurt met het commando

15. SCRIPT FILES 29 >> print -depsc filename MATLAB maakt een file aan volgens het opgegeven format, hier aangegeven met de optie -depsc ( Level 1 color Encapsulated PostScript (EPS) ). De file wordt weggeschreven naar de file filename.eps. Figuren in EPS-formaat kunnen in documenten van allerlei soort worden toegevoegd. Oefening 2.18 Teken de functies sin(t) en cos(t) op het interval 0 t 2π in een figuur. Oefening 2.19 Teken de functie t sin(2t) op het interval [0, π]. namen van de assen. Zet bij deze grafiek de Oefening 2.20 Teken de functie e t2 op het interval [ 2, 3]. 15 Script files Als het maken van een plaatje uit meerdere opdrachten bestaat, dan kan men beter de opdrachten bij elkaar in een file zetten en deze door MATLAB in een keer laten uitvoeren. De file moet een naam met achtervoegsel.m hebben. Zo n file waarin opdrachten staan die moeten worden uitgevoerd heet een script file. Het tekenen van de functie f(x) = x sin(2πx) op het interval [0, 2] met een script file : Via het menu File\New\M-file wordt de MATLAB Editor/Debugger geopend. Tik de volgende regels in. x = 0:0.1:2; y = abs(x.* sin(2*pi*x)); plot(x,y) title( f(x) = x sin(2 pi x) op interval [0,2] ) axis([0 2 0 2]) shg Sla de file op via het menu File\Save onder de naam plaat.m. Als u in MATLAB de opdracht plaat geeft, dan zal de grafiek van f op het interval [0, 2] verschijnen. Het is beter om de opdrachten, die een figuur genereren, te bewaren dan de figuur zelf. Oefening 2.21 Waarom kan men beter de opdrachten voor een figuur dan de figuur zelf bewaren? Oefening 2.22 Beschrijf de betekenis van de regels in de file plaat.m.

30 HOOFDSTUK 2. BASISELEMENTEN VAN MATLAB 16 Eigen functies In MATLAB kan men ook eigen functies definiëren. MATLAB gaat er standaard van uit, dat alle functies op arrays werken. Men moet bij het maken van een eigen functie rekening met array-operaties houden. Men kan dan de eigen functies met MATLABfuncties combineren. Een functiedefinitie moet worden opgeslagen in een fuction file, een file met de extensie.m. De naam van de file moet gelijk zijn aan de naam van de functie met de extensie.m. Beschouw de functie f(x) = x 2 + e x. In MATLAB maken we een functie met dezelfde naam. Deze definitie moet worden opgeslagen in de file f.m. Via het menu File\New\M-file wordt de MATLAB Editor/Debugger geopend. Als men de volgende twee regels intikt function y = f(x) y = x.^2 + exp(x); en de file onder de naam f.m opslaat, dan heeft men binnen MATLAB de beschikking over de functie f. We maken enkele opmerkingen over bovenstaande file. De eerste regel van de file moet het woord function bevatten. De gebruikte variabelen zijn locaal en MATLAB zelf hoeft ze niet te kennen. Als x een array is, dan wordt y een array van functiewaarden. De puntkomma op het eind verhindert dat bij iedere functie-evaluatie er onnodige uitvoer op het scherm komt. Test altijd de functie f uit. Oefening 2.23 Voer de definitie van f zelf uit. Waar komt de file f.m te staan? U kunt de definitie van f veranderen m.b.v. het commando edit f. Oefening 2.24 Laat in de definitie van de functie f de puntkomma weg. Bereken enkele waarden. Wat is het effect? { x, x 0 Oefening 2.25 Beschouw de functie g(x) = 0, x < 0 Maak een eigen functie g in MATLAB. Gebruik hierbij de MATLABfunctie max. Controleer uw eigen functie met >> x = -1:0.2:1; >> g(x)

17. DE HELPFACILITEITEN 31 Columns 1 through 7 0 0 0 0 0 0 0.2000 Columns 8 through 11 0.4000 0.6000 0.8000 1.0000 Waarschuwing: De namen van functies en variabelen mogen niet hetzelfde zijn. Oefening 2.26 Maak een eigen functie met de naam h bij de functie h(x) = x 2 die bestand is tegen arrray-operaties. Voer de volgende opdrachten in de juiste volgorde uit. (a) >> h([1,2,3,4]) (b) >> h = 2.5 (c) (d) (e) (f) >> h([1,2,3,4]) >> h(1) >> h(1.4) >> clear h Wordt bij de onderdelen (c) t/m (e) h als een functie of als een variabele gezien? Waarom volgt er bij onderdeel (d) geen foutmelding? Kent MATLAB de functie h nog? 17 De helpfaciliteiten Dit is een van de belangrijkste paragrafen. In principe is alle informatie over MATLAB ook te vinden in de helpfaciliteiten van MATLAB. Deze handleiding is tot nu toe zo uitgebreid geweest om u een snelle start in MATLAB te geven. Omdat de commando s en functies in MATLAB vaak in meer algemene situaties gebruikt kunnen worden, is de informatie algemener dan voor u nodig is. U zult de voor u essentiële bestanddelen uit de aangeboden informatie moeten halen. We behandelen drie manieren om informatie te verkrijgen. Directe informatie Met het commando

32 HOOFDSTUK 2. BASISELEMENTEN VAN MATLAB >> help of >> help trefwoord Zonder specificatie krijgt u een algemene lijst van commando s, functies en toolboxes die binnen MATLAB ter beschikking staan. Met specificatie krijgt u gerichte informatie en worden ook vaak suggesties gedaan om bij andere trefwoorden informatie op te vragen. Oefening 2.27 Vraag informatie op over de sinus en de functie load. Informatie via het Help Window Via aanklikken van Help\Help Window of door de opdracht >> helpwin Dan verschijnt het gevraagde window en kan men via klikken informatie opvragen. Oefening 2.28 Open het Help Window en dubbelklik op de regel met matlab\elfun. Er verschijnt een lijst met alle elementaire wiskundige functies in MATLAB. Dubbelklik op de regel met atan en bekijk de informatie. Probeer ook de mogelijkheden van het See also -menu uit. De mogelijkheid More sin help(html) hangt samen met de derde manier van informatie opvragen. Informatie via de hypertext -documentatie Via aanklikken van Help\Help Desk(HTML) of door de opdracht >> helpdesk Dan wordt via een Web browser de Help Desk opgestart. Via klikken en menu s kan men nu gericht naar informatie zoeken. Het zoeken van de informatie kan alfabetisch of per onderwerp. Oefening 2.29 Zoek via de Help Desk informatie over de sinus op. Oefening 2.30 Klik in Help Desk achtereenvolgens Getting Started en Command Line Editing aan. Probeer zelf de pijltjestoetsen en de Escape -toets uit. Via de Help Desk is het ook mogelijk de officiële MATLABdocumentatie te bekijken. Oefening 2.31 Probeer de handleiding Getting Started with MATLAB te bekijken. Klik hiertoe Getting Started aan in de Help Desk en vervolgens het PDF-icoon van de genoemde handleiding aan. Als alles goed gaat, verschijnt er een Window met rechts een titelpagina en links een strook met driehoekjes en rechthoeken. Klik er een paar aan en zie wat er gebeurt. Als het bovenstaande niet lukt, sla deze oefening dan verder over. In de loop van de tijd zult u de helpfaciliteiten steeds gemakkelijker gaan gebruiken. De Help Desk geeft het gemakkelijkst toegang tot allerlei informatie.

18. OPGAVEN 33 18 Opgaven Oefening 2.32 Maak in MATLAB een rijvector met de vijfde machten van de eerste 40 natuurlijke getallen. Oefening 2.33 Bereken in MATLAB het exacte product 1 2... 24 25. Oefening 2.34 Bereken in MATLAB de exacte som 1 + 2 3 + 3 3 + 4 3 +... + 199 3 + 200 3. Oefening 2.35 Teken de grafiek van de functie f(x) = x/(1 + x) op het interval [0, 4]. Oefening 2.36 Teken de cirkel met straal 1 en middelpunt (0, 0) in het vierkant met 2 x 2 en 2 y 2. Zorg ervoor dat de cirkel er rond uitziet! Hints: Maak eerst een lijst van x-coördinaten en een lijst van y-coördinaten. Teken de cirkel. Pas de vorm van de figuur aan door het commando axis in verschillende combinaties te gebruiken. Oefening 2.37 De periodieke functie f met periode 2 is gegeven door t 2, 0 t 2, f(t) = f(t 2), 2 t, f(t + 2), t < 0. Definieer deze functie in MATLAB. Maak gebruik van mod. Voor een getal r geeft mod(r,2) een getal s terug, zodanig dat 0 s < 2 én s en r een veelvoud van 2 van elkaar verschillen. Dus f(r) = f(s) = s 2. Zorg ervoor dat de eigen functie ook op arrays werkt.

34 HOOFDSTUK 2. BASISELEMENTEN VAN MATLAB

Hoofdstuk 3 De numerieke gereedschapskist 1 Inleiding Het pakket MATLAB zèlf is de numerieke toolbox. We maken enkele algemene opmerkingen en behandelen enkele belangrijke commando s. Bekijk van alle genoemde commando s de helpinformatie. Het aantal cijfers van getallen op het scherm kan veranderd worden met behulp van de commando s format long of format short. De berekeningen zelf veranderen niet. MATLAB rekent intern met 16 cijfers nauwkeurig. We gaan de functie f(x) = x 3 x 2 3 arctan(x) + 1 op het interval [ 2, 3] onderzoeken. Maak bij een te onderzoeken functie altijd een M-file. Oefening 3.1 Maak een eigen functie f met f(x) = x 3 x 2 3 arctan(x) + 1. 2 De grafiek Het tekenen van de grafiek van f kan op de eerder beschreven manier met behulp van een array van functiewaarden. Een andere manier is gebaseerd op het gebruik van strings. >> ezplot( f(x),[-2,3]) De expressie f(x) moet tussen enkele aanhalingstekens ( ) staan. Het interval wordt als een rijvector bestaande uit het linkereindpunt en rechtereindpunt gegeven. Het voordeel van deze opdracht is dat het interval gemakkelijk is te veranderen om de grafiek van f gedetailleerder te onderzoeken. 35

36 HOOFDSTUK 3. DE NUMERIEKE GEREEDSCHAPSKIST 3 De nulpunten Nulpunten van verreweg de meeste functies kunnen niet exact bepaald worden. Deze kunnen dan wel numeriek benaderd worden. Men spreekt in het algemeen toch van het numeriek bepalen van nulpunten. De functie f heeft drie nulpunten. Het eerste nulpunt ligt in het interval [ 2, 1] en de functiewaarden f( 2) en f( 1) zijn verschillend van teken. >> fzero( f,[-2,-1]) -1.2780 >> fzero( f(x),[-2,-1]) -1.2780 Het is dus mogelijk om f of f(x) te gebruiken. variabele x gebruikt worden. In het laatste geval moet per se de >> f(ans) -4.4409e-016 Aan de laatste uitvoer kunt u zien dat MATLAB een benadering voor het nulpunt geeft. Oefening 3.2 Laat zien dat de benadering hooguit 10 4 van het nulpunt afligt. Oefening 3.3 Bepaal de overige nulpunten van de functie f numeriek. 4 De extrema In het algemeen kunnen ook de extrema niet exact bepaald worden. In principe kunnen (de plaatsen van) de extrema numeriek worden benaderd. Men spreekt ook wel van het numeriek bepalen van de extrema. De plaatsen waar de extrema van f ongeveer liggen, kunnen uit de grafiek worden afgelezen. Er is een minimum in het interval [0, 2]. >> x1 = fmin( f,0,2)

4. DE EXTREMA 37 x1 = 1.0878 >> x1 = fmin( f(x),0,2) x1 = 1.0878 >> f(x1) -1.3784 De functie f heeft een minimum in x = 1.0878 met waarde 1.3784. Het is wederom mogelijk om f of f(x) te gebruiken. In het laatste geval moet per se de variabele x gebruikt worden. Het interval, waarin het minimum ligt, moet als een rijvector worden ingevoerd. De functie f heeft een maximum op het interval [ 1, 0]. Helaas heeft MATLAB geen commando fmax. Oefening 3.4 Teken de grafiek van de functie x f(x) op het interval [ 2, 3]. Verander de file f.m niet! De volgende opdrachten zullen nu duidelijk zijn. >> x2 = fmin( -f(x),-1,0) x2 = -0.5902 >> f(x2) 2.0456 De functie f heeft in x = 0.5902 een maximum ter waarde 2.0456. Door fmin wordt de plaats van één minimum in het opgegeven interval benaderd. De waarde van het minimum moet u zelf uitrekenen. De nauwkeurigheden waarmee de plaatsen van de extrema worden uitgerekend, kunnen worden aangepast.

38 HOOFDSTUK 3. DE NUMERIEKE GEREEDSCHAPSKIST Oefening 3.5 Zorg ervoor dat de getallen met 15 cijfers op het scherm verschijnen. Voer de opdracht >> fmin( f(x),0,2,[0,10^n]) vier keer uit, waarbij u achtereenvolgens de exponent n vervangt door 4, 6, 8 en 10. Bekijk de gelijkblijvende cijfers van de verschillende uitkomsten. Oefening 3.6 De functie f(x) = (x 3 2) 2 heeft precies één nulpunt. Bepaal het nulpunt numeriek en vergelijk de gevonden waarde met de werkelijke waarde. Hint: Teken de grafiek van f over het interval [0, 2]. Oefening 3.7 Van de functie f(x) = e 2x 4e x +2 moeten alle nulpunten en extrema bepaald worden. Kies een geschikt interval om de functie met MATLAB te tekenen. Het interval is geschikt als alle nulpunten en extrema erin liggen en duidelijk te zien is waar deze liggen. Leg uit waarom het een geschikt interval is. Bepaal de nulpunten en extrema (aard en waarde). 5 Numerieke integratie Integralen van de vorm De integraal 3 2 115 12 9 arctan(3) + 3 2 b a f(x)dx kunnen meestal niet exact worden bepaald. (x 3 x 2 3 arctan(x) + 1)dx is wel exact te berekenen. De uitkomst is log(2) + 6 arctan(2) 6.0245344593535. Er zijn verschillende commando s om de integraal numeriek te bepalen (d.w.z. te benaderen). Zie ook de helpfaciliteiten. We gebruiken het commando quad en laten de getallen in 15 cijfers op het scherm verschijnen. >> quad( f,-2,3) 6.02456548407172 Helaas is het niet mogelijk om f(x) als eerste argument te gebruiken. De benadering wijkt al in het vijfde cijfer af. In principe probeert quad vier correcte cijfers te geven. De nauwkeurigheid van de benadering kan worden opgeschroefd. >> quad( f,-2,3,[10^-7 10^-7]) 6.02453446058438

6. OPGAVEN 39 Oefening 3.8 Bepaal met behulp van quad de integraal (x 3 + x 2 + 1 )dx numeriek. 1 x2 Experimenteer met nauwkeurigheden. Vergelijk de resultaten met 88 3, de exacte waarde van de integraal. 3 Zorg ervoor dat de getallen weer met vijf à zes cijfers op het scherm verschijnen. 6 Opgaven Oefening 3.9 Beschouw de functie f(x) = x 2 exp( x). Beantwoord de onderdelen (a) t/m (c) zonder gebruik te maken van de afgeleide f. (a) Waarom heeft de functie f een minimum in x = 0? (b) Waarom heeft f een maximum op het interval (0, )?. (c) Bepaal met fmin een maximum op (0, ). (d) Hoever ligt de in onderdeel (c) gevonden benadering af van de werkelijke waarde? Oefening 3.10 Beschouw de functie f(x) = x sin 2 (x). (a) Teken de functie f op het interval [0, 2π]. (b) Bepaal numeriek de plaats en de waarde van de maxima van f op het interval [0, 2π]. (c) Bepaal numeriek de integraal 2π 0 f(x) dx.

40 HOOFDSTUK 3. DE NUMERIEKE GEREEDSCHAPSKIST

Hoofdstuk 4 De symbolische gereedschapskist 1 Inleiding Dank zij de (Extended) Symbolic Math Toolbox is het mogelijk om binnen MATLAB aan formulemanipulatie te doen. In toekomstige versies van MATLAB zal deze toolbox verder in MATLAB worden ingebouwd en er zullen nog de nodige veranderingen optreden. Voer de volgende opdracht uit: >> syms x Als er geen foutmeldingen verschijnen, dan heeft u de beschikking over de (Extended) Symbolic Math Toolbox. De betekenis van deze opdracht wordt later uitgelegd. Met deze toolbox wordt het aantal functies uitgebreid. Als u in de Help Desk aan de rechterkant Symbolic Math Toolbox Ref aanklikt, dan verschijnt er een lijst van functies die óf nieuw zijn óf aangepast zijn vanwege deze toolbox. Voor directe informatie is het help commando geschikt. >> help atan ATAN Inverse tangent. ATAN(X) is the arctangent of the elements of X. See also ATAN2. Overloaded methods help sym/atan.m >> help sym/atan ATAN Symbolic inverse tangent. 41

42 HOOFDSTUK 4. DE SYMBOLISCHE GEREEDSCHAPSKIST Oefening 4.1 Verwijder alle variabelen uit de Work Space. 2 Expressies met variabelen In MATLAB kan men met variabelen, die een waarde hebben, werken. Als men in een expressie een variabele gebruikt die geen waarde heeft, dan krijgt men een foutmelding. >> clear x >> exp(-x)+sin(x)??? Undefined function or variable x. In MATLAB kunnen strings worden ingevoerd, zoals exp(-x) + sin(x) of x^2 + 3 x. Het zijn expressies, aan beide kanten voorzien van het -teken. In feite hebben we dit gedaan bij ezplot, fzero en fmin. Beschouw het resultaat van >> ezplot( exp(-x) + sin(x),[0,2*pi]) De functie f heeft in het interval [3, 4] een nulpunt en in het interval [4, 5] een minimum. >> fzero( exp(-x)+sin(x),[3,4]) Zero found in the interval: [3, 4]. 3.1831 >> fmin( exp(-x)+sin(x),4,5) 4.7213 Het is zonder meer mogelijk om aan een variabele een string toe te kennen. >> clear x >> y = exp(-x) + sin(x) y = exp(-x) + sin(x) De variabele y is nu geïntroduceerd, omdat deze een string als waarde gekregen heeft, maar de variabele x is in MATLAB onbekend. Het gebruik van x aan de rechterkant van het is-teken geeft in dit geval géén foutmeldingen. Merk op dat aan de uitvoer niet te zien is of

3. SUBSTITUTIE 43 het een expressie met symbolen of een string betreft! Men kan MATLAB met symbolen laten werken als men de beschikking heeft over de (Extended) Symbolic Math Toolbox en variabelen tot symbool verklaart. Dit gaat als volgt. >> x=sym( x ) x = x of >> syms x Het declareren van meerdere variabelen of symbolen tegelijkertijd: >> syms x y z Men kan nu met deze variabelen naar hartelust manipuleren. >> y = x^3 + x^2 + 1 y = x^3+x^2+1 >> v=sin(x) v = sin(x) >> y*v (x^3+x^2+1)*sin(x) 3 Substitutie >> syms a b >> y = 3*sin(a) + cos(b)

44 HOOFDSTUK 4. DE SYMBOLISCHE GEREEDSCHAPSKIST y = 3*sin(a)+cos(b) >> y =subs(y,a,2) y = 3*sin(2)+cos(b) >> subs(y,b,5) 3.0116 4 Differentiëren en integreren We illustreren de opdrachten aan de hand van het voorbeeld: >> syms x y >> y = atan(x) Een keer en drie keer differentiëren: y = atan(x) >> diff(y,x) 1/(1+x^2) >> diff(y,x,3) 8/(1+x^2)^3*x^2-2/(1+x^2)^2 De onbepaalde integraal arctan(x) dx: >> int(y,x)

5. NUMERIEKE WAARDEN 45 x*atan(x)-1/2*log(x^2+1) De bepaalde integraal >> int(y,x,2,7) 7 2 arctan(x) dx: 7*atan(7)-1/2*log(2)-1/2*log(5)-2*atan(2) Dit is de exacte waarde van de integraal. De numerieke waarde is dan >> double(ans) 6.6367 De opdracht double maakt van een exact getal een decimaal getal. Verreweg de meeste integralen kunnen niet worden uitgerekend. 4 1 arctan(x) 1 + x 3 dx. Beschouw het voorbeeld >> int(exp(-x) * sqrt(1 + x^3), x, 1, 4) int(exp(-x)*(1+x^3)^(1/2),x = 1.. 4) >> double(ans) 1.0017 De MATLABfunctie double zorgt voor een numerieke benadering van de integraal. 5 Numerieke waarden De functie sym zet numerieke getallen om naar exacte getallen en double doet het omgekeerde.

46 HOOFDSTUK 4. DE SYMBOLISCHE GEREEDSCHAPSKIST MATLAB Resultaat sym(sqrt(2)) sqrt(2) sym(2.3654) 11827/5000 double(sin(2)+log(3)) 2.0079 Oefening 4.2 Bereken in MATLAB de integraal Wat is de numerieke waarde van deze integraal? 3 1 (cos(x 1) + 1 x ) dx. De manier om een idee te krijgen van de grootte van een exacte uitdrukking is het toepassen van het commando double. 6 Het manipuleren van expressies Voer eerst de opdracht >> syms a b c d x y uit en experimenteer met de onderstaande opdrachten. MATLAB Betekenis van opdracht expand((a+b)^3) Werk de haakjes weg. factor(a^3+3*a^2*b+3*a*b^2+b^3) Ontbind in factoren. [t n] = numden(a/b+c/d) Breng onder een noemer. Dan wordt t de teller en n de noemer. simplify((x^2+2*x+1)/(x+1)) Vereenvoudig de uitdrukking. Het schrijven van de uitdrukking x/(1 + x/(1 + x)) als teller gedeeld door noemer gaat als volgt: >> syms x >> y = x/(1+x/(1+x)); >> [t,n]=numden(y) t = x*(1+x) n = 1+2*x Teller en noemer zijn niet verder te vereenvoudigen.