Datatyper i MATLAB Tal

Relevanta dokument
Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26

Introduktion till MATLAB

(a) Skriv en matlabsekvens som genererar en liknande figur som den ovan.

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 2 november 2015 Sida 1 / 23

Beräkningsverktyg HT07

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan

KPP053, HT2016 MATLAB, Föreläsning 3. Plotter och diagram Läsa och skriva data till fil

Variabler. TANA81: Beräkningar med Matlab. Matriser. I Matlab skapas en variabel genom att man anger dess namn och ger den ett värde:

At=A' % ' transponerar en matris, dvs. kastar om rader och kolonner U' % Radvektorn U ger en kolonnvektor

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln

Variabler och konstanter

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

Introduktion till Matlab

TANA17 Matematiska beräkningar med Matlab

Enklast att skriva variabelnamn utan ; innehåll och variabelnamn skrivs ut

Numeriska Metoder och Grundläggande Programmering för P1, VT2014

Introduktion till Matlab

KPP053, HT2016 MATLAB, Föreläsning 2. Vektorer Matriser Plotta i 2D Teckensträngar

Kort om programmering i Matlab

Laboration 2: 1 Syfte. 2 Väntevärde och varians hos en s.v. X med fördelningen F X (x) MATEMATISK STATISTIK, AK FÖR BYGG, FMS 601, HT-08

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Matriser. Vektorer. Forts. Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

M0043M Integralkalkyl och Linjär Algebra, H14, Matlab, Föreläsning 1

Laboration: Grunderna i Matlab

% Föreläsning 4 22/2. clear hold off. % Vi repeterar en liten del av förra föreläsningen:

Linjär algebra med tillämpningar, lab 1

TAIU07 Matematiska beräkningar med Matlab

Dagens program. Programmeringsteknik och Matlab. Administrativt. Viktiga datum. Kort introduktion till matlab. Övningsgrupp 2 (Sal Q22/E32)

Mathematica. Utdata är Mathematicas svar på dina kommandon. Här ser vi svaret på kommandot från. , x

Matlabövning 1 Funktioner och grafer i Matlab

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

Innehåll. Vad är MATLAB? Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

Introduktion till Matlab

Introduktion till Matlab

MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc.

LAB 1. FELANALYS. 1 Inledning. 2 Flyttal. 1.1 Innehåll. 2.1 Avrundningsenheten, µ, och maskinepsilon, ε M

Instruktion för laboration 1

Matlabövning 1 Funktioner och grafer i Matlab

Textsträngar från/till skärm eller fil

Grafik och Egna funktioner i Matlab

Matriser. Vektorer. Grunderna i MATLAB 2. Informationsteknologi. Informationsteknologi.

Innehåll. Vad är MATLAB? Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

TAIU07 Matematiska beräkningar med MATLAB för MI. Fredrik Berntsson, Linköpings Universitet. 15 januari 2016 Sida 1 / 26

Introduktion till Matlab Föreläsning 2

ATT RITA GRAFER MED KOMMANDOT "PLOT"

TSBB14 Laboration: Intro till Matlab 1D

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

Programmering A. Johan Eliasson

TANA17 Matematiska beräkningar med Matlab

Datastrukturer. Erik Forslin. Rum 1445, plan 4 på Nada

Välkomna till Numme och MATLAB, 9 hp, för Materialdesign och Energi&Miljö, årskurs 2

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 21:a April klockan

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 27 oktober 2015 Sida 1 / 31

Mer om texter i MATLAB och om iterativ lösning av linjära ekvationssystem

Inledande programmering med C# (1DV402) 27+15=42 1 (22)

Funktioner och grafritning i Matlab

Matematisk Modellering

Kort om programmering i Python

Dagens föreläsning (F15)

Inbyggda funktioner i MATLAB

Grunderna i MATLAB. Beräkningsvetenskap och Matlab

Laborationstillfälle 1 Lite mer om Matlab och matematik

MATLAB. En kort praktisk introduktion. Olof Hultin FAFA Omarbetad efter original av Henrik Persson

Introduktion till Matlab

Du kan söka hjälp efter innehåll eller efter namn

Grafritning och Matriser

Introduktion till Matlab

CTH/GU LABORATION 1 MVE /2013 Matematiska vetenskaper. Mer om grafritning

Introduktion till Matlab

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

MATLAB - en kompakt introduktion av Tore Gustafsson

Matematisk Modellering

TANA17 Matematiska beräkningar med Matlab

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Objektorienterad programmering Föreläsning 4

Introduktion till Matlab

MMA132: Laboration 2 Matriser i MATLAB

TEKNISKA HÖGSKOLAN Matematik Fredrik Abrahamsson. Introduktion till MATLAB

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

Matlabföreläsningen. Lite mer och lite mindre!

Mer om funktioner och grafik i Matlab

Laboration: Grunderna i MATLAB

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser

Objektorienterad Programmering (TDDC77)

Övning2. Variabler. Data typer

Datorlära 3 Octave Workspace ovh mijlö Skriva text på skärmen Värdesiffror Variabler och typer Strängar Makro Vektorer

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

4.3. Programmering i MATLAB

Beräkningsvetenskap och Matlab. Vad är MATLAB? Vad är MATLAB? Användningsområden. Vad är MATLAB? Grunderna i Matlab. Beräkningsvetenskap == Matlab?

Beräkningsvetenskap föreläsning 2

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB

Välj Links i startmenyn och dubbelklicka på Matematik-mappen. Dubbelklicka därefter på MATLAB 5 - ikonen.

Pascal... Pascal. Pascal... Pascal...

LABORATION 2. Trapetsregeln, MATLAB-funktioner, ekvationer, numerisk derivering

Introduktion till Matlab

Språket Python - Del 1 Grundkurs i programmering med Python

Pascal. reserverade ord fördefinierade funktioner och procedurer egendefinierade funktioner, procedurer och objekt

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 8 december 2015 Sida 1 / 22

Transkript:

Datatyper i MATLAB Tal Heltal kan lagras med eller utan tecken, i 1, 2, 4 och 8 bytes. Standard (om inte annat anges) är 4 bytes, int32. De andra formaten är int8,int16, int64, uint8, uint16, uint32, uint64, där u anger utan tecken. Formaten används för att ange lagring, x=uint16(2015) lagras i två bytes utan tecken, intmax( uint16 ) är 65535 = 2 16 1. Flyttal lagras som single (4 bytes) eller double (8 bytes), som är standard. För single är 24 bitar taldel (med en bit tecken) och 8 bitar exponent (med en bit ±), för double 52 bitar taldel (med en bit ±) och 12 bitar exponent (med en bit ±). Komplexa tal lagras som talpar. Standard är två flyttal (16 bytes) men de andra formaten för flyttal och heltal kan också användas. Vid utskrift är format short (4 decimaler) standard, om inte annat anges. Anger man format long så får man 15 decimaler, med format rat får man ett rationellt tal, förkortat så långt det går. Exempel: 1495/2015 ger 0.7419, med format rat får man 23/31 Yngve Sundblad Föreläsning 9 sid. 1 SF 1518/19 ht 2015 28 sept.

Datatyper i MATLAB Tecken och Strängar Strängar (texter) består av vektorer av tecken, som vardera lagras i 2 bytes. De första 128 tecknen är 7-bits ASCII, resten fram till 65535 beror datorns teckenkoder. Tecken och strängar anges omgivna av blippar (apostrofer, primtecken) ' ' och enstaka tecken nås som vektorkomponenter. Exempel: s='holly' ger Holly och c=s(5) ger y Tecken kan blandas med tal i aritmetiska operationer och behandlas då som motsvarande teckenkod, medan om de blandas som vektorkomponenter går tal till tecken. Omvandling mellan kan ske med char(s)och, t.ex., uint16(). Exempel: uint16( b )ger 98, b -32 ger 66, char(66)ger B, ab +5 ger [102 103], [ c 98] ger cb, char(1065) ger kyrilliska Щ (på Macintosh), char(20000) ger kinesiska 丠 (på Mac) Yngve Sundblad Föreläsning 9 sid. 2 SF 1518/19 ht 2015 28 sept.

Datatyper i MATLAB Logiska värden Logiska villkor har formen a op b, där op kan vara == (OBS!), ~=, >, <, >=,<= Villkoren, som främst används i if-satser och while-satser, har värdet true eller värdet false. Värdena är alltså true eller false men de skrivs ut 1 eller 0. Villkoren kan sättas samman med logiska operatorerna ~ (icke), & (både och, sanna bara om båda är sanna), (inkluderande eller, sann om minst en är sann), samt med funktionen xor (exkluderande eller, sann bara om precis en är sann) I själva verket tolkas 1 (och alla tal 0) som sann och 0 som falsk som argument till de logiska operatorerna. Exempel: x=2; y=-2; z=0; Används: v=(x>y)&(x^2==y^2) ger 1 if v v=(x>y) (x^2==y^2) ger 1 disp( x+y är 0 ) v=xor(x>y,x^2=y^2) ger 0 else v=false ger 0 disp( x+y~=0 ) v=y&z ger 0 end v=x&y ger 1 Yngve Sundblad Föreläsning 9 sid. 3 SF 1518/19 ht 2015 28 sept.

Datatyper i MATLAB Symboliska värden Senaste versionen av MATLAB kan utföra symbolisk matematik som derivering, integrering, ekvationslösning, substitution mm. Resultaten kan föras över till numeriska beräkningar. Man måste tala om för MATLAB att en variabel är symbolisk, står för sig själv, vilket man kan göra direkt med x=sym( x ) eller syms x,varefter man kan skriva t.ex. L=x^2*sin(x) eller indirekt med L=sym( x^2*sin(x) ), varefter x blir symbolisk. I bägge fallen blir också L symbolisk. Sedan kan man derivera: dl=diff(l) ger x^2*cos(x) + 2*x*sin(x), integrera: IL=int(L) ger 2*x*sin(x) - cos(x)*(x^2 2), integrera med gränser: ILn=int(L,pi/2,pi) ger (pi + 1)*(pi - 2) Man kan manipulera uttryck med bl.a. funktionerna expand(), factor(), simplify(), subs(,), eval(): ILe=expand(IL) ger 2*cos(x) - x^2*cos(x) + 2*x*sin(x) ILne=expand(ILn) ger pi^2 - pi 2 factor(ilne) ger [pi + 1, pi - 2] Yngve Sundblad Föreläsning 9 sid. 4 SF 1518/19 ht 2015 28 sept.

Datatyper i MATLAB Symboliska värden, forts. Förenkling: ratfun=( (x^3-8*x^2 + 22*x - 20)/(x - 2) ) rfsimp=simplify(ratfun) ger x^2-6*x + 10 Ekvationslösning: x12=solve(rfsimp) ger [3 1i, 3 + 1i] xpq=solve('a*x^2+b*x+c') ger -(b + (b^2-4*a*c)^(1/2))/(2*a) -(b - (b^2-4*a*c)^(1/2))/(2*a) texp=solve('p=p0*exp(k*t)','t') ger texp värdet log(p/p0)/k Substitution och evaluering: f=sym('exp(x) +3*(x+2)'); g=subs(f, x, y-2 ) ger 3*y + exp(y - 2) y=2; eval(g) ger 7 Överföring till numeriska funktioner: gn=matlabfunction(g) ger @(y)y.*3.0+exp(y-2.0), gn(2) ger 7 Yngve Sundblad Föreläsning 9 sid. 5 SF 1518/19 ht 2015 28 sept.

Datastrukturer i MATLAB Den dominerande datastrukturen är matrisen, där alla typer av data kan lagras. Ett tal ses som special fall, 1x1-matris. Vid inmatning till [ ] åtskiljer komma eller blank radelementen och semikolon eller radbyte raderna. Viktiga operatorer är ' som transponerar, : som anger intervall, + * / ^ som vanliga operationer.*./.^ som elementvis operationer, \ för ekvationslösning resp. minsta kvadratanpassning Man kan göra en struktur med namn på komponenter: strukt.a=1:3; strukt.b='bcdef' ; strukt.c=[11 13 17 19]; strukt ger a: [1 2 3] b: 'bcdef' c: [11 13 17 19] Vissa funktioner för numeriska metoder, t.ex. pchip(,), ger strukturer som resultat. Vid anropet får man veta vad komponenterna betyder. Det finns också att strukturera i tabell, se help table. Det är överkurs. Yngve Sundblad Föreläsning 9 sid. 6 SF 1518/19 ht 2015 28 sept.

Exempel på datalagring A=1; B=[1:10]; C=[1 2,3;4,5,6]; D=single(5); E=int8(10); F=5+3i; G=int8(5+3i); H= Holly ; K= MATLAB is fun ; L=sym( x^2-x ); M=[true,false,true]; N=eye(1000); P=sparse(N); För utförlig information i Workspace klicka på Observera att även tal ses som matriser (samma symbol). och välj Choose Columns Om man vet att en matris är gles (sparse) kan den lagras kompakt. Yngve Sundblad Föreläsning 9 sid. 7 SF 1518/19 ht 2015 28 sept.

Diagramhantering Vi har redan haft ett antal exempel på plottning med plot(, ). Parametrarna ska vara vektorer med parvis samma dimensioner. Man kan alltså, med flera uppsättningar parametrar, rita flera kurvor och punkter i samma diagram. Vill man se en i taget kan man göra pause och gå vidare med tangenttryckning. För fler kurvutmatningar efter varandra i samma diagram gör hold Man kan tillfoga texter som diagramrubrik och dess axlar med title( ), xlabel( ), ylabel( ). Med legend(,,, ) sätter man förklaring på kurvorna. Man kan sätta skalor på axlarna med axis(xmin,xmax,ymin,ymax) Lika skalor på axlarna får man med axis equal Text i diagrammets punkt (x,y) får man med text(x,y, ). gtext( ) ger möjlighet att klicka där man vill ha texten. Alla dessa kommandon ger man direkt efter plot-anropet. Yngve Sundblad Föreläsning 9 sid. 8 SF 1518/19 ht 2015 28 sept.

Diagramhantering, forts. Kurvor och punkter kan ges egenskaper i en tredje textparameter ( ur Holly Moore s bok): Exempel: x=0:pi/2:7*pi; y=5*cos(x); xv=0:pi/100:7*pi; yv=cos(xv); z=1:0.01:7*pi; u=log(z)/3; plot(x,y, pb',xv,yv,'--g',z,u,'-.r'); legend('extrema', cos(x)', ln(z)/3 ); title('kurvegenskapillustration'); xlabel('x- resp. z-axeln'); ylabel('funktionsvaerden ); axis ([0,20,-1.5,1.5]); Yngve Sundblad Föreläsning 9 sid. 9 SF 1518/19 ht 2015 28 sept.

Resulterande graf Yngve Sundblad Föreläsning 9 sid. 10 SF 1518/19 ht 2015 28 sept.

Andra typer av tvådimensionella diagram Polärt polar(r,v) plottar r=f(v) i polära koordinater. På nästa sida subplot(2,2,1);v=0:pi/100:2*pi;r=cos(4*v);polar(v,r) Semilog semilogx(x,y) plottar y=f(x) med logaritmisk x-axel, linjär y-axel subplot(2,2,2);x=0:0.5:100;y=1/x; semilogx(x,y) semilogy(x,y) plottar y=f(x) med linjär x-axel, logaritmisk y-axel. subplot(2,2,2);x=0:0.5:100;y=1/x; semilogx(x,y) Loglog loglog(x,y) plottar y=f(x) med logaritmiska x- och y-axlar. subplot(2,2,4);x=0.5:0.5:100;y=1./x; loglog(x,y) Observera linje med lutningen -1. I MATLAB finns också möjligheter att göra histogram, stolp-, paj- och 3D-diagram, intressanta men överkurs. Gör help hist, help bar, help pie, help bar3, help pie3 och help plot3 för information. Mer på föreläsning 13 med utblickar. Yngve Sundblad Föreläsning 9 sid. 11 SF 1518/19 ht 2015 28 sept.

De icke-linjära diagrammen Yngve Sundblad Föreläsning 9 sid. 12 SF 1518/19 ht 2015 28 sept.

In- och utmatning från terminal i MATLAB För inmatning finns n=input('?') som ställer frågan och väntar på ett tal. n=input('?,'s') väntar på en textsträng. [x y]=ginput(n) väntar på n klick på punkter i graffönstret. För utmatning finns disp() som skriver ut ett värde. fprintf(' ',v1,v2, vn) skriver ut värdena av v1 vn med formatkoderna i tabellerna till höger. I ' ' kan ingå annan text. Yngve Sundblad Föreläsning 9 sid. 13 SF 1518/19 ht 2015 28 sept.

In- och utmatning med filer i MATLAB Det finns möjligheter att spara och läsa in och spara på inte bara textfiler utan också, excelfiler, ljud, bilder och filmer. Här nöjer vi oss med möjligheten att spara innehållet i workspace: save( filnamn ) sparar detta innehåll i filnamn.mat Man kan välja att bara spara vissa variablers innehåll med save( filnamn, v1, v2, vn ) Innehållet återfår man till workspace med load( filnamn ) Exempel: A=ones(1000,1000); save( t ) A=17; size(a) ger [ 1 1] load( t ) size(a) ger [ 1000 1000] Yngve Sundblad Föreläsning 9 sid. 14 SF 1518/19 ht 2015 28 sept.