Grafritning kurvor och ytor

Relevanta dokument
Funktionsytor och nivåkurvor

Grafritning kurvor och ytor

Funktionsytor och nivåkurvor

Mer om funktioner och grafik i Matlab

Matlab övningsuppgifter

Kurvor, fält och ytor

Mer om funktioner och grafik i Matlab

Parametriserade kurvor

Mer om funktioner och grafik i Matlab

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

Funktioner och grafritning i Matlab

Funktioner och grafritning i Matlab

Grafik och Egna funktioner i Matlab

SF1626 Flervariabelanalys

Linjära ekvationssystem

Några geometriska konstruktioner i R 3

Matriser och Inbyggda funktioner i Matlab

Matriser och Inbyggda funktioner i Matlab

Flervariabelanlys och Matlab Kapitel 1

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

Homogena koordinater och datorgrafik

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

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

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

Övningar till kapitel 1

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

Geometriska transformationer

Laborationstillfälle 1 Lite mer om Matlab och matematik

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

3 Parameterframställningar

Transformationer i R 2 och R 3

Introduktion till Matlab

Mer om geometriska transformationer

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

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

Lektion 1. Kurvor i planet och i rummet

Introduktion till Matlab

Datorlaborationer i matematiska metoder E1, del C, vt 2002

Introduktion till Matlab

Tentamen: Lösningsförslag

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

Matlabövning 1 Funktioner och grafer i Matlab

SF1626 Flervariabelanalys Lösningsförslag till tentamen DEL A

Grafritning och Matriser

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.

MATLAB övningar, del1 Inledande Matematik

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

20 Integralkalkyl i R 3

Matlabövning 1 Funktioner och grafer i Matlab

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

Om att rita funktioner av två variabler

Introduktion till Matlab

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.

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

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

SF1626 Flervariabelanalys

15 Multipelintegraler, sfäriska koordinater, volymberäkningar

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

Introduktion till Matlab

Platonska kroppar med Matlab

Introduktion till Matlab

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

TANA17 Matematiska beräkningar med Matlab

Föreläsningar. Anders Johansson tis

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

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

Flervariabelanalys och Matlab Kapitel 4

Något om algebraiska kurvor

SF1626 Flervariabelanalys Tentamen Tisdagen den 12 januari 2016

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

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,

SF1626 Flervariabelanalys Lösningsförslag till tentamen DEL A

SF1626 Flervariabelanalys Lösningsförslag till tentamen DEL A

Tentamen MVE035 Flervariabelanalys F/TM

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

Flervariabelanlys och Matlab Kapitel 4

Minsta-kvadratmetoden

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.

TANA17 Matematiska beräkningar med Matlab

Inledning. CTH/GU LABORATION 4 MVE /2017 Matematiska vetenskaper

Lektionsblad 9, tis 16/2 2010

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

SF1626 Flervariabelanalys Tentamen Onsdagen den 15 mars 2017

1 Några elementära operationer.

Datorövning 2 med Maple

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

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

TAIU07 Matematiska beräkningar med Matlab

SF1626 Flervariabelanalys Lösningsförslag till tentamen DEL A

Matriser och vektorer i Matlab

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

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

6. Samband mellan derivata och monotonitet

4.4. Mera om grafiken i MATLAB

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

Extra datorövning med Maple, vt2 2014

DUBBELINTEGRALER. Rektangulära (xy) koordinater

TATA69 Flervariabelanalys Kompletterande uppgifter ht 2016

SF1669 Matematisk och numerisk analys II Lösningsförslag till tentamen 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)

Transkript:

CTH/GU STUDIO MVE5-4/5 Matematiska vetenskaper Inledning Grafritning kurvor och tor 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, en s.k. funktionsta. Som eempel tar vi över området,. Vi ser funktionstan nedan till vänster. f(, ) = ( ) sin( ) 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. Vi ser nivåkurvor till vår funktion ovan till höger. 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 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. Vi skall också se på vektorvärda funktioner, dels parametrisering av kurvor i planet r : R R och i rummet r : R R, dels parametrisering av tor r : R R i rummet.

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 r : R R där ritar vi upp med >> subplot(,,) >> t=linspace(,*pi); >> plot(cos(t),sin(t)) r(t) = ((t), (t)) = (cos(t), sin(t)), t π Spiralen given av parametriseringen r : 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 r(t) = ((t), (t), z(t)) = (cos(t), sin(t), t), t π r(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 r(t) = (cos (t), sin (t)), t π (b). Ckloiden r(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). r(t) = (cos(t), sin(t), t), t π (b). r(t) = (cos (t), sin (t), t), t π

Funktionstor i R Vi ser på funktionstan till funktionen från inleningen, dvs. f : R R där över området,. f(, ) = ( ) sin( ) Resultatet får vi med kommandot surf, vilket är motsvarigheten till plot då vi skall rita tor. >> f=@(,)(/*.^-).*sin(-.*); >> =linspace(-,,); =linspace(-,,); >> [X,Y]=meshgrid(,); >> Z=f(X,Y); % eller surf(,,z) >> grid on, bo on >> label( ), label( ), zlabel( z = f(,) ).5.5 z=f(,).5.5.5.5.5 Funktionen meshgrid får som indata två vektorer och, med - och -värden, 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 använder komponentvisa operationer och samtidigt ersätter med X och med Y. 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. Ibland när man ritar en funktionsta med surf(x,y,z) kanske man vill ha den lite genomskinlig och det kan man få med surf(x,y,z, FaceAlpha,.7). Parametern FaceAlpha ges ett värde mellan och, där är helt transparent och är helt solid.

Vill vi ha en enfärgad tan, t.e. blå, och tan skall vara nästan helt genomskinlig så ger vi kommandot surf(x,y,z, FaceColor, b, FaceAlpha,.). Detta kan vara bra att använda när vi skall rita tangentplan i nästa studioövning. 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. 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); 4

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(ϕ).5.5.5.5 ϕ 6 5 4.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.^); % Vi utnttjar att X.^+Y.^=R.^ 5

Uppgift 4. Rita upp de tor som är grafer till nedanstående funktioner med surf: (a). f(, ) = +, (, ) [, ] [, 4] (b). f(, ) =, (, ) [, ] [, ] (c). f(, ) = ( ) /, (, ) [, ] [, ] (d). f(, ) = (9 ) /, (, ) {(, ) : + 9} (Använd polära koordinater) (e). f(, ) = e +, (, ) {(, ) : + 4} (Använd polära koordinater) Uppgift 5. Återskapa figur.4 i Adams. Dvs. rita grafen för funktionen f(, ) = 6/( + + ) över ett lämpligt område. Tänk på att använda komponentvisa operationer. 4 Nivåkurvor i R Som eempel ser vi på funktionen vars nivåkurvor vi visade en bild av i inledningen över området,. Vi får bilden nedan med f(, ) = ( ) sin( ) >> =linspace(-,,4); =linspace(-,,4); >> f=@(,)(/*.^-).*sin(-.*); >> [X,Y]=meshgrid(,); >> Z=f(X,Y); >> contour(x,y,z,) % eller contour(,,z,) Den lite flligare bilden nedan till höger fås med contourf..5.5.5.5.5.5 6

När man ritar nivåkurvor med contour(x,y,z) får man som standard nivåer jämnt fördelade i spannet av värdena i Z, vill vi ha ett annat antal använder vi contour(x,y,z,nl), där nl är antalet önskade nivåer. Om vi istället vill ange eakt vilka nivåer som skall ritas upp ger vi dem i en vektor lvec och använder contour(x,y,z,lvec). I nästa studioövning vill vi rita upp endast nivån där funktionen är noll, dvs. rita noll-nivåkurvor. detta gör vi med contour(x,y,z,[ ]). Fundera på varför vi måste ge två gånger. Uppgift 6. Rita nivåkurvor till funktionerna i uppgift 4. 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. 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 =.5. >> =linspace(-,,); =linspace(-,,); z=linspace(-,,); >> [X,Y,Z]=meshgrid(,,z); >> F=X.^+Y.^+Z.^; c=.5; >> p=patch(isosurface(x,y,z,f,c)); >> set(p, facecolor, r, edgecolor, none ); >> ais equal, ais([- - - ]), grid on Vi har även ritat tterligare två nivåer som vi skalat av överdelen. De tekniska detaljerna får vi skjuta på framtiden, men vi fick till ett rött klot i alla fall. 7

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. Vi tar r =.5 och h = 6 och ritar enligt >> r=.5; h=6; n=4; m=; >> s=linspace(,h,m); t=linspace(,*pi,n); >> [S,T]=meshgrid(s,t); R=r*ones(size(S)); >> X=R.*cos(T); Y=R.*sin(T); Z=S.*ones(size(T)); >> ais equal, ais([- - 6]) 6 6 5 5 4 4 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. Nu ritar vi upp rotationstan. Var skiljer sig koden nedan från den för clindern? >> h=6; n=4; m=; >> s=linspace(,h,m); t=linspace(,*pi,n); >> [S,T]=meshgrid(s,t); R=+sin(S).^; >> X=R.*cos(T); Y=R.*sin(T); Z=S.*ones(size(T)); >> ais equal, ais([- - 6]) 8

En sfär med radien r och centrum i origo ges av och kan parametriseras med där π s π och t π. Vi ritar en sfär med radien r = enligt + + z = r (s, t) = r cos(s) cos(t) (s, t) = r cos(s) sin(t) z(s, t) = r sin(s) >> 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 ) = 4a ( + ) 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 9