TMA4123 - Kræsjkurs i Matlab. Oppgavesett 1/3 22.02.2013 Dette oppgavesettet omhandler grunnleggende Matlab-funksjonalitet, slik som variabler, matriser, matematiske funksjoner og plotting. Den aller viktigste matlabfunksjonen er help. Benytt deg av denne dersom du står fast. Hvis du for eksempel lurer på hvordan linspace fungerer, skriv help linspace En annen nyttig hjelpefunksjon er lookfor. Den kan du bruke dersom du ikke kjenner navnet til en funksjon du ønsker å bruke. Si at du ønsker å beregne en absoluttverdi, men har glemt hva den aktuelle funksjonen heter. Da vil være til hjelp. Andre kilder til hjelp: lookfor 'absolute value' Skriv doc i Matlab, eller bruk Help -menyen Getting started with Matlab http://www.mathworks.se/help/pdf_doc/matlab/getstart.pdf Berland s Introduksjon til Matlab Google Oppgave 1: http://www.stud.math.ntnu.no/matlabkurs/ Lag tre variabler x, y, z, med verdiene 3, 5.3, e πi/3. (a) Finn x + z. Kall resultatet w. Bestem w. (b) Finn sin(x), y, 3 y, sinh(x) og log z cos x 2π. (c) Bruk Matlab til å beregne 1 + 10 5. Ble svaret som forventet? Hvis ikke, be Matlab gi deg presist svar. 1
format Oppgave 2: (a) Bruk en for-løkke til å printe ut en (valgfri) streng 50 ganger (b) Gjør det samme med en while-løkke Oppgave 3: (a) Lag de to 12 12-matrisene A =...... 1 0 0... 0 0 2 0... 0 B = 0 0 3... 0.... 0... 12 Alle elementene i A er lik 3. Alle elementene i B er lik 0, bortsett fra diagonalen som består av vektoren [1, 2, 3,..., 12]. (b) Lag en matrise D ved å putte inn 3 3-matrisen 3 1 2 C = 1 3 2 2 2 1 øverst til høyre i matrisen A. Det vil si, D er lik A bortsett fra at elementene øverst til høyre er erstattet med elementene fra C. (c) Beregn det kolonnevise produktet av elementene i D og putt disse inn i en vektor. (Det siste elementene i den resulterende vektoren vil være 78732.) (d) Lag en 5 5-matrise med verdier trukket fra den uniforme sannsynighetsfordelingen på intervallet (0, 1). (Bruk rand). Finn alle elementene som er < 0.3 og sett disse til 0. ones, diag, prod, rand, find Oppgave 4: Lag følgende 4 4-matrise 3 1 2 C = 1 3 2 2 2 1 2
(a) Finn determinanten til C (b) Finn egenverdiene og egenvektorene til C (c) Beregn den inverse C 1 (d) Løs ligningsystemet Oppgave 5: 3x + y + 2z = 3 x + 3y 2z = 5 2x 2y + z = 7 Bruk Matlab til å regne ut summen av rekken S = N r=1 når N = 20. Ikke bruk formelen for summen av kvadrater. Løs oppgaven uten å bruke løkker..ˆ, sum. Svaret er 2870. Oppgave 6: Denne oppgaven omhandler Fibonaccitallene (http://en.wikipedia.org/wiki/ Fibonacci_number), som er tallsekvensen (F 1, F 2, F 3,... ) definert ved at { 1, n = 1, 2 F n = F n 1 + F n 2, n 3 (a) Lag et script som som beregner de 20 første Fibonaccitallene. Forsøk å gjenskape følgende plot av disse (tittel, farger, etc). r 2 3
(b) Lag en funksjon som tar et tall n som input og returnerer en vektor med de n første Fibonaccitallene (c) Utvid funksjonen slik at den i tillegg returnerer summen av de n første Fibonaccitallene 17710. for, plot, function. Summen av de 20 første Fibonaccitallene er Oppgave 7: Plot funksjonen sin(x) over intervallet [ 3, 3] samplet i 150 jevnt fordelte punkter. linspace, plot Oppgave 8: Forsøk å gjenskape følgende figurer 4
Dette er plot av 12 sin(3x) + 8 cos(5x). Legg merke til x-aksen og linjetykkelsen i Figur 2. axis, title, legend, set(gca) Oppgave 9: Forsøk å gjenskape følgende figur. Legg merke til tittel, linjetykkelse og farger. subplot 5
Oppgave 10: I denne oppgaven skal vi lage et 3-dimensjonalt plot. Målet er å ende opp med følgende figur: (a) Lag først det 2-dimensjonale området vi vil plotte over (et xy-plan). Vi ønsker å plotte over det kvadratiske området 10 < x, y < 10. Vi kan danne dette ved hjelp av linspace og meshgrid. skriv help meshgrid og kikk på eksempelet. (b) Definer deretter funksjonen z = sin( x 2 + y 2 ) x2 + y 2 Bruk.ˆ2 og./ (c) Plot så z over området 10 < x, y < 10 ved å bruke surf (d) Dette gir nesten plottet vi ønsker, bortsett fra at tittelen mangler og fargene er feil. Skriv help colormap. Bruk deretter help graph3d for å finne riktig colormap. (e) Eksperimenter med funksjonalitet du finner i help graph3d. Hvor fancy kan du få figuren til å bli? 6
Oppgave 11: Definer de to funksjonene f(x) = e x2 cos(3x) 1 g(x) = log(x 2 )e 3x Beregn integralene fra x = 2 til x = 3 Bonuspoeng dersom du definerer f og g som såkalte anonyme funksjoner doc 'anonymous function', lookfor integral Oppgave 12: La f være funksjonen f(x, y) = 2x 2 + y 2 2xy 2x 3 + x 4. Bruk matlabfunksjonen fminsearch til å finne minimum av f. Oppgave 13: Hjelp en medstudent eller jobb deg gjennom Introduksjon til Matlab http://www.stud.math.ntnu.no/matlabkurs/. Alternativt, kikk på en av de uttallige matlabtutorials du finner på nettet, f.eks. via http://www.mathworks.com/academia/student_center/tutorials/ launchpad.html 7