Rum: A3446 E-post: ove.edlund@ltu.se Hemsida: www.math.ltu.se/ jove
Översikt: Matlab i MAM283 Några fakta Introduktion till Matlab. Omfattning: 0,4 p En föreläsning och tre datorövningar Examineras genom tre laborationer Deadline: 20 mars Kurshem Ytterligare fördjupning och fler tillämpningar kommer i MAM284, som har ett moment Matematisk modellering med Matlab, 2 p
Exempel exp Beräknar e x, exp(3.2) = e 3.2 log Naturliga logaritmen ln, log(1.0) = ln 1.0 sin, cos, tan ex, sin(2.3) = sin 2.3 asin, acos, atan ex, atan(1.0) = arctan 1.0 = tan 1 1.0 abs Absolutbeloppet, abs(-3.1) = 3.1 Alla dessa går att applicera på vektorer och matriser. Beräkningen utförs då element för element. T.ex. >> abs([-1.2 2.4-2.2]) ans = 1.2000 2.4000 2.2000
Plus, gånger osv. Plus, gånger osv. Manipulera matriser Operationer Element för element x=a:b:c Vektorn x innehåller element från a till c i steg om b. Ex 0:0.5:2 = [0 0.5 1.0 1.5 2] +, Adderar/subtraherar matriser och vektorer element för element.*,./ Multiplicerar/dividerar matriser och vektorer element för element. Upphöjer matriser och vektorer element för element Exempel >> 2. [1 2 1 3] ans = 2 4 2 8 >> [1 2 1 3]. 2 ans = 1 4 1 9
Plus, gånger osv. Plus, gånger osv. Manipulera matriser Operationer Matrisräkning +, Matrisaddition/subtraktion (samma som tidigare!!!) * Matrismultiplikation / Löser system. B/A motsvarar B A 1. \ Löser system. A\B motsvarar A 1 B. Matris-upphöjt-i. A n motsvarar A n, där n är ett heltal. Transponerar matriser (& vektorer). A = A T Linjära ekvationssystem A x = b löses av x = A 1 b. I Matlab skriver vi x=a\b
Manipulera matriser Plus, gånger osv. Manipulera matriser Operationer Några exempel A(3,2) avser elementet på rad 3 och kolonn 2 i A A(:,4) avser den kolonnvektor som ges av kolonn 4 i A A(2,:) avser den radvektor som ges av rad 2 i A A(3,2)=4.0 ändrar elementet på rad 3 och kolonn 2 till att vara 4.0 A(:,4)=2*A(:,4) dubblerar alla element i kolonn 4
Operationer Plus, gånger osv. Manipulera matriser Operationer Vektorer plot(x,y) Ritar en kurva med koordinaterna hämtade från x och y dot(x,y) Skalärprodukten. (Samma som x *y) cross(x,y) Vektorprodukten för vektorer i R 3 norm(x) Längden på vektorn, dvs x length(x) Dimensionen, dvs antal element i x. Mer information fås med help kommando
Operationer Plus, gånger osv. Manipulera matriser Operationer Matriser randn(m,n) Skapar en m n-matris med normalfördelade slumptal eig(a) Egenvärdena hos A inv(a) Inversen, dvs A 1. Undvik, om det går att använda \ eller /!!!! rref(a) Ta matrisen till reducerad trappstegsform (reduced row echelon form) det(a) Determinanten [m,n]=size(a) ger m antal rader och n antal kolonner i A Mer information fås med help kommando
Egna funktioner Egna funktioner/integraler Differentialekvationer Symbolic toolbox Exempel på en funktiondefinition exfun2.m function y = exfun2(x) y = x. 2.*exp(-x) Användning: >> t = 0:0.01:10; >> plot(t, exfun2(t)) 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 1 2 3 4 5 6 7 8 9 10
Integraler Egna funktioner/integraler Differentialekvationer Symbolic toolbox Exempel Integralen 6 beräknas i Matlab med >> quad(@exfun2, 0, 6) ans = 1.8761 0 x 2 e x dx Observera @ -tecknet framför funktionsnamnet.
Differentialekvationer Egna funktioner/integraler Differentialekvationer Symbolic toolbox Begynnelsevärdesproblemet y + t y 2 = e t, y(0) = 1 hanteras genom att man löser ut y och definierar en funktion för det som y är lika med y = e t t y 2 ger f (t, y) = e t t y 2 diffun.m function yp=diffun(t,y) yp=exp(-t)-t*y 2 I Matlab: >> [t,y] = ode45(@diffun,[0,5],1); där [0,5] är önskat intervall på t och 1 är begynnelsevärdet y(0) = 1.
Symbolic toolbox Egna funktioner/integraler Differentialekvationer Symbolic toolbox Integral Integralen 6 0 x 2 e x dx löses med: >> syms x >> int(x 2*exp(-x),0,6) ans = -50*exp(-6)+2 Differentialekvation Differentialekvationen t 2 y t y + y = t löses med: >> dsolve( t 2*D2y-t*Dy+y=t, t ) ans = t*c2+t*log(t)*c1+1/2*log(t) 2*t