Glesa matriser från randvärdesproblem

Relevanta dokument
Föreläsning 14: Exempel på randvärdesproblem. LU-faktorisering för att lösa linjära ekvationssystem.

Tentamen, del 2 Lösningar DN1240 Numeriska metoder gk II F och CL

NUMPROG, 2D1212, vt Föreläsning 9, Numme-delen. Stabilitet vid numerisk behandling av diffekvationer Linjära och icke-linjära ekvationssystem

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

Laboration 6. Ordinära differentialekvationer och glesa system

Mer om linjära ekvationssystem

Egenvärdesproblem för matriser och differentialekvationer

FYSIKENS MATEMATISKA METODER

Introduktion till MATLAB

linjära ekvationssystem.

Linjära ekvationssystem

TANA17 Matematiska beräkningar med Matlab

Linjära ekvationssystem

TANA17 Matematiska beräkningar med Matlab

Flervariabelanalys E2, Vecka 3 Ht08

Matriser och vektorer i Matlab

TAIU07 Matematiska beräkningar med Matlab

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

FMNF15 HT18: Beräkningsprogrammering Numerisk Analys, Matematikcentrum

1.1 MATLABs kommandon för matriser

Mer om linjära ekvationssystem

Teorifrågor. 6. Beräkna konditionstalet för en diagonalmatris med diagonalelementen 2/k, k = 1,2,...,20.

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 20

Matriser och linjära ekvationssystem

FEM1: Randvärdesproblem och finita elementmetoden i en variabel.

TAIU07 Matematiska beräkningar med Matlab

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

Linjära ekvationssystem i Matlab

Flervariabelanalys och Matlab Kapitel 3

Laboration: Vektorer och matriser

Tentamen i Beräkningsvetenskap I/KF, 5.0 hp,

1 Positivt definita och positivt semidefinita matriser

Matrismetod för analys av stångbärverk

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

LAB 4. ORDINÄRA DIFFERENTIALEKVATIONER. 1 Inledning. 2 Eulers metod och Runge-Kuttas metod

Mer om linjära ekvationssystem

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

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

Matriser och linjära ekvationssystem

TMV166 Linjär algebra för M. Datorlaboration 2: Matrisalgebra och en mekanisk tillämpning

NUMPROG, 2D1212, vt Föreläsning 1, Numme-delen. Linjära ekvationssystem Interpolation, Minstakvadratmetoden

Linjär algebra med MATLAB

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

Tentamen, del 2 DN1240 Numeriska metoder gk II för F

Matriser och vektorer i Matlab

2 Matrisfaktorisering och lösning till ekvationssystem

15 februari 2016 Sida 1 / 32

SF1669 Matematisk och numerisk analys II Lösningsförslag till tentamen DEL A. r cos t + (r cos t) 2 + (r sin t) 2) rdrdt.

MMA132: Laboration 2 Matriser i MATLAB

Linjära ekvationssystem

TSBB14 Laboration: Intro till Matlab 1D

TMA226 datorlaboration

Vectorer, spannet av vektorer, lösningsmängd av ett ekvationssystem.

OH till Föreläsning 15, Numme K2, God programmeringsteknik

Matlab övningsuppgifter

Moment 5.5 Övningsuppgifter I 5.60a. 5.60b, 5.60.c, 61

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

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

Denna föreläsning. DN1212 Numeriska metoder och grundläggande programmering FN Runge-Kuttas metoder. Repetition av FN6 (GNM kap 6.

5B1146 med Matlab. Laborationsr. Laborationsgrupp: Sebastian Johnson Erik Lundberg, Ann-Sofi Åhn ( endst tal1-3

Studio 6: Dubbelintegral.

Karta över Jorden - viktigt exempel. Sfär i (x, y, z) koordinater Funktionen som beskriver detta ser ut till att vara

TANA17 Matematiska beräkningar med Matlab

Matriser och Inbyggda funktioner i Matlab

SF1624 Algebra och geometri Lösningsförsag till modelltentamen

Linjär algebra. 1 Inledning. 2 Matriser. Analys och Linjär Algebra, del B, K1/Kf1/Bt1. CTH/GU STUDIO 1 TMV036b /2013 Matematiska vetenskaper

Omtentamen i DV & TDV

Projekt Finit Element-lösare

2 februari 2016 Sida 1 / 23

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

TAIU07 Matematiska beräkningar med Matlab

Introduktion till Matlab

Kurs DN1215, Laboration 3 (Del 1): Randvärdesproblem för ordinära differentialekvationer

4.4. Mera om grafiken i MATLAB

Moment Viktiga exempel Övningsuppgifter

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 2

Laboration 1 i SF1544: Öva på Matlab och konstruera en optimal balk Avsikten med denna laboration är att:

Flervariabelanlys och Matlab Kapitel 3

3 Man kan derivera i Matlab genom att approximera derivator med differenskvoter. Funktionen cosinus deriveras för x-värdena på följande sätt.

Denna föreläsning. DN1212 Numeriska metoder och grundläggande programmering FN Differentialekvationer. Repetition av FN5 (GNM kap 6.

6. Temperaturen u(x) i positionen x av en stav uppfyller värmeledningsekvationen. u (x) + u(x) = f(x), 0 x 2, u(0) = 0 u(2) = 1,

Minsta kvadratmetoden

6. Matriser Definition av matriser 62 6 MATRISER. En matris är ett rektangulärt schema av tal: a 11 a 12 a 13 a 1n a 21 a 22 a 23 a 2n A =

Grafritning och Matriser

Numerisk lösning till den tidsberoende Schrödingerekvationen.

Block 2: Lineära system

Beräkningsverktyg HT07

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

Vi betraktar homogena partiella differentialekvationer (PDE) av andra ordningen

ax + y + 4z = a x + y + (a 1)z = 1. 2x + 2y + az = 2 Ange dessutom samtliga lösningar då det finns oändligt många.

Linjär algebra på några minuter

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

8 Minsta kvadratmetoden

Mer om funktioner och grafik i Matlab

SF1624 Algebra och geometri Lösningsförslag med bedömningskriterier till kontrollskrivning 2 Måndagen den 24 september, 2012

OH till Föreläsning 14, Numme I2, God programmeringsteknik

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A

Omtentamen i DV & TDV

9.3. Egenvärdesproblem

Grafer och grannmatriser

Transkript:

Bengt Lindberg 54 2D24, Numeriska metoder gk2 för F2 Glesa matriser från randvärdesproblem Vi skall i detta häfte bekanta oss med finita differensmetoder för linjära randvärdesproblem för ordinära och partiella differentialekvationer. Tonvikten ligger på Matlab-programmering, och specifikt representation och generering av de glesa linjära ekvationssystem som erhålls. Representation av gles matris i Matlab I Matlab kan element a ij i en gles matris A lagras som en tripel (i,j,s), däri anger radindex, j kolumnindex, och s elementets numeriska värde. Hela matrisen lagras i tre lika långa vektorer ivek,jvek,svek, där vektorkomponenter med samma index ger en trippel som representerar ett matriselement. Exempel Matrisen A = 3 7 4 2 5 representeras av de tre vektorerna ivek. jvek, svek med vardera sex komponenter. index ivek jvek svek 3 2 3 4 3 2 2 7 4 4 3 2 5 4-6 4 4-5 I Matlab kan en matris representeras på vanligt sätt som en tvådimensionell arrayeller som en gleslagrad matris. Det finns enkla kommandon för att växla mellan representationerna, se exemplet nedan. Exempel, fortsättning A=[3-7 4 2-5]; gles= sparse(eng.) betyder att koefficientmatrisen innehåller många nollor

As=sparse(A); spy(as) % samma matriser, genererade från vektorer ivek=[;3;2;4;;4]; jvek=[;;2;3;4;4]; svek=[3;4;7;2;-;-5]; Bs=sparse(ivek,jvek,svek); B=full(Bs); Kommandona sparse, full används bl.a. för konvertering mellan representationerna. Kommandot spy ger en grafisk representation av glesstrukturen (hur icke-nollorna ligger) för matrisen. Programsnutten finns i biblioteket och heter gles.m. 2 Diskretisering av linjärt randvärdesproblem, ODE Vi skall bestämma lösningen till randvärdesproblemet y + a xy =(6 y)x, y() =,y(4) =, x 4 för a =2. Problemet med lösning finns i NAM, sec. 8.7.3. För framtida bruk (lab 3) inför vi lite andra beteckningar och skriver problemet y + p(x)y =(6 y)x, y() =,y(4) =, x 4 med p(x) = a x. Med hjälp av härledningen i NAM formulerar vi följande program, randvdnaiv.m %Indatadel N=9; a=; b=4;alfa=; beta=-; p=inline( 2*sqrt(x), x ); %Förberedelser--definiera diskretiseringsnätet h=(b-a)/(n+); xinre=[a+(:n)*h]; %de inre diskretiseringspunkterna genereras % indiceras,2,... N i vektorn xinre x=[a, xinre, b]; %alla punkterna lagras i vektorn x % de inre punkterna har index 2,3,--- N+ % i vektorn x %------------------------------------------------------------------- %Generera matrisen och högerledet A=sparse(N); %Anger att N x N matrisen A skall lagras % som en gles matris b=zeros(n,); 2

for i=:n A(i,i)=-2/h^2+xinre(i); if i>, A(i,i-)=/h^2-p(xinre(i))/(2*h); if i<n, A(i,i+)=/h^2+p(xinre(i))/(2*h); b(i)=6*xinre(i); %------------------------------------------------------------------- %korrigera första och sista komponenten av högerledsvektorn %för randvärdena. b()=b()-(/h^2-p(xinre())/(2*h))*alfa; b(n)=b(n)-(/h^2+p(xinre(n))/(2*h))*beta; %Lös ekvationssystemet och presentera lösningen yinre=a\b; y=[alfa; yinre; beta] ; plot(x,y) [x((n+)/2+) y((n+)/2+) ] %lösn. i mittpunkten Koefficientmatrisen kan alternativt byggas upp från tre vektorer som får representera matriselementen, programdelen ovan Generera matrisen och högerledet ersätts av nedanståe rader, se programmet randvdvekt.m %Generera matrisen och högerledet %Vektororienterad generering av systemet %Generera referenser och värden för matriselementen i=:n; j=:n; s=-2/h^2+xinre; %diagonal i=[i 2:N]; j=[j :N-]; s=[s /h^2-p(xinre(2:n))/(2*h)]; %under i=[i :N-]; j=[j 2:N]; s=[s /h^2+p(xinre(:n-))/(2*h)]; %över %skapa den gleslagrade matrisen från vektorerna ovan A=sparse(i,j,s); spy(a) %skapa högerledet-måste vara kolumnvektor b=6*xinre ; Koefficientmatrisen kan alternativt byggas genom att centrumpunkten i beräkningsmolekyleerna nedan får svepa över de inre punkterna i diskretiseringsnätet och skapa matri- 3

selementen som berörs av molekylerna. 2 Denövremolekylenärenrepresentationavh 2 gånger cetraldifferensapproximationen av andraderivatan. Den undre molekylen representerar 2h gånger en approximation till förstaderivatan. Se programmet randvdgles.m nedan. En typisk ekvation ser ut enligt y H 2y C + y V h 2 + p(x C ) y H y V 2h + x C y C =6x C Här står y för lösningen, index står för läget i molekylen; H = höger, C = centrumpunkten, V = vänster. Om molekylen berör en randpunkt flyttas motsvarande term över i högerledet, tyi randpunkterna är y känd. Detta förfaringssätt kan med fördel generaliseras till två- och tre-dimensionella randvärdesproblem, se senare delen av detta häfte. Genereringen av koefficientmatrisen sköts av programmet genom analys av närbelägna diskretiseringspunkter (lokalt), så hela matrisen ej behöver formuleras för hand (globalt). %Indatadel N=399; a=; b=4;alfa=; beta=-; p=inline( 2*sqrt(x), x ); %Förberedelser--definiera diskretiseringsnätet. Detta %förfaringssätt kan generaliseras till 2 och 3 dimensioner, %se senare delen av häftet h=(b-a)/(n+); x=[a, a+(:n)*h, b]; %alla diskretiseringspunkterna lagras i vektorn x G=(x>a & x<b); %markera inre punkter i x-vektorn inre=find(g); %index i x-vektorn för inre punkter,radvektor rand=find(g==); %index i x-vektorn för randpunkter, %används ej i detta program G=zeros(size(G)); %konvertera G från logical till double G(inre)=(:length(inre)) ; %numrera de obekanta (i de inre punkterna) %G har två uppgifter, skilja på randpunkter %och inre punkter, samt numrera de %obekanta. Randpunkter markeras med. xi=x(inre); %de inre x-värdena numreras på samma %sätt som de obekanta 4

rad=[]; kol=[]; varde=[]; %loopa över alla de inre punkterna och konstuera triplar för %de nollskilda matriselementen, rad efter rad. for nr=inre %generera diagonalelementen i=g(nr); j=g(nr); s=-2/h^2+xi(g(nr)); rad=[rad, i]; kol=[kol, j]; varde=[varde, s]; %generera utomdiagonala elementen: bestäm index %för de två möjliga grannarna till en diskretiseringspunkt, %om diskretiseringspunkten har en randpunkt till granne %genereras inget matriselement för denna granne. for k= [- ] Q=G(nr+k); if Q ~= i=g(nr); j=q; s=/h^2+p(xi(g(nr)))*k/(2*h); rad=[rad, i]; kol=[kol, j]; varde=[varde, s]; A=sparse(rad,kol,varde); %högerledet i ekvationssystemet, programmeras mer %systematiskt för flerdimensionella problem b=6*xi ; %första och sista komponenten av högerledet modifieras %pga av randvillkoren. b()=b()-(/h^2-p(xi())/(2*h)); b(n)=b(n)+(/h^2+p(xi(n))/(2*h)); %Lös ekvationssystemet och presentera lösningen yinre=a\b; y=[alfa; yinre; beta] ; plot(x,y), [x((n+)/2+) y((n+)/2+) ] Programmet kan effektiviseras genom att eliminera foor-loopen och skapa vektorerna i, j, s gruppvis i stället. Programmet blir mer svårläst med den konstruktionen, så vi genomför den inte. 5

Om något av programmen exekveras med N=9 erhålls nedanståe graf för den approximativa lösningen 2 3 4 5 6 7 8 9.5.5 2 2.5 3 3.5 4 Med kommandot spy(a) får vi följande bild av strukturen av icke-nollor (tridiagonal matris) 2 4 6 8 2 4 6 8 2 2 4 6 8 2 4 6 8 2 nz = 55 Med kommandot full(a(:5,:5)) skriver vi ut den avsnittsmatris som består av de första fem raderna och kolumnerna av koefficientmatrisen A. -49.8 27.236 2.8377-49.6 28.623 2.27-49.4 28.873 2.5279-49.2 29.472 2. -49. 6

3 Diskretisering av Poissons ekvation, PDE Poissons ekvation i två rumsdimensioner lyder 2 u x + 2 u = f(x, y) 2 y2 Ekvationen gäller i ett område Ω i (x, y)-planet. På randen Ω är funktionen u(x, y) =g(x, y) känd. Exempel 2 2 u x 2 + 2 u = f(x, y) y2 med f(x, y) = 2π 2 sin πx cos πy. Området är kvadraten Ω=/ x, y / och randvärdena ges av x=- x= g(x, y) = sin πx y=- sin πx y= 3. Diskretisering av området Området diskretiseras med ekvidistant steg h =2/(N +) i såväl x led som y led enligt x i = +i h, i =,, 2,...N +, y j = +j h, j =,, 2,...N + Ett diskretiseringsnät med punkter (x i,y j ) läggs över kvadraten. Följande programsnutt genererar två matriser x och y med x- oc h y-koordinaterna för alla diskretiseringspunkterna. N=4; hx=2/(n+); hy=hx; x = ones(n+2,)*[-, -+(:N)*hx, ]; y = flipud(x ); %kasta om raderna i matrisen, sista blir första osv. G = (x > -) & (x < ) & (y > -) & (y < ); %markera inre punkter inre=find(g); %returns the indices that are %non-zero, columnvector % G is regarded as a vector G = zeros(size(g)); % Convert from logical to double matrix G(inre)=(:length(inre)) ; % Numbering of the interior nodes Um=zeros(size(G)); %prepare solutionvector De två matriserna blir med detta N-värde x = -. -.6 -.2.2.6. -. -.6 -.2.2.6. -. -.6 -.2.2.6. -. -.6 -.2.2.6. -. -.6 -.2.2.6. -. -.6 -.2.2.6. y =.......6.6.6.6.6.6.2.2.2.2.2.2 -.2 -.2 -.2 -.2 -.2 -.2 -.6 -.6 -.6 -.6 -.6 -.6 -. -. -. -. -. -. 7

Från satsen G=... genomförs en konsekutiv numrering av de inre diskretiseringspunkterna. De obekanta kommer senare att numreras på detta sätt. De punkter som inte är inre punkter markeras med nollor. Programsnutten ger förljande matris G. G = 5 9 3 2 6 4 3 7 5 4 8 2 6 Om vi behöver få tillgång till x-koordinaten för den diskretiseringspunkt som har numret 4 så kan vi skriva x(inre(4)). Om vi vill ha y-koordinaten till den randpunkt som ligger ovanför diskretiseringspunkt nr 5 skriver vi y(inre(5)-). x- koordinaten till den randpunkt som ligger till höger om diskretiseringspunkt nr 4 skriver vi x(inre(4)+m) med m=6 lika med antalet rader i matrisen G. En matris i Matlab kan refereras med ett index; matrisen uppfattas då som den vektor som erhålls om kolumnerna staplas på varandra med första kolumnen överst och sista kolumnen underst. 3.2 Diskretisering av ekvationen De partiella derivatorna diskretiseras med hjälpa av beräkningsmolekylen 4 Molekylen är en representation av summan av centraldifferensapproximationer till andraderivatorna i x-led och y-led, och approximerar h 2 ( 2 u x 2 + 2 u y 2 ) Koefficientmatrisen byggs upp genom att centrumpunkten i beräkningsmolekylen ovan får svepa över de inre punkterna i diskretiseringsnätet och skapa de matriselement som berörs av molekylen. De obekanta och ekvationerna numreras konsekutivt som i matrisen G. En typisk ekvation ser ut enligt u W u N +4u C u S u E = h 2 f(x C,y C ) Här står u för lösningen, index för läget i molekylen; W = väst, N = norr, C = centrum, S = syd, E = öst. I de fall något eller några av värdena på vänster sida är kända från randvillkor flyttas motsvarande värde över i högerledet, dvs där beräkningsmolekylen berör en randpunkt modifieras högerledsvektorn med motsvarande randvärde, se programmet randv2dgles.m. Varje inre punkt motsvarar en ekvation i ekvationssystemet, med början i den övre vänstra inre punkten. Ekvationer och obekanta numreras på samma sätt. För varje inre punkt skall du titta på dina grannar i riktningarna öst, väst, nord och syd (om du beginner dig i ett 3-dimensionellt område skall du också betrakta grannarna över och under dig). Om din granne i den aktuella riktningen också är en inre punkt skall du generera ett element i koefficientmatrisen (- i vårt fall). Om grannen är en randpunkt så är funktionsvärdet känt och du kan föra över den på högra sidan om likhetstecknet. Gör detta i varje riktning och ge också diagonalelementet i koefficientmatrisen sitt värde (4 i vårt fall), innan du går vidare till nästa punkt. 8

clear, clf, hold off fchl=inline( -2*pi^2*sin(pi*x).*cos(pi*y), x, y ); fcrd=inline( sin(pi*x).*cos(pi*y), x, y ); %--------------------------------------------------------------------- N=5; hx=2/(n+); hy=hx; x = ones(n+2,)*[-, -+(:N)*hx, ]; y = flipud(x ); %kasta om raderna i matrisen, sista blir första osv. G = (x > -) & (x < ) & (y > -) & (y < ); %mark inner points %the dimension of G %is the same as for %x and y inre=find(g); %returns the indices that are %non-zero, columnvector % G is regarded as a vector G = zeros(size(g)); % Convert from logical to double matrix G(inre)=(:length(inre)) ; % Numbering of the interior nodes Um=zeros(size(G)); %prepare the solutionmatrix %generate matrix and righthandside---------------------------------------- [m,n] = size(g); %find dimension of matrix G, m is the distance %in index between elements in the same row fg=-fchl(x(inre),y(inre))*hx^2; % Indices of interior points rad=[]; kol=[]; varde=[]; for nr = inre %här måste stå en radvektor för att vi skall ta %komponent för komponent % Connect interior points to themselves with 4 s. (diagonal elements) i = G(nr); j = G(nr); s = 4; rad=[rad; i]; kol=[kol;j]; varde=[varde;s]; % for k = north, east, south, west for k = [- m -m] % Possible interior neighbors in k-th direction Q = G(nr+k); if Q~= i=g(nr); j=q; s=-; rad=[rad; i]; kol=[kol;j]; varde=[varde;s]; else %boundary point--correct right hand side i=g(nr); if ( (k==-) (k==) ) xx=x(nr);yy=y(nr+k); else xx=x(nr+k); yy=y(nr); sl=fcrd(xx,yy); fg(i)=fg(i)+sl; Um(nr+k)=sl; D = sparse(rad,kol,varde); 9

u=d\fg; Usav=fcrd(x,y);%möjligt för testproblem %då exakta lösningen är känd --lika med randfunktionen %subplot(2,2,2); %surfc(x,y,usav) Um(inre)=u; %Um(find(Um==))=inf; subplot(2,2,) surfc(x,y,um) err=um-usav; fel=norm(max(err),inf) %möjligt då exakt lsg känd subplot(2,2,3) surfc(x,y,err) Då programmet exekveras med N=5 erhålls nedanståe grafer för den approximativa lösningen respektive felet 2 2.2.2

Med kommandot spy(d) får vi följande bild av strukturen av icke-nollor (bandmatris) 5 5 2 5 5 2 nz = 65 Med kommandot spy(d(:4,:4)) får vi följande mer detaljerade bild av strukturen av icke-nollor i det övre vänstra hörnet av koefficientmatrisen. 5 5 2 25 3 35 4 5 5 2 25 3 35 4 nz = 64 Med kommandot full(d(:6,:6)) skriver vi ut den avsnittsmatris som består av de första sexton raderna och kolumnerna av koefficientmatrisen D. 4 - - - 4 - - 4 - - 4 - - 4 - - 4 - - 4 - - 4 - - 4 - - 4 - - 4 - - 4 - - 4 - - 4 - - 4-4

3.3 Oregelbundet område Poissons ekvation på ett område som utgör en delmängd av den kvadrat vi jobbade med i sektion 3. diskretiseras med i stort sett samma program som tidigare. För ett L-format område enligt x, y med delen i fjärde kvadranten bortskuren, ersätts satsen som ger de inre punkterna av följande %L-format område G = (x > -) & (x < ) & (y > -) & (y < ) & ( (x > ) (y > )); Resten av programmet randv2dgles.m fungerar utan förändringar. För utskrifterna ändras de sista satserna lite enligt Um(inre)=u; Um(find(Um==))=inf; subplot(2,2,) surfc(x,y,um) err=um-usav; fel=norm(max(err(inre)),inf) subplot(2,2,3) surfc(x,y,err) Plotbilden från programmet blir, efter 3D-rotation av de två bilderna direkt i grafikfönstret. 2 2.5.5.2.2.5.5 I grafikfönstret finns bredvis förstoringsglasen en symbol i form av en cirkulär streckad pil. Om man klickar på den kan bilden i grafikfönstret roteras. För besvärligare randfunktioner och högerledsfunktioner kan inte inline-funktioner användas, utan de måste skrivas som friståe Matlab-funktioner i egna filer. 2