Grafritning kurvor och ytor

Relevanta dokument
Grafritning kurvor och ytor

Funktionsytor och nivåkurvor

Funktionsytor och nivåkurvor

Kurvor, fält och ytor

Mer om funktioner och grafik i Matlab

Matlab övningsuppgifter

Parametriserade kurvor

Mer om funktioner och grafik i Matlab

Flervariabelanlys och Matlab Kapitel 1

Fall 1. En kurva definierad för positiva x roterar kring z-axeln.

Några geometriska konstruktioner i R 3

Grafik och Egna funktioner i Matlab

Homogena koordinater och datorgrafik

Funktioner och grafritning i Matlab

Mer om funktioner och grafik i Matlab

Matriser och Inbyggda funktioner i Matlab

Minsta-kvadratmetoden

Linjära ekvationssystem

SF1669 Matematisk och numerisk analys II Lösningsförslag till tentamen DEL A

Datorlaborationer i matematiska metoder E1, del C, vt 2002

SF1626 Flervariabelanalys

Funktioner och grafritning i Matlab

Integranden blir. Flödet ges alltså av = 3

Transformationer i R 2 och R 3

Övningar till kapitel 1

Matriser och Inbyggda funktioner i Matlab

Grafritning och Matriser

SF1626 Flervariabelanalys

Gemensamt projekt: Matematik, Beräkningsvetenskap, Elektromagnetism. Inledning. Fysikalisk bakgrund

SF1626 Flervariabelanalys Bedömningskriterier till tentamen Onsdagen den 15 mars 2017

Kap Funktioner av flera variabler, definitionsmängd, värdemängd, graf, nivåkurva. Gränsvärden, kontinuitet.

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

Geometriska transformationer

Mer om geometriska transformationer

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

Laborationstillfälle 1 Lite mer om Matlab och matematik

En normalvektor till g:s nivåyta i punkten ( 1, 1, f(1, 1) ) är gradienten. Lektion 6, Flervariabelanalys den 27 januari z x=y=1.

15 Multipelintegraler, sfäriska koordinater, volymberäkningar

3 Parameterframställningar

Lektion 1. Kurvor i planet och i rummet

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

7 Extremvärden med bivillkor, obegränsade områden

Linjärisering, Jacobimatris och Newtons metod.

Optimeringsproblem. 1 Inledning. 2 Optimering utan bivillkor. CTH/GU STUDIO 6 TMV036c /2015 Matematiska vetenskaper

Dubbelintegraler. 1 Inledning. 2 Rektangelregeln. CTH/GU LABORATION 5 MVE /2018 Matematiska vetenskaper

Platonska kroppar med Matlab

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

MATLAB övningar, del1 Inledande Matematik

Flervariabelanlys och Matlab Kapitel 4

Linjära system av differentialekvationer

2301 OBS! x används som beteckning för både vinkeln x och som x-koordinat

TANA17 Matematiska beräkningar med Matlab

Lektion 2. Funktioner av två eller flera variabler variabler

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

Matriser och vektorer i Matlab

1. För vilka värden på konstanterna a och b är de tre vektorerna (a,b,b), (b,a,b) och (b,b,a) linjärt beroende.

SF1626 Flervariabelanalys Lösningsförslag till tentamen DEL A

Tentamen: Lösningsförslag

Lösningsförslag till tentamen Onsdagen den 15 mars 2017 DEL A

Flervariabelanalys och Matlab Kapitel 4

SF1626 Flervariabelanalys Lösningsförslag till tentamen DEL A

Om att rita funktioner av två variabler

Studio 6: Dubbelintegral.

SF1626 Flervariabelanalys

Institutionen för matematik SF1626 Flervariabelanalys. Lösningsförslag till tentamen Måndagen den 5 juni 2017 DEL A

Introduktion till Matlab

Lektionsblad 9, tis 16/2 2010

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

ATT RITA GRAFER MED KOMMANDOT "PLOT"

Matlabövning 1 Funktioner och grafer i Matlab

SF1626 Flervariabelanalys Tentamen Onsdagen den 15 mars 2017

i punkten ( 1,2,3). b) Bestäm riktningsderivatan av f i punkten ( 1,2) ut ur Scandinavium genom tak och yttervägg [Scandinaviums tak är ytan ( x, y,

Moment Viktiga exempel Övningsuppgifter I

Föreläsningar. Anders Johansson tis

Introduktion till Matlab

Problem inför KS 2. Problem i matematik CDEPR & CDMAT Flervariabelanalys. KTH -matematik

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

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.

! &'! # %&'$# ! # '! &!! #

Introduktion till Matlab

MATEMATIK Datum: Tid: förmiddag Hjälpmedel: inga. Mobiltelefoner är förbjudna. A.Heintz Telefonvakt: Christoffer Standar, Tel.

Mer om linjära ekvationssystem

Programmeringsuppgift Game of Life

Introduktion till Matlab

Matriser och linjära ekvationssystem

20 Integralkalkyl i R 3

Det är lätt att hitta datorprogram som ritar kurvor av enkla funktionsuttryck,

TAIU07 Matematiska beräkningar med Matlab

SF1626 Flervariabelanalys Lösningsförslag till tentamen DEL A. 1. En svängningsrörelse beskrivs av

Tentamen i tmv036c och tmv035c, Analys och linjär algebra C för K, Kf och Bt A =, = det(a λi) = e 2t + c 2. x(t) = c 1. = c 1.

Lösningsförslag till tentamen Torsdag augusti 16, 2018 DEL A

INGA HJÄLPMEDEL. Lösningarna ska vara försedda med ordentliga motiveringar. xy dxdy,

TATA69 Flervariabelanalys Kompletterande uppgifter ht 2016

LUNDS TEKNISKA HÖGSKOLA MATEMATIK. LÖSNINGAR FLERDIMENSIONELL ANALYS, FMA kl 8 13

Matlabövning 1 Funktioner och grafer i Matlab

MATEMATIK Datum: Tid: förmiddag Hjälpmedel: inga. Mobiltelefoner är förbjudna. A.Heintz Telefonvakt: Christo er Standar, Tel.

Lösningsförslag till tentamen Tisdagen den 10 januari 2017 DEL A

c d Z = och W = b a d c för några reella tal a, b, c och d. Vi har att a + c (b + d) b + d a + c ac bd ( ad bc)

Uppsala Universitet Matematiska Institutionen Bo Styf

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

Transkript:

CTH/GU STUDIO TMV6c - / Matematiska vetenskaper Grafritning kurvor och tor Anals och Linjär Algebra, del C, K/Kf/Bt Inledning En graf till en funktion i en variabel f : R R är mängden {(, ) : = f()}, dvs. en kurva i planet. En graf till en funktion i två variabler f : R R är mängden {(,, z) : z = f(, )}, dvs. en ta i rummet, som kallas för funktionsta. Som eempel tar vi f(, ) = cos() sin() över området,. Ett annat sätt att åskådliggöra en funktion i två variabler f : R R är att rita nivåkurvor, dvs. mängderna {(, ) : f(, ) = c}, där c är en konstant som anger nivån. Som eempel tar vi f(, ) = ( ) sin( ) över området,. Vi får en slags topografisk karta av funktionen om vi ser funktionstan som ett landskap och då blir nivån helt enkelt höjden över havet.

En reellvärd funktion i tre variabler f : R R kan vi inte rita en graf till. Det skulle vara en tredimensionellt objekt i ett frdimensionellt rum. Motsvarigheten till nivåkurvor blir nivåtor, dvs. mängderna {(,, z) : f(,, z) = c} där c konstant. Dessa kan vi däremot rita upp. Låt oss som eempel ta funktionen f(,, z) = + + z i tre variabler. Nivåtorna blir då sfärer {(,, z) : + + z = c} med centrum i origo. På de ttre torna har vi skalat av överdelen. Vi skall också se på vektorvärda funktioner, dels parametrisering av kurvor i planet g : R R och i rummet g : R R, dels parametrisering av tor g : R R i rummet. Eempelvis en cirkel med radien r och centrum i (a, b) kan parametriseras av g : R R där med t π. g(t) = ((t), (t)) = (a + r cos(t), b + r sin(t)) Ett eempel på en kurva i rummet är den här spiralen z 5 5 5 som kan parametriseras av g : R R där med t π. g(t) = ((t), (t), z(t)) = (t, cos(t), sin(t))

Kurvor i R och R Vi har redan ritat kurvor i R med kommandot plot, när vi skall rita kurvor i R kommer vi använda kommandot plot. Eempelvis enhetscirkeln parametriserad av g : R R där ritar vi upp med >> subplot(,,) >> t=linspace(,*pi); >> plot(cos(t),sin(t)) g(t) = ((t), (t)) = (cos(t), sin(t)), t π Spiralen given av parametriseringen g : R R där får vi med (nu använder vi plot) >> subplot(,,) >> t=linspace(,*pi); >> plot(cos(t),sin(t),t) och den koniska spiralen given av g(t) = ((t), (t), z(t)) = (cos(t), sin(t), t), t π g(t) = ((t), (t), z(t)) = (t cos(t), t sin(t), t), t π ritar vi med (lägg märke till komponentvis multiplikation) >> subplot(,,) >> plot(t.*cos(t),t.*sin(t),t).5 z z.5.5.5 Uppgift. Rita upp följande kurvor i R (a). Asteroiden g(t) = (cos (t), sin (t)), t π (b). Ckloiden g(t) = (t sin(t), cos(t)), t π Kurvan beskriver den väg en mra, som fastnat på ett hjul, färdas när hjulet rullar framåt. Snggast ser kurvan ut om man ger kommandot ais equal. Uppgift. Rita upp följande kurvor i R med plot (a). g(t) = (cos(t), sin(t), t), t π (b). g(t) = (cos (t), sin (t), t), t π

Funktionstor i R Vi ser på funktionstan, eller grafen, till funktionen f : R R där över området och. f(, ) = cos() sin() Den ta vi skall rita upp består av alla punkter (,, f(, )) i R där och. Resultatet får vi med kommandot surf, vilket är motsvarigheten till plot då vi skall rita tor. >> =linspace(,,); =linspace(,,); >> [X,Y]=meshgrid(,); >> Z=X.*cos(*X).*sin(Y); >> grid on, bo on >> label( ), label( ), zlabel( z = f(,) ) z = f(, ) Funktionen meshgrid får två vektorer och, med - och -värden, som indata och ger två matriser X och Y som utdata. Dessa matriser är uppbggda så att vi kan göra en matris Z med alla f(, )-värden på en gång genom att skriva av vår matematiska formel för f(, ) bara vi samtidigt ersätter medxoch medy. Vi måste dock också tänka på att använda komponentvisa operationer rakt igenom. Ritar vi en graf av en funktion i en variabel tar vi kanske några hundratal -värden. När vi ritar en funktionsta tar vi istället några tiotal - respektive -värden. Vi kan också lägga på belsning, välja mellan olika belsningsmodeller och välja mellan olika refleionsmodeller (material).

>> shading interp % flat, interp, faceted >> camlight right % left, right, headlight >> lighting phong % none, flat, phong, gouraud >> material shin % shin, dull, metal Med kommandot surf(x,y,z, facealpha,.7) får vi tan lite genomskinlig, där värdet vi ger facealpha avgör graden av genomskinlighet ( för helt transparent och för helt solid). Uppgift. Rita funktionstan till funktionen f : R R där över området,. Hur fungerar det? f(, ) = e ( + ) Den ta vi skall rita består av alla punkter (,, f(, )), där min ma och min ma. Då vi skall rita tan med surf krävs att vi bildar en m n-matris Z med elementen z ij = f( j, i ) där min = < < < n = ma och min = < < < m = ma. Lägg märke till ordningen på indeen, element z ij skall innehålla funktionsvärdet för = j och = i. Stigande -värden längs rader i Z, dvs. stigande kolonn-inde, och stigande -värden längs kolonner i Z, dvs. stigande rad-inde. 5

Vi går igenom några alternativa lösningar och vi tänker oss att vi i Matlab redan skapat en funktion f och koordinat-vektorer och med n respektive n element. Alternativ. Vi bildar matrisen Z i Matlab med Z=zeros(m,n); for i=:m for j=:n Z(i,j)=f((j),(i)); end end Alternativ. I första alternativet fick hålla reda på var det skulle vara i respektive j. Med funktionen meshgrid skapas två matriser X och Y så att X(i,j) har värdet (j) och Y(i,j) har värdet (i), dvs. indeproblemet är borta. [X,Y]=meshgrid(,); Z=zeros(m,n); for i=:m for j=:n Z(i,j)=f(X(i,j),Y(i,j)); end end Alternativ. Den allra smidigaste lösningen får vi då vi låter de nästlade repetitionssatserna i tidigare alternativ ersättas av komponentvisa operationer. Dvs. vår funktion f måste använda komponetvisa operationer. Vi slipper även initieringen av Z. [X,Y]=meshgrid(,); Z=f(X,Y); Så här enkel blir uppgift med det sista alternativet >> =linspace(-,,); >> =linspace(-,,); >> f=@(,)-.*.*ep(-*(.^+.^)); >> [X,Y]=meshgrid(,); >> Z=f(X,Y); Lämplig läsning om funktionstor är avsnitt 5. i Moore. Polära koordinater Ibland behöver man bta variabler för att på ett lättare eller bättre sätt behandla ett problem. Ett eempel på variabel- eller koordinatbte är polära koordinater { = r cos(ϕ) där (, ) (, ) samt r > och ϕ < π. = r sin(ϕ) 6

.5.5.5.5 ϕ 6 5.5.5 r Vill vi t.e. rita grafen av f(, ) = över området +, dvs. en halvsfär, och använder rektangulära koordinater får vi den inte alltför sngga figuren nedan till vänster men använder vi polära koordinater får vi den lite snggare till höger. Rektangulära koordinater Polära koordinater.5.5.5.5.5.5 >> subplot(,,) % Rektangulära koordinater >> =linspace(-,,); =linspace(-,,); >> [X,Y]=meshgrid(,); >> U=-X.^-Y.^; >> U(find(U<))=; % Sätter negativa värden till noll, >> Z=sqrt(U); % så att vi kan ta roten ur utan problem >> subplot(,,) % Polära koordinater >> r=linspace(,,); t=linspace(,*pi,); >> [R,T]=meshgrid(r,t); >> X=R.*cos(T); Y=R.*sin(T); >> Z=sqrt(-R.^); Uppgift. Rita upp de tor som är grafer till nedanstående funktioner med surf: (a). f(, ) = +, (, ) [, ] [, ] (b). f(, ) =, (, ) [, ] [, ] (c). f(, ) = ( ) /, (, ) [, ] [, ] 7

(d). f(, ) = (9 ) /, (, ) {(, ) : + 9} (Använd polära koordinater) (e). f(, ) = e +, (, ) {(, ) : + } (Använd polära koordinater) Uppgift 5. Återskapa figur. i Adams. Dvs. rita grafen för funktionen 6 f(, ) = + + över ett lämpligt område. Gör detta för både rektangulära och cirkulära områden. Nivåkurvor i R Istället för att rita upp funktionstan är det ibland bättre att visualisera en funktion genom en konturplot, det vill säga rita tvådimensionella nivåkurvor i planet. Lösningsmängden till ekvationen f(, ) = c, där c är en konstant, beskriver en (nivå)kurva i planet. Genom att rita ut flera sådana kurvor för olika värden på c erhåller man en tvådimensionell (topografisk) karta, med vilken man kan utläsa funktionstans utseende. Till eempel använder vanliga orienteringskartor detta sätt för att beskriva olika höjder i naturen. Tekniken används också för bland annat väderkartor, där isobarer och isotermer är nivåkurvor för de funktioner som beskriver lufttrck respektive temperatur. För att skapa en nivåkurva i Matlab så använder vi kommandot contour. Det är också möjligt att rita både ta och nivåkurvor i samma graf med kommandot surfc. Läs mer i Moore avsnitt 5.. Som eempel ser vi på funktionen vars nivå-kurvor vi visade en bild av i inledningen Vi får bilden nedan med f(, ) = ( ) sin( ),, >> =linspace(-,,); =linspace(-,,); >> [X,Y]=meshgrid(,); >> f=@(,)(.*.^-).*sin(-.*); >> Z=f(X,Y); >> contour(x,y,z,) Vi får ifllda nivåkurvor med contourf..5.5.5.5.5.5 8

Uppgift 6. Rita nivåkurvor till funktionerna i uppgift. Gå in och redigera cellerna så att ni samtidigt ser både funktionstan och nivåkurvorna. Använd subplot. Uppgift 7. Betrakta funktionen f(, ) = + 5 + 5 Rita tan över ett lämpligt område samt skapa en konturplot. Rita några enstaka nivåkurvor. Uppgift 8. Låt f(, ) = sin() + cos() Nivåkurvan f(, ) = delar in -planet i ett antal områden. Förklara varför funktionen f(, ) inte välar tecken inom var och en av områdena. I vilka av områdena är f(, ) >? Ledning: Rita nivåkurvorna f(, ) = c för c =,. respektive.. 5 Nivåtor i R För att rita nivåtor använder vi isosurface. Vi tar eemplet från inledningen, dvs. funktionen f(,, z) = + + z i tre variabler. Nivåtorna blir då sfärer {(,, z) : + + z = c} och vi ritar upp för c =. >> =linspace(-,,); =linspace(-,,); z=linspace(-,,); >> [X,Y,Z]=meshgrid(,,z); >> F=X.^+Y.^+Z.^; >> p=patch(isosurface(x,y,z,f,)); >> set(p, facecolor, r, edgecolor, none ); >> ais equal, ais([- - - ]), grid on Vi får nog skjuta detaljerna på framtiden, men vi fick till ett rött klot (med radien ) i alla fall. 6 Allmänna tor i R Som eempel på en allmän ta i rummet tar vi en clinder med radien r och höjden h som beskrivs matematiskt av {(,, z) : + = r, z h} Vi kan också göra en s.k. parametrisering = r cos(t) = r sin(t), t π z = s, s h vilket passar oss när vi skall rita bilden i Matlab. >> r=.5; h=6; n=; m=; >> s=linspace(,h,m) ; t=linspace(,*pi,n); >> r=r*ones(size(s)); >> X=r*cos(t); 9

>> Y=r*sin(t); >> Z=s*ones(size(t)); >> ais equal, ais([- - 6]) 6 6 5 5 För clindern hade vi r(s) = r, dvs. ett konstat värde (samma radie). Om vi istället låter r(s) = + sin(s) (varierande radie) så blir det lite roligare. Detta är ett eempel på en rotationsta. Sådana pratade vi om i ALA-B i samband med volmberäkning (Adams kap 7.). Nu ritar vi upp rotationstan. Var skiljer sig koden nedan från den för clindern? >> h=6; n=; m=; >> s=linspace(,h,m) ; t=linspace(,*pi,n); >> r=+sin(s).^; >> X=r*cos(t); >> Y=r*sin(t); >> Z=s*ones(size(t)); >> ais equal, ais([- - 6]) Vi ser nu avslutningsvis på två parametriserade tor som till utseendet är välbekanta. En sfär med radien r och centrum i origo ges av + + z = r och kan parametriseras med där π s π och t π. (s, t) = r cos(s) cos(t) (s, t) = r cos(s) sin(t) z(s, t) = r sin(s)

Vi ritar en sfär med radien r = enligt >> r=; n=; m=; >> s=linspace(-pi/,pi/,n); t=linspace(,*pi,m); >> [S,T]=meshgrid(s,t); >> X=r*cos(S).*cos(T); >> Y=r*cos(S).*sin(T); >> Z=r*sin(S); >> ais equal.5.5 En torus med lateralradien r och centralradien a samt centrum i origo ges av ( + + z + a r ) = a ( + ) och kan parametriseras med (s, t) = (a + r cos(s)) cos(t) (s, t) = (a + r cos(s)) sin(t) z(s, t) = r sin(s) där π s π och t π. Vi ritar en torus med lateralradien r =.8 och centralradien a = enligt >> r=.8; a=; n=; m=5; >> s=linspace(-pi,pi,n); t=linspace(,*pi,m); >> [S,T]=meshgrid(s,t); >> X=(a+r*cos(S)).*cos(T); >> Y=(a+r*cos(S)).*sin(T); >> Z=r*sin(S); >> ais equal 7 Redovisning Denna vecka skall uppgifterna -8 redovisas för handledaren.