28
Numeriska Metoder och Grundl¨ aggande Programmering f¨or P1, VT2014 F¨orel¨ asning 1, Introduktion & MATLABrepetition. (Kap. 1–2 i “MATLAB Programming for Engineers“, S. Chapman) January 20, 2014

, S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

Embed Size (px)

Citation preview

Page 1: , S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

Numeriska Metoder och

Grundlaggande Programmering

for P1, VT2014

Forelasning 1,

Introduktion & MATLABrepetition.

(Kap. 1–2 i “MATLAB Programming for

Engineers“, S. Chapman)

January 20, 2014

Page 2: , S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

Kursansvarig och huvudforelasare: Beatrice FrockForelasningar pa MATLAB-delen: Erik von Schwerin

Undervisning:

Forelasningar Presenterar teori och fardiga program/exempel.Stod till egna studier av kurslitteraturen.

Ovningar Visar problem och foljer losningsprocessen.

Laborationer Ni far problem och ska sjalva arbeta er fram tillderas losning.

Ovningsledare:

Grupp 1 B. F.

Grupp 2 E. v. S.

Grupp 3 Erik Dalsryd

Page 3: , S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

Kursen bestar av:

I numeriska metoder,

I programmering i MATLAB.

Larandemal: “. . . ge . . . insikt om att numeriska metoder ochprogrammeringsteknik behovs for att gora tillforlitliga ocheffektiva simuleringar av tekniska och naturvetenskapligaprocesser baserade pa matematiska modeller.”

Page 4: , S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

Efter kursen kan ni anvanda numeriska metoder for att:Losa olinjara ekvationer: hitta x s.a.

ex2 − cos(3x)− 2 = 0

Losa linjara och icke-linjara ekvationssystem: hitta x , y ,och z s.a.

x − 3y + 2z = 0

−6x + 5y = 3z

4(y − z) = x

x − 3yz = 0

− cos(x) + 5y = 3z

zy = 1/x

Page 5: , S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

Interpolera data: Skatta y(2010) da

t 2007 2009 2011 2013y 432 467 547 693

och minstakvadratanpassning: bestam parametrarna a, b,c , och w i modellfunktionen f (t) = aebx + c cos (wt) givetdata

t 2.1 2.2 2.4 2.5 2.7 2.8f (t) 13.4 16.2 15.1 17.8 19.3 17.6

Ni kommer ocksa kunna avgora om den foreslagnamodellfunktionen ar bra, eller maste forbattras.

Page 6: , S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

Berakna integraler:∫ 10

−3

cos (2x)e−x3

√0.8 + x2

dx

∫ ∞0

1√

x(x2 +

√1 + x3

) dx

och losningar till differentialekvationer: rita y(x) for5 ≤ x ≤ 9 da

d3y

dx3+x cos (yx) = 0.86

(d2y

dx2− dy

dx

)med

y(5) = 12,

y ′(9) = 34,

y”(5) = 56.

Och bedoma noggrannheten i de numeriska svar somberaknats.

Page 7: , S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

Numeriska metoder Efter kursen kan ni:

I identifiera olika matematiska problem och skriva om dempa en form som ar lamplig for numerisk behandling

I valja lamplig numerisk metod for behandling av det givnaproblemet

I motivera val av metod genom att redogora for fordelaroch begransningar

I valja en algoritm som leder till effektiva berakningar ochimplementera den i ett programsprak lampat forberakningar t ex Matlab

I presentera resultaten pa ett relevant och illustrativt satt

I gora tillforlitlighetsbedomning av resultaten

Page 8: , S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

Programmering Efter kursen kan ni:

I bryta ner storre problem i hanterliga delar och skriva egnafunktioner for dessa i programspraket

I anvanda styr- och datastrukturer

I hantera filer pa olika satt, bade vid inlasning och utskrift

I anvanda fardiga funktioner ur programsprakets bibliotek(t ex Matlabs bibliotek) for berakning, visualisering ocheffektiv programmering

I skriva valstrukturerade program i programspraket.

Forelasningarna i programmering inleder kursen, men nikommer ova pa och lara er programmering under hela kursen.

Page 9: , S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

Administrativa punkter:

I kursen ger 9hp, (tentamen 3hp, laborationer 6hp)

I Godkanda delmoment rapporteras i “Rapp” – registera er!

Angaende laborationer:

I Laborationer gors och redovisas i par

I Bilda par i dag och valj terminalovningsgrupp (A eller B)

I Schemalagd tid inte nog – arbeta pa egen tid ocksa!

I Allmanhandledning (for hjalp, ej redovisning)

I Vid godkand lab., “signaturbladet”– ert ansvar!

I Lab. redovisad och godkand i tid ⇒ bonuspoang(Galler ej Lab. 1 och projektet)

I Terminalovningar i CSC:s salar (linux-miljo)

I Linux-konton delas ut 1:a salsovningen, under rasten.Kom ihag legitimation!

Page 10: , S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

MATLABREPETITION

(Las ocksa kapitel 1 och 2 i PEng.)

I Egenskaper hos MATLAB

I Grafiska granssnittets komponenter och deras betydelse

I Variabler, identifierare

I “Tabeller”, (skalarer, vektorere, matriser, . . .)

I Uttryck, tilldelning, . . .

I Operatorer, (aritmetiska, logiska, komponentvisa ellermatrisoperationer)

I Skapa, indexera, omforma tabeller

Page 11: , S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

Egenskaper hos MATLAB

MATLAB ar ett kommersiellt program som finns pa fleraplattformar: Unix, Windows, och Mac OS X.

I kan anvandas interaktivt, som en miniraknare

I ar anpassat for numeriska berakningar

I har manga inbyggda funktioner, speciellt:I metoder for linjar algebra,I metoder for ordinara differentialekvationerI lattanvanda ritfunktioner

I kan byggas ut med egna kommandofiler och funktioner,eller genom tillagg av en s.k. “toolbox”

I anvands vanligtvis interpreterat

Nackdelar: dyrt och exekverar langsammare an kompileradeprogram (t.ex. C och Fortran)

Page 12: , S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

En titt pa Matlabs grafiska miljo

Viktiga delar

I Kommandofonstret: har skriver man kommandon somutfors direkt

I Kommandohistoriken: visar de senaste utfordakommandona

I Man kan aven kopiera allt som skrivs ikommandofonstret, m.h.a. diary filnamn. Vidkommandot diary off avslutas kopieringen.

I redigeraren anvands for att arbeta med kommandofiler,som ar textfiler med flera kommandon; kan aven redigerasfristaende textredigerare som Emacs

I faltet Workspace visar variabelminnet

Page 13: , S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

Tabeller

I MATLAB star for MATrix LABoratory, utvecklat for attundervisa linjar algebra

I Med matris brukar man mena en tabell av dimension 2(rader och kolumner)

I Matlabs grundlaggande datastrukturer ar tabeller igenerellt antal dimensioner

I Specialfall:I Skalar: ses som tabell med en rad och en kolum [1,1]I Kolumnvektor: tabell med flera rader och en kolum[m,1]

I Radvektor: tabell med en rad och flera kolumner [1,n]I Matris: [m,n]

I Tabeller av hogre dimension kan ocksa skapas (andvandsinte lika ofta)

Page 14: , S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

Variabler

I En matris som man vill spara lagras i en variabel

I En variabel ges ett namn (identifierare) sa att man kankomma at den senare

I Kan ses som en namngiven plats i datorns minne

I Identifierare kan innehalla A–Z, a–z, siffror, och . (Forstatecknet bokstav!)

I Stora (versaler) och sma (gemena) bokstaver tolkas somolika tecken

I Konvention: anvand variabelnamn med enbartVERSALER for s.k. globala variabler, men inte for andravariabler

Page 15: , S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

Uttryck och tilldelning

I Skriv en formel i kommandofonstret och tryck “enter” saberaknas uttryckets varde, vardet tilldelas variabeln ans,och variabeln skrivs ut.

I Vill man spara vardet i en annan variabel anvander manen tilldelningssats, var = uttryck, t.ex.>> a = sqrt(2); % ; undertrycker utskriften

I Det ar vardet ar hogerledet som kopieras in i variabeln ivansterledet.

I Behover man mer an en rad for ett uttryck avslutar manraden med ... och fortsatter pa nasta rad.

Page 16: , S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

Variabler

I Variabler definierade i kommandofonstret (eller kordakommandofiler) finns i variabelminnet eller“workspace”,”arbetsplats”

I who ger information om variablerna i variabelminnet,(whos extra information)

I clear rensar variabelminnet

I Det finns fordefinierade variabler, t.ex. ans, pi, i, j,eps, realmin, realmax, Inf, NaN

I Ni kan andra deras varden, men de aterstalls vid clear

I Identifierare i variabelminnet “doljer” inbyggdafunktioner: t.ex.>> sin = 3 % Doljer sinus-funktionen>> sin(1) % Returnerar vardet 3>> sin(2) % Ger fel, variabeln sin har ett element

Page 17: , S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

Skapa tabeller

Man skapar en tabell genom att rakna upp, mellanhakparanteser, elementen. Radbryte eller “;” separerar raderoch blanktecken eller “,” separerar kolumnerna.>> A = [1 2; 3 4]; A = [5 6; 7 8];

>> c = [9 10]; d = [11;12]; e=[13 14];Man kan ocksa sammanfoga tabeller>> f = [c; e]

lagga till nya rader eller kolumner

Page 18: , S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

Speciella tabeller:

I b:s:e

I linspace och logspace

I ones och zeros

I eyes

Page 19: , S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

Fler satt att modifiera tabeller, eller komma at delar av dem:

I indexering, ger enstaka element eller subtabeller

I A(:)

I reshape

I vektorer genom stegning

Page 20: , S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

Operatorer

Aritmetiska operatorer i Matlab:+,- addition, subtraktion* multiplikation/ division (hogerdivision) 6/3 ar 2\ vansterdivision 6\3 ar 0.5^ exponentiering, “upphojt till”, 3^2 ar 9

Matrisoperationer som i linjar algebraFor matriser finns ocksa elementvisa operationer; da mastematriserna ha samma storlek, eller en vara skalar+,- elementvis addition, subtraktion.* elementvis multiplikation./ elementvis division.\ elementvis vansterdivision.^ elementvis exponentiering

Page 21: , S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

Icke elementvisa operatorer

Om ena operanden ar skalar fungerar operatorerna elementvis.C=A*B matrismultiplikation. A och B har dimension

hogst 2; antal kolumner i A = antal rader i B.C=A/B matrisdivision, loser linjart ekvationssystem, C = AB−1

C=A\B matrisdivision, loser linjart ekvationssystem, C = A−1BC=A.’ transponering Cjk = Akj

C=A’ komplexkonjugering Cjk = conj(Akj)C=A^p for kvadratisk matris A och skalar p,

C = A*A*. . .*A, p ggr

Page 22: , S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

Logiska operatorer

Vardet 0 tolkas som falskt; alla andra som sant, menresultatet “sant” lagras som 1.< elementvis mindre an<= elementvis mindre an eller lika med> elementvis storre an>= elementvis storre an eller lika med== elementvis lika med~= elementvis skilt fran& elementvis och| elementvis eller~ elementvis icke&& och med “genvagsutvardering”|| eller med “genvagsutvardering”

Page 23: , S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

Prioritet

1. ^,.^,’,.’

2. +,-,~ (med en operand, unara)

3. *,.^*,/,./,\,.\4. +,- (binara operationer)

5. :

6. ==,~=,<,<=,>,>=

7. &

8. |

9. &&

10. ||

Paranteser anvands for att andra ordningen

Page 24: , S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

Polynom

Lagras som en koefficientvektor med hogstagradskoefficientenforst och det finns speciella funktioner for polynom. Ex.p(x) = 2x3 + 3

2x + π

>> p = [2 0 1.5 pi];

>> val = polyval(p,1)

>> val = polyval(p,[1 2; 4 8])

>> rot = roots(p)

Page 25: , S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

Datatyper

I Data lagras som bitfoljder i datorns minne. Likadanabit-foljder maste kunna tolkas pa olika satt i olikasammanhang.

I En datatyp i Matlab kan ses som ett satt att lagra dataeller tolka en variabels varde.

I Manga andra programmeringssprak kraver att anvandarenanger vilken sorts datatyp en variabel ska innehalla.

I Matlab ar mer “forlatande” och tolkar sjalv datatypen vidtilldelningen.

I I ett Matlab-programm kan samma variabel ha olikadatatyper vid olika tillfallen

Page 26: , S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

Datatyper

Alla variabler hittils har varit av datatypen double som armatlabs standard datatyp for numeriska varden. Andradatatyper ar t.ex.

I single flyttal med halften sa manga bitar (mindreminnesatgang, lagre precision)

I int8 heltal mellan -128 och 127

I char tecken

I fler exempel senare i kursen

Tilldela variabler av datatypen char genom att anvanda

citationstecken>> c = ’a’;

>> d = ’b’;“Strangar” i Matlab ar

tabeller av datatypen char och man kan indexera in i dem

(och utfora andra matrisoperationer)>> e = [c d];

>> f = [c;d];

Page 27: , S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

eval

Formler kan lagras som text. Exempel:1 + x + x2 + . . . + xK = xK+1−1

x−1>> str = ’sK = (x^(K+1)-1)/(x-1)’;

>> x = 2; K = 10;

>> eval(str)

sK =

2047

Page 28: , S. Chapman) - Matematik | KTH · kommandof onstret, m.h.a. diary lnamn. Vid kommandot diary off avslutas kopieringen. I redigeraren anv ands f or att arbeta med kommando ler, som

I morgon

Styrstrukturer och programmeringsteknik