Några geometriska konstruktioner i R 3

Relevanta dokument
Platonska kroppar med Matlab

Transformationer i R 2 och R 3

Geometriska transformationer

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

Mer om geometriska transformationer

Homogena koordinater och datorgrafik

Linjära ekvationssystem

Eulers polyederformel och de platonska kropparna

Grafritning kurvor och ytor

Föreläsning 5: Geometri

Funktionsytor och nivåkurvor

Grafritning kurvor och ytor

Robotarm och algebra

4-10 Rymdgeometri fördjupning Namn:..

Arbetsblad 2:1. 1 a) Figuren ska vikas till en kub. Vilken av kuberna blir det? 2 Vilka av figurerna kan du vika till en kub?

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

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

PLANA FIGURER I DEN TREDIMENSIONELLA RYMDEN

Om plana och planära grafer

TANA17 Matematiska beräkningar med Matlab

Parametriserade kurvor

Kurvor, fält och ytor

Avdelning 1, trepoängsproblem

Matematik med Matlab för I Inledning. 1 Programmering i MATLAB

Mer om funktioner och grafik i Matlab

7F Ma Planering v2-7: Geometri

Steg 1 Klipp ut de figurer du behöver! Steg 2 Bygg din rymdraket! Matematikuppgift 1

Funktionsytor och nivåkurvor

Mer om funktioner och grafik i Matlab

Grafritning och Matriser

Vektorgeometri för gymnasister

8F Ma Planering v2-7 - Geometri

9E Ma Planering v2-7 - Geometri

Hemuppgift 1, SF1861 Optimeringslära för T

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

Att man bara kan konstruera fem platonska kroppar hänger samman med vinkelsumman som bildas då sidorna möts i kroppens hörn.

Enklare matematiska uppgifter

Grafik och Egna funktioner i Matlab

SF1624 Algebra och geometri Lösningsförslag med bedömningskriterier till kontrollskrivning 2 Fredagen den 28 januari, 2011

LÖSNINGAR TILL LINJÄR ALGEBRA kl LUNDS TEKNISKA HÖGSKOLA MATEMATIK

Banach-Tarskis paradox

Om plana och planära grafer

LINJÄR ALGEBRA II LEKTION 3

Studio 6: Dubbelintegral.

Känguru Student (gymnasiet åk 2 och 3) sida 1 / 6

Lösningsförslag till problem 1

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

LINJÄRA AVBILDNINGAR

SF1624 Algebra och geometri Tentamen Onsdagen 29 oktober, 2014

Institutionen för matematik och datavetenskap Karlstads universitet. GeoGebra. ett digitalt verktyg för framtidens matematikundervisning

Enklare matematiska uppgifter

M=matte - Handledning

Hemuppgift 1, SF1861 Optimeringslära, VT 2016

Matematiska Institutionen KTH. Lösning till tentamensskrivning på kursen Linjär algebra II, SF1604, den 9 juni 2011 kl

Mer om funktioner och grafik i Matlab

Chalmers tekniska högskola Datum: kl Telefonvakt: Linnea Hietala MVE480 Linjär algebra S

En glimt av Mr Mxyzptlks värld

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

Kontrollskrivning i Linjär algebra ,

DEL I. Matematiska Institutionen KTH. Lösning till tentamensskrivning på kursen Linjär algebra II, SF1604 för D, den 5 juni 2010 kl

TAIU07 Matematiska beräkningar med Matlab

Explorativ övning Vektorer

Minsta-kvadratmetoden

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.

1 basen B = {f 1, f 2 } där f 1 och f 2 skall uttryckas i koordinater i standardbasen.

Andragradspolynom Några vektorrum P 2

Räknare får inte användas i den här delen. Skriv ner beräkningar eller motiveringar till varje uppgift, ifall ingenting annat uppges.

ax + y + 2z = 3 ay = b 3 (b 3) z = 0 har (a) entydig lösning, (b) oändligt många lösningar och (c) ingen lösning.

Facit åk 6 Prima Formula

Enklare matematiska uppgifter

MATLAB. Introduktion. Syfte. Tips. Oktober 2009

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

. b. x + 2 y 3 z = 1 3 x y + 2 z = a x 5 y + 8 z = 1 lösning?

FORMER, MÖNSTER OCH TESSELERINGAR

Lösningar till udda övningsuppgifter

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

e = (e 1, e 2, e 3 ), kan en godtycklig linjär

Geometri med fokus på nyanlända

Mer om analytisk geometri

Matriser och linjära ekvationssystem

Provräkning 3, Linjär Algebra, vt 2016.

Matlabövning 1 Funktioner och grafer i Matlab

Uppsala Universitet Matematiska Institutionen Bo Styf. Sammanfattning av föreläsningarna

Programmeringsuppgift Game of Life

Ma7-Per: Geometri. Det tredje arbetsområdet handlar om geometri.

Funktioner och grafritning i Matlab

1. (a) Bestäm alla värden på c som gör att matrisen A(c) saknar invers: c 1

Undersökande arbetssätt i matematik 1 och 2

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

Vi människor föds in i en tredimensionell värld som vi accepterar och

Lösningar till MVE021 Linjär algebra för I

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

Extramaterial till Matematik Y

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

2x + y + 3z = 4 x + y = 1 x 2y z = 3

Hemuppgift 1, SF1861 Optimeringslära, VT 2017

4x az = 0 2ax + y = 0 ax + y + z = 0

Explorativ övning euklidisk geometri

Linjär algebra med MATLAB

DEL I. Matematiska Institutionen KTH. Lösning till tentamensskrivning på kursen Linjär algebra II, SF1604, den 15 mars 2010 kl

Transkript:

Linjär algebra, AT / Matematiska vetenskaper Några geometriska konstruktioner i R Inledning Vi skall se på några Platonska kroppar. Dessa är konvexa tre-dimensionella polyedrar som har likformiga polygoner som sidor. Lika många sidor möts i varje hörn och alla hörn är lika. Det finns precis fem Platonska kroppar (tetraeder, kub, oktaeder, dodekaeder och ikosaeder). I sammanhanget vill vi även nämna Arkimediska kroppar. Dessa har lika hörn men sidorna kan vara olika polygoner. Det finns tretton sådana. Titta gärna tillbaka på Ture Westers lilla bok Structural Order in Space som ni nog läste under första årets vårtermin. Några Platonska kroppar Vi börjar med att rita en liksidig tetraeder med hörnpunkter på enhetssfären och hörnpunkternas koordinater som ( ) ( ),,,, ±,, (,, ) Först lagrar vi koordinaterna som kolonner i en matris H i Matlab enligt a=*sqrt()/; b=-sqrt()/; c=sqrt(/); d=-/; H=[ a b b c -c d d d ]; därefter tar vi och skriver ut de olika hörnens nummer på respektive plats i rummet, notera att size(h,) ger antal kolonner i H, dvs. antal hörnpunkter axis equal, axis([- - - ]), axis off, axis visd for i=:size(h,) text(h(,i),h(,i),h(,i),numstr(i)) Skriv in detta i Matlab så blir det begripligt. Vi kan vända och vrida så vi ser var hörnen är placerade. Nu skall vi bilda en matris S som skall hålla ordning på vilka hörnpunkter som är hörn på de olika sidorna i tetraedern. På rad i S, dvs. S(,:), lagrar vi numren på hörnen på sidan, osv. S=[ 4 4 4 ];

Nu kan vi rita upp sidorna med fill, notera att size(s,) är antal rader i S, dvs. antal sidor på tetraedern for i=:size(s,) Si=S(i,:); fill(h(,si),h(,si),h(,si),[.4.5 ], facealpha,.) Det är förståndigt att bygga upp S rad för rad, och använda koden ovan för att rita fler och fler av tetraederns sidor. På så sätt ser vi vilka sidor vi inte redan har beskrivit. Så här ser tetraedern ut när vi är färdiga (vi har lagt på belysning också). Vi kan på samma sätt göra en matris K som håller reda på alla kanter på tetraedern. K=[ 4 4 4 ]; Nu när vi kommit fram till hur H och S skall se ut kan vi samla ihop koden för att rita tetraedern och för att lägga på lite belysning och sådant a=*sqrt()/; b=-sqrt()/; c=sqrt(/); d=-/; H=[ a b b c -c d d d ]; S=[ 4 4 4 ]; for i=:size(s,) Si=S(i,:); fill(h(,si),h(,si),h(,si),[.4.5 ], facealpha,.8) axis equal, axis tight, axis off, axis visd view(-,) material shiny camlight left, camlight head

Uppgift. Nu är det dags för ikosaedern. Den består av liksidiga trianglar. Koordinaterna för hörnpunkterna kan vi ta som (, ±, ±ϕ), (±, ±ϕ, ), (±ϕ,, ±) där ϕ = + 5 (gyllene snittet). Om vi vill att hörnpunkterna skall ligga på enhetssfären skalar vi med faktorn s = +ϕ. Rita nu upp ikosaedern genom att använda samma teknik som för tetraedern. Vi får jobba lite mer, vi har hörn (istället för 4) och vi har sidor (istället för 4). Något liknande följande bild bör ni komma fram till. Stjärnformering Nu kan vi göra en stjärna av vår ikosaeder. Vi tar ut mittpunkten på varje sida och ritar tre små triangel-flak istället för ett (för varje sida). Här ovan skjuter vi ut mittpunkten och här nedan drar vi in den.

Koden för att rita sidorna ersätts med for i=:size(s,) Si=S(i,:); Mi=(H(:,Si())+H(:,Si())+H(:,Si()))/; % Mittpunkten på sida nr i Mi=Mi*5; % Skalning, pröva olika faktorer. Med 5 får du en långarmad stjärna. fill([h(,si(:)) Mi()],[H(,Si(:)) Mi()],[H(,Si(:)) Mi()],... [.4.5 ], facealpha,.8) fill([h(,si(:)) Mi()],[H(,Si(:)) Mi()],[H(,Si(:)) Mi()],... [.4.5 ], facealpha,.8) fill([h(,si([,])) Mi()],[H(,Si([,])) Mi()],[H(,Si([,])) Mi()],... [.4.5 ], facealpha,.8) Dessa stjärnformiga polyedrar är inte Platonska kroppar (varför?). Uppgift. Modifiera nu er kod. Prova lite olika värden på skalfaktorn (även negativa värden är kul) och vänd och vrid. Stänger och noder Vi skall rita polyedrar med cirkulära cylindrar som stänger längs kanterna och små sfärer som hörnpunkter eller noder. En sfär gör man enklast med den i Matlab inbyggda funktionen sphere. För att göra en cylinder kan man använda funktionen cylinder som ger en cylinder längs en bit av z-axeln och sedan rotera koordinat-matriserna och rita upp. Vi skall bygga en egen funktionmin_cylinder som kan generera en cylinder som går från en punkt x till en annan punkt x. På liknande sätt som vi konstuerade en rotation runt en godtycklig axel gör vi följande: Bilda v = x x. Därefter väljer vi två vektorer v och v, båda av enhetslängd, så att v och v är vinkelräta mot v och vinkelräta mot varandra. Dvs. {v,v } skall vara en ortogonalbas för nollrummet N(v T ). Vi beräknar denna bas med funktionen null. Kanterna på cylindern kommer då ges av cirklarna x = x i + r cos(t)v + r sin(t)v, t π, i =, Vi ritar upp några punkter på dessa cirklar och en röd linje som förbinder x och x. x=[.4;.;.8]; x=[.8;.8;.]; plot([x() x()],[x() x()],[x() x()], r, linewidth,) v=x-x; A=v ; W=null(A); v=w(:,); v=w(:,); r=.5; t=linspace(,*pi,5); C=x*ones(size(t))+v*(r.*cos(t))+v*(r.*sin(t)); plot(c(,:),c(,:),c(,:), ob, linewidth,) C=x*ones(size(t))+v*(r.*cos(t))+v*(r.*sin(t)); plot(c(,:),c(,:),c(,:), ob, linewidth,) 4

Vi får bilden nedan till vänster.5.5.5.5.5.5 Vi ritar sedan upp vår cylinder med X=[C(,:);C(,:)]; Y=[C(,:);C(,:)]; Z=[C(,:);C(,:)]; surf(x,y,z) Vi gör en funktion där vi samlar ihop koden som genererar koordinat-matriserna för vår cylinder. function [X,Y,Z]=min_cylinder(x,x,r,n) A=(x-x) ; W=null(A); v=w(:,); v=w(:,); t=linspace(,*pi,n); C=x*ones(size(t))+v*(r.*cos(t))+v*(r.*sin(t)); C=x*ones(size(t))+v*(r.*cos(t))+v*(r.*sin(t)); X=[C(,:);C(,:)]; Y=[C(,:);C(,:)]; Z=[C(,:);C(,:)]; Vi ritar tetraeder med blå klot som noder och gula cylindrar som kanter (eller stänger mellan noderna). % Skriptfil a=*sqrt()/; b=-sqrt()/; c=sqrt(/); d=-/; H=[ a b b % H(:,j), j:te kolonnen i H, ger koordinaterna c -c % för hörnpunkt j. d d d ]; % size(h,) ger antal hörn på kuben. S=[ % S(i,:), i:te raden i S, ger nr på hörnpunkter 4 % på sidan i. 4 % size(s,) ger antal sidor på kuben. 4 ]; K=[ % K(i,:), i:te raden i K, ger nr på hörnpunkter % på kanten i. % size(k,) ger antal kanter på kuben. 4 4 4 ]; 5

[X,Y,Z]=sphere(5); s=.; for j=:size(h,) surf(h(,j)+s*x,h(,j)+s*y,h(,j)+s*z, facecolor, b, edgecolor, none ) r=.7; m=5; for i=:size(k,) Ki=K(i,:); [XR,YR,ZR]=min_cylinder(H(:,Ki()),H(:,Ki()),r,m); surf(xr,yr,zr, facecolor, y, edgecolor, none ) axis equal, axis tight, axis off, view(,), axis visd material metal camlight left, camlight head Och så här ser det ut Uppgift. Gör nu en ikosaedern med stänger och noder. 6