Kurvor, fält och ytor

Relevanta dokument
Parametriserade kurvor

Grafritning kurvor och ytor

Mer om funktioner och grafik i Matlab

Grafritning kurvor och ytor

Homogena koordinater och datorgrafik

Mer om funktioner och grafik i Matlab

Linjära ekvationssystem

Funktioner och grafritning i Matlab

Grafik och Egna funktioner i Matlab

Mer om funktioner och grafik i Matlab

1.1 Stokes sats. Bevis. Ramgard, s.70

Geometriska transformationer

Flervariabelanlys och Matlab Kapitel 4

Flervariabelanalys och Matlab Kapitel 4

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

Funktionsytor och nivåkurvor

Linjära system av differentialekvationer

SF1626 Flervariabelanalys

Funktionsytor och nivåkurvor

AB2.4: Kurvintegraler. Greens formel i planet

Transformationer i R 2 och R 3

Minsta-kvadratmetoden

Visa att vektorfältet F har en potential och bestäm denna. a. F = (3x 2 y 2 + y, 2x 3 y + x) b. F = (2x + y, x + 2z, 2y 2z)

Flervariabelanlys och Matlab Kapitel 1

Tentamen SF1626, Analys i flera variabler, Svar och lösningsförslag. 2. en punkt på randkurvan förutom hörnen, eller

BERÄKNING AV KURVINTEGRALER (LINJEINTEGRALER)

Tillämpningar av integraler: Area, skivformeln för volymberäkning, båglängd, rotationsarea, integraler och summor

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

Lektion 1. Kurvor i planet och i rummet

Tentamen: Lösningsförslag

Tentamen: Lösningsförslag

Flervariabelanalys I2 Vintern Översikt föreläsningar vecka 6. ( ) kommer vi att studera ytintegraler, r r dudv

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

Funktioner och grafritning i Matlab

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

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.

Flervariabelanalys E2, Vecka 5 Ht08

= 0. Båda skärningsvinklarna är således π/2 (ortogonala riktningsvektorer).

Kort om programmering i Python

SF1646 Analys i flera variabler Tentamen 18 augusti 2011, Svar och lösningsförslag

SF1626 Flervariabelanalys Tentamen 18 augusti 2011, Svar och lösningsförslag

Några geometriska konstruktioner i R 3

Tentamen TMA044 Flervariabelanalys E2

SF1626 Flervariabelanalys Tentamen Onsdagen den 15 mars 2017

1 x. SF1626 Flervariabelanalys Lösningsförslag till tentamen DEL A

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

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.

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.

Omtentamen (med lösningar) MVE085 Flervariabelanalys

ATT RITA GRAFER MED KOMMANDOT "PLOT"

SF1626 Flervariabelanalys Lösningsförslag till tentamen DEL A

Övningstenta: Lösningsförslag

SF1626 Flervariabelanalys Tentamen Tisdagen den 12 januari 2016

Matlab övningsuppgifter

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

Introduktion till Matlab

SF1626 Flervariabelanalys Lösningsförslag till tentamen DEL A

Vektoranalys, snabbrepetition. Vektorfält

Platonska kroppar med Matlab

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

Lösningsförslag till tentamen TMA043 Flervariabelanalys E2

x (t) = 2 1 u = Beräkna riktnings derivatan av f i punkten a i riktningen u, dvs.

f(x, y) = ln(x 2 + y 2 + 1). 3. Hitta maximala arean för en rektangel inskriven i en ellips på formen x 2 a 2 + y2

x ( f u 2y + f v 2x) xy = 24 och C = f

Outline. TMA043 Flervariabelanalys E2 H09

SF1626 Flervariabelanalys Lösningsförslag till tentamen DEL A

SF1626 Flervariabelanalys

TATA44 ösningar till tentamen 13/01/ ) Paraboloiden z = 2 x 2 y 2 skär konen z = x 2 + y 2 då x 2 + y 2 = 2 x 2 y 2. Med

SF1626 Flervariabelanalys Lösningsförslag till tentamen DEL A

SF1626 Flervariabelanalys Tentamen Måndagen den 21 mars 2016

Kort om programmering i Matlab

SF1626 Flervariabelanalys Tentamen Torsdagen den 18 augusti 2016

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

23 Konservativa fält i R 3 och rotation

Mer om geometriska transformationer

Outline. TMA043 Flervariabelanalys E2 H09. Carl-Henrik Fant

Figur 1: Postföretagets rektangulära låda, definitioner.

Grafritning och Matriser

SF1626 Flervariabelanalys Lösningsförslag till tentamen DEL A

Kap 5.7, Beräkning av plana areor, rotationsvolymer, rotationsareor, båglängder.

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

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

Tentamen i Matematisk analys MVE045, Lösningsförslag

har ekvation (2, 3, 4) (x 1, y 1, z 1) = 0, eller 2x + 3y + 4z = 9. b) Vi söker P 1 = F (1, 1, 1) + F (1, 1, 1) (x 1, y 1, z 1) = 2x + 3y + 4z.

SF1626 Flervariabelanalys Lösningsförslag till tentamen DEL A

SF1626 Flervariabelanalys Tentamen Torsdagen den 20 augusti 2015

SF1626 Flervariabelanalys Tentamen Tisdagen den 7 juni 2016

Tentamen MVE085 Flervariabelanalys

Tentamen i Flervariabelanalys, MVE , π, kl

Programmering i Matlab

Tavelpresentation. Grupp 6A. David Högberg, Henrik Nordell, Harald Hagegård, Caroline Bükk, Emma Svensson, Emil Levén

Uppsala Universitet Matematiska Institutionen Bo Styf

Om att rita funktioner av två variabler

Introduktion till Matlab

Repetition, Matematik 2 för lärare. Ï x + 2y - 3z = 1 Ô Ì 3x - y + 2z = a Ô Á. . Beräkna ABT. Beräkna (AB) T

1. Beräkna hastigheten, farten och accelerationen vid tiden t för en partikel vars rörelse beskrivs av r(t) = (2 sin t + cos t, 2 cos t sin t, 2t).

SF1626 Flervariabelanalys Lösningsförslag till tentamen DEL A

TMV036/MVE350 Analys och Linjär Algebra K Kf Bt KI, del C

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

Linjära system av differentialekvationer

Transkript:

CTH/GU STUDIO 7 MVE7-7/8 Matematiska vetenskaper Kurvor, fält och ytor Inledning Vi skall se hur man ritar parametriserade kurvor i planet r : R R och i rummet r : R R. Därefter skall vi approximera en kurvas båglängd. Sedan skall vi rita några vektorfält och deras strömlinjer. Vidare ser vi hur vi kan approximera arean av ett område i planet. Avslutningsvis ritar vi några parametriserade ytor r : R R i rummet. Kurvor i R och R Vi har tidigare ritat kurvor i R med kommandot plot. Som ett exempel tar vi asteroiden som vi ritar upp i Matlab enligt r(t) = (x(t),y(t)) = (cos (t),sin (t)), t π >> t=linspace(,*pi); >> x=cos(t).^; y=sin(t).^; >> plot(x,y) >> axis equal, axis([-.. -..]) >> title( Asteroid ) Asteroid.5.5.5.5 Lägg märke till att vi använder axis equal för att få rätt utseende (aspect ratio) och för att få lite luft runt kurvan använder vi axis([...]). Vidare upphöjer vi med komponentvisa operationer (t är ju en vektor). Ett annat exempel är cykloiden r(t) = (x(t),y(t)) = (t sin(t), cos(t)), t π som beskriver den väg en myra, som fastnat på ett hjul, färdas när hjulet rullar framåt. Vi ritar enligt

>> t=linspace(,*pi); >> plot(t-sin(t),-cos(t)) >> axis equal, axis([-.5.5 - ]) >> title( Cykloid ) Cykloid 5 5 5 Om du vill kan du köra skriptet myran, som du finner på studiohemsidan, så du ser hjulet rulla. Uppgift. Skriv upp en parametrisering av en ellips med storaxel a (x-riktningen) och lillaxel b (y-riktningen) och medelpunkt i (p,q). Låt a =, b =.5 och p = q =. Rita en bild av kurvan. Använd axis equal. Som ett exempel på att rita kurvor i R tar vi spiralen r(t) = (x(t),y(t),z(t)) = (cos(ct),sin(ct),t), t π där vi tar c = 5. Nu skall vi använda plot för att rita kurvan >> c=5; t=linspace(,*pi,); >> x=cos(c*t); y=sin(c*t); z=t; >> plot(x,y,z) >> grid on >> xlabel( x ), ylabel( y ), zlabel( z, rotation,) >> axis([-.5.5 -.5.5 *pi]) >> axis visd, rotated on Vi ser kurvan nedan till vänster. Där har vi även passat på att rita tangenten i en punkt. 6 z y.5.5.5 y x.5 x

Vi använder axis visd så att skalan inte förändras då vi vrider och vänder på grafen, med rotated on blir det möjligt att ta tag i grafen och vrida den. För att rita tangenten får vi beräkna derivatan för att sedan rita upp den räta linjen med r (t) = (x (t),y (t),z (t)) = ( csin(ct),ccos(ct),t) >> a=; s=[- ]; >> xa=cos(c*a); ya=sin(c*a); za=a; >> dxa=-c*sin(c*a); dya=c*cos(c*a); dza=; >> hold on >> plot(xa+s*dxa,ya+s*dya,za+s*dza, m ) >> plot(xa,ya,za, ro, markersize,, linewidth,) >> hold off Bilden ovan till höger ser vi kurvan rakt ovanifrån och ser då tydligt hur tangenten just tangerar kurvan som den skall. Uppgift. Rita upp följande kurvor i R med plot. Använd axis visd och rotated on. (a). r(t) = (x(t),y(t),z(t)) = (cos(t),sin(t),t), t π (b). r(t) = (x(t),y(t),z(t)) = (cos (t),sin (t),t), t π Båglängd och polygontåg Vi tänker oss att vi har ett polygontåg (x,y ), (x,y ),, (x i,y i ), (x i+,y i+ ),, (x n,y n ) som vi ritat en figur av.8.6. (x i+,y i+ ) (x n,y n ). (x,y ) (x i,y i ).5.5.5 Vill vi beräkna polygontågets längd kan vi göra det med formeln n L = (xi+ x i ) +(y i+ y i ) i= Denna formel, som vi såg på redan i Kontrollstrukturer i Matlab i den inledande matematikkursen, fås genom att använda Pytagoras sats på varje segment i polygontåget.

.8.6 x.. y (x i,y i ) (x i+,y i+ ) x = x i+ x i y = y i+ y i L = x + y.5.5.5 Antag att koordinaterna samlade i två vektorer x = (x,x,,x n ) och y = (y,y,,y n ), då beräknar vi längden enligt L >> n=length(x); >> L=; >> for i=:n- L=L+sqrt((x(i+)-x(i))^+(y(i+)-y(i))^); end >> L eller lite kortare med vektorisering >> L=sum(sqrt((x(:end)-x(:end-)).^+(y(:end)-y(:end-)).^)) alternativt >> L=sum(sqrt(diff(x).^+diff(y).^)) Med beteckningen r i = (x i,y i ) har vi n L = (xi+ x i ) +(y i+ y i ) = i= n i= r i+ r i Om vi nu har en parametriserad kurva r(t) = (x(t),y(t)), a t b så kan vi beräkna en approximation av båglängden om vi tar en antal punkter längs kurvan och beräkna längden av motsvarande polygontåg. Låt a = t < t < < t n = b, med t i = t i+ t i, vara en indelning av parameterintervallet och låt r i = r(t i ) = (x(t i ),y(t i )) och beräknar s n = n i= r i+ r i Detta är en approximation av båglängden. Ju fler punkter, desto noggrannare resultat. Vi har s n = n i= r i+ r i = n i= r i+ r i t i t i

så om r (t) kontinuerlig får vi kurvans längd n L = s = n lim r i+ r i max t i t i= i som vi känner igen från Adams kapitel.. t i = Vi får motsvarande resultat för polygontåg och kurvor i rummet. b a r (t) dt Uppgift. Bestäm en approximation av omkretsen av ellipsen i uppgift. Det var ett polygontåg ni ritade upp. Börja med ett fåtal punkter ( kanske) i polygontåget och öka successivt antalet (ända upp till säg) och se hur approximationen av omkretsen förbättras. Vektorfält i planet Vi ser på ett vektorfält i planet, dvs. en funktion F : R R. Som exempel tar vi Vi ritar upp fältet med quiver enligt F(x,y) = (F (x,y),f (x,y)) = (cos(x y),sin(xy)) >> [X,Y]=meshgrid(linspace(,,5),linspace(,,5)); >> quiver(x,y,cos(x-y),sin(x.*y),.8) >> axis equal, axis([ ]).5 y.5.5.5.5.5 Som ni säkert vet är fältlinjer (strömlinjer, flödeslinjer, kraftlinjer) till ett vektorfält F kurvor r(t) = (x(t),y(t)) vars tangenter r (t) = (x (t),y (t)) är parallella med vektorfältets vektorer F(r(t)) = F(x(t),y(t)), dvs. kurvor som följer fältet. Vi kan beräkna fältlinjer genom att lösa begynnelsevärdesproblemet { x (t) = λ(t)f (x(t),y(t)), x() = x y (t) = λ(t)f (x(t),y(t)), y() = y, t för olika startpunkter (x,y ). Vi beräknar och ritar fältlinjer till F(x,y) = (cos(x y),sin(xy)) med ode5 i Matlab enligt x 5

>> F=@(t,u)[cos(u()-u());sin(u().*u())]; >> hold on >> [t,u]=ode5(f,[ 5],[;]); >> plot(u(:,),u(:,), g, linewidth,) >> [t,u]=ode5(f,[ 5],[;.5]); >> plot(u(:,),u(:,), g, linewidth,) >> hold off.5 y.5.5.5.5.5 Uppgift. Rita fält och fältlinjer till F(x,y) = (xy,x y) över området [, ] [, ]. Vi kan också beräkna och rita fältlinjer med funktionen streamline, men vi får mycket noggrannare resultat med ode5. Skall vi rita vektorfält i rummet använder vi quiver. 5 Area av polygonområde med Greens formel Vi tänker oss att vi har ett polygontåg (x,y ),(x,y ),(x n,y n ) som inte korsar sig självt och som är slutet, dvs. att x n = x och y n = y. Här är ett exempel som vi ritat en figur av.9.8 x.7.6.5 R C.... (x,y ) (x,y ) = (x n,y n ) (x i,y i ) (x i+,y i+ )...6.8...6.8 6

Om vi vill beräkna arean av det område R som omsluts av polygontåget kan vi använda formeln n A = (x i+ +x i )(y i+ y i ) () Så här beräknar vi arean i Matlab i= >> n=length(x); >> A=; >> for i=:n- A=A+(x(i+)+x(i))*(y(i+)-y(i))/; end >> A=abs(A) eller kortare >> A=abs(sum((x(:end)+x(:end-)).*(y(:end)-y(:end-))/)) Vi kan använda Greens formel för att bevisa formeln. Låt R beteckna området som omsluts av polygontåget och låt C beteckna områdets rand (med positiv orientering). Med F =, F = x har vi F = och F = och därmed ger Greens formel y x ( F Area(R) = dxdy = R R x F ) dxdy = y = F (x,y)dx+f (x,y)dy = xdy Nu gäller det att C C xdy = n i= där C i är randsegmentet från (x i,y i ) till (x i+,y i+ ). Vi kan enkelt parametrisera randsegmenten { x(t) = xi +t(x i+ x i ) y(t) = y i +t(y i+ y i ) Alltså har vi = (y i+ y i ) C i x(t)dy = C i xdy C, t x(t)y (t)dt = (x i +t(x i+ x i ))dt = (y i+ y i ) (x i+ +x i ) Vi har slutligen kommit fram till n Area(R) = xdy = n (y i+ y i )(x i+ +x i ) C i Om randen C inte är positivt orienterad, får vi ta beloppet. i= Uppgift 5. Använd areaformeln () på polygontågen från uppgift. Se om du får konvergens. Räkna sedan ut (för hand) ett exakt svar där du använder Greens formel på parametriseringen från uppgift. i= 7

6 Ytor i R Som exempel på en allmän yta i rummet tar vi en cylinder med radien ρ och höjden h som beskrivs av ekvationen {(x,y,z) : x +y = ρ, z h} Ytan kan parametriseras r : R R med där s h och t π. r(s,t) = (x(s,t),y(s,t),z(s,t)) = (ρcos(t),ρsin(t),s) Detta passar bra när vi skall rita bilden i Matlab. >> rho=.5; h=6; n=; m=; >> s=linspace(,h,n); t=linspace(,*pi,m); >> [S,T]=meshgrid(s,t); >> X=rho*cos(T); Y=rho*sin(T); Z=S; >> surf(x,y,z) >> axis equal, axis([- - 6]) 6 6 5 5 Förcylindern hadevi ρ(s) = ρ, dvs. ettkonstant värde(samma radie). Omvi istället låter ρ(s) = + sin(s) (varierande radie) så blir det lite roligare. Detta är ett exempel på en rotationsyta. Sådana pratade vi om i envariabelkursen i samband med volymberäkning (Adams kap 7.). Nu ritar vi upp rotationsytan. Var skiljer sig koden nedan från den för cylindern? >> h=6; n=; m=; >> s=linspace(,h,n); t=linspace(,*pi,m); >> [S,T]=meshgrid(s,t); >> R=+sin(S).^; >> X=R.*cos(T); Y=R.*sin(T); Z=S; >> surf(x,y,z) >> axis equal, axis([- - 6]) 8

Vi ser nu avslutningsvis på två parametriserade ytor som till utseendet är välbekanta. En sfär med radien r och centrum i origo ges av ekvationen och kan parametriseras r : R R med x +y +z = ρ r(s,t) = (x(s,t),y(s,t),z(s,t)) = (ρsin(s)cos(t),ρsin(s)sin(t),ρcos(s)) där s π och t π. Vi ritar en sfär med radien ρ = enligt >> rho=; n=; m=; >> s=linspace(,pi,n); t=linspace(,*pi,m); >> [S,T]=meshgrid(s,t); >> X=rho*sin(S).*cos(T); Y=rho*sin(S).*sin(T); Z=rho*cos(S); >> surf(x,y,z) >> axis equal >> colormap(autumn) Vigjordeenegenparametriseringavensfär,mendetfinnsävenenfunktionspheresomgenererar koordinatmatriser för en sfär. En torus med lateralradien ρ och centralradien a samt centrum i origo ges av och kan parametriseras r : R R med där π s π och t π. (x +y +z +a ρ ) = a (x +y ) r(s,t) = (x(s,t),y(s,t),z(s,t)) = = ((a+ρcos(s))cos(t),(a+ρcos(s))sin(t),ρsin(s)) Vi ritar en torus med lateralradien ρ =. och centralradien a = enligt 9

>> rho=.; a=; n=; m=5; >> s=linspace(-pi,pi,n); t=linspace(,*pi,m); >> [S,T]=meshgrid(s,t); >> X=(a+rho*cos(S)).*cos(T); Y=(a+rho*cos(S)).*sin(T); Z=rho*sin(S); >> surf(x,y,z) >> axis equal >> colormap(winter) Vi kan också lägga på belysning, välja mellan olika belysningsmodeller och välja mellan olika reflexionsmodeller (material). >> shading interp % flat, interp, faceted >> camlight right % left, right, headlight >> lighting phong % none, flat, phong, gouraud >> material shiny % shiny, dull, metal Med kommandot surf(x,y,z, facealpha,.7) får vi ytan lite genomskinlig, där värdet vi ger facealpha avgör graden av genomskinlighet ( för helt transparent och för helt solid). Uppgift 6. Rita nu några sfärer i rummet med olika radie och medelpunkt, lägg på lite belysning och rotera det hela några varv. Vi kan rotera runt scenen genom att använda camorbit på olika sätt >> axis equal visd >> axis equal visd >> camlight left >> h=camlight( left ); >> for i=: >> for i=: camorbit(5,) camorbit(5,) drawnow; pause(.5) camlight(h, left ) end drawnow; pause(.5) end Pröva och skriv in koden. Alternativet till vänster lägger på belysning och sedan följer vi med kameran runt. I alternativet till höger följer även belysningskällan med kameran runt. Pausen väljer man så att det går lagom fort på datorn man använder.