Matematiska institutionen Carl-Henrik Fant 13 mars 2000
Matematik med Matlab M1 och TD1 1999/2000 sid. 41 av 47 1 Parametriserade ytor, egen och egenvektorer, multipelintegraler. Redovisning Samtliga uppgifter redovisas genom att bilder, kommandon, resultat, slutsatser mm skrivs in i ett word eller html dokument. Detta kallas nedan redovisningen. I respektive uppgift anges vad som skall inkluderas i redovisningen. in redovisningen till i matte eller till mig, C-H. 1.1 Export av grafik Med print-kommandot kan man skicka bilden som finns i aktuellt till printer som till fil. Genom att filformat kan man en fil som kan an i andra sammanhang. Vilka filformat som beror vilken version av matlab som an. I den version som just nu an M-sektionens datorer finns bland annat postscriptformat och jpeg-format. Titta i helpdesk under print att se vilka format som finns. Antag att vi vill ha med en svart-vit bild av en kurva eller yta i ett Word-dokument. Vi med att rita den som vanligt. ger vi kommandot: print -deps namn som bilden i filen namn.eps i aktuellt bibliotek. Denna fil kan in som bild-objekt i ett word-dokument. Ett problem emellertid att bilden inte syns endast en ruta med diverse text dyker upp. vid utskrift kommer bilden fram. Om vi vill se bilden sparar vi den som ex.vis en jpeg-fil. Vi kan editera bilden i xv. Skriv xv i ett att starta den. sedan filen, om den och spara den i format. Om man en gbild till exempel till sin websida jpeg formatet 1.2 Parametriserade ytor. OBS! uppgift 2 innan du. Det inte stor skillnad att rita funktionsytor och att rita parametriserade ytor. Principen densamma, matriser x, y, z och rita ytan med mesh(x,y,z). Exempel 1: Vi skall rita ytan. Ekvationen liknar ekvation, vi kan ju skriva om den till. I koordinater betyder detta t.ex. att. Genom att vilka tecken har i olika oktanter ser vi att en parametrisering av ytan sign sign sign med samma som till en. Funktionen sign som an skrivs samma i Matlab. Testa vad den att rita ytan vi matriser parametrarna sedan matriser. n=20;[u,v]=meshgrid(linspace(0,pi,n),linspace(0,2*pi,n+1)); x = sign(sin(u).*cos(v)).*sqrt(abs(sin(u).*cos(v))); y = sign(sin(u).*sin(v)).*sqrt(abs(sin(u).*sin(v))); z = sign(cos(u)).*sqrt(abs(cos(u))); mesh(x,y,z) n att snyggare figur. erbelasta inte systemet.) Om inte en axelparallell rektangel blir det naturligtvis Ett man kan att en rektangel som omfattar det aktuella som ovan och slutligen ta bort de punkter som inte skall vara med i grafen. Det senare ommer man genom att vara NaN i dessa punkter. Det absolut inte hur detta kan men kommer ett Exempel 2: Vi skall rita ytan. (Jmfr VIII.1) Vi en rektangel som omfattar det aktuella. ser vi att rektangeln omfattar. steg att definiera.s karakteristiska funktion, chid. Detta vi enklast med inline. chid=inline( u.^2 <= v & v <= 4, u, v );
Matematik med Matlab M1 och TD1 1999/2000 sid. 42 av 47 Denna funktion 1 punkter i, 0. Vi kan nu se hur ser ut genom att ett och rita grafen till chid. n=20;[u,v]=meshgrid(linspace(-2,2,n),linspace(0,4,n+1)); mesh(u,v,chid(u,v)) Om vi att titta grafen med view([0,0,1]) ser vi en bra bild av detta fungerar som vi kan vi med koordinatfunktionerna ytan. Dessa definierar vi med inline. xkoord = inline( u.*cos(v), u, v ); ykoord = inline( u.*sin(v), u, v ); zkoord = inline( u.*v, u, v ); Nu kan vi rita grafen till ytan med rektangeln som x=xkoord(u,v);y=ykoord(u,v);z=zkoord(u,v);mesh(x,y,z) Det sista steget att om matriserna x, y, z att matriselementet NaN om. Vi dessa positioner. J = find(chid(u,v)==0); och sedan i matriserna med x(j)=nan; y(j)=nan; z(j)=nan; vi nu ritar grafen med mesh(x,y,z) vi den ytan. Vi kan bilden genom att in bilden av be an. x1=xkoord(u,u.^2); y1=ykoord(u,u.^2); z1=zkoord(u,u.^2); x1, y1, z1 matriser av samma typ som u och v. att rita den kurvan vi om till kolonnmatriser: x1=x1(:); y1=y1(:); z1=z1(:); Kurvan ritas nu med plot3(x1,y1,z1). Rita kurva och yta i samma figur. Uppgift 1: Kurvan roterar kring -axeln. Rita rotationsytan. Uppgift 2: in bilder av de tre ytorna i exempel 1, exempel 2 och uppgift 1 i redovisningen. Skriv in koordinatfunktionerna till uppgift 1 t ex genom att kopiera in Matlab. 1.3 Diagonalisering av matriser, egen och egenvektorer. Matlabs kommando eig kan utnyttjas att egen som egenvektorer till en kvadratisk matris. Med L=eig(A) en kolonnmatris L vars element egen till -matrisen A. Med [S,D]=eig(A) en -matris S vars kolonner egenvektorer till A och en diagonalmatris D vars diagonalelement egen till A i motsvarande ordning. Observera att [S,D]=eig(A) ger resultat en om A inte diagonaliserbar. Det inte ert att. Uppgift 3: egen och egenvektorer till matriser. om motsvarande matris diagonaliserar. ortogonal? Om inte, a om det finns ortogonal matris som diagonaliserar. att matlab ett numeriskt program, du kan vara tvungen att och. Avrundningsfelet ganska stort i en del. a. b. c. Om egen komplexa kan det finnas en komplex diagonaliserande matris. vad S S komplex. Skriv in resultat och slutsatser i redovisningen. inte argumenten!
1.4 System av differentialekvationer. 1.4.1 Matrisexponentialfunktionen. Matematik med Matlab M1 och TD1 1999/2000 sid. 43 av 47 Ett enkelt att med av matrisexponentialfunktionen. att dess definition vi diagonaliseringsmetoden. Antag att en diagonaliserbar matris. Det att det finns en matris att en diagonalmatris. Om vi nu substitutionen vi, dvs. Utskrivet blir det vi dessa ekvationer vi vilket kan skrivas, och Substituerar vi tillbaka vi Antag nu att vi har begynnelsevillkoren eller kortare: blir (ty ) och. Vi kan skriva Genom att skriva som en Maclaurinserie, inser man efter en smula eftertanke att diagonalmatrisen kan skrivas som och eftersom vi Det nu naturligt att Definition: dvs en matris som definierad en om A ej diagonaliserbar, och det visar sig att det att derivera som "vanligt", Sammanfattningsvis: Differentialekvationen har Om diagonaliserbar
Matematik med Matlab M1 och TD1 1999/2000 sid. 44 av 47, och.................... och kan skrivas. som anges diagonaliserbar matris brukar man kalla egenvektorsmetoden. Exempel 3: Vi med egenvektorsmetoden. och egen blir: Egenvektorerna:. ger, dvs och blir Anm:, och Vi skall nu Matlab an matrismetoden att ov system av differentialekvationer. varje skall vi matrisen. I matlab skrivs denna som expm(a*t). Vi skall sedan varje. Detta ger oss en matris vars rad och andra rad. Denna matris vi enklast ut med en for-snurra vi stegar fram genom Exempel 4: Ekvationen,,,, skrivs matrisform: Denna vi i intervallet [0,10] A=[-4,6;-3,5];x0=[7;4]; t=linspace(0,10,400); x=zeros(2,length(t)); for i=1:length(t) x(:,i)=expm(t(i)*a)*x0; end plot(t,x(1,:),t,x(2,:)).
Matematik med Matlab M1 och TD1 1999/2000 sid. 45 av 47 Skriv in ov som en skript-fil och testa att den fungerar. Kontrollera att som med de metoderna har samma grafer. Uppgift 4: a. ekvationssystemen med av expm(a*t) ovan. Rita grafen till orna. dem om med egenvektorsmetoden. graferna. b. om ekvationen till ett system av ordningens differentialekvationer med av substitutionen. detta med exponentialfunktionen matriser. Skriv ut an. Skriv in Matlabkommandon och i redovisningen. 1.5 Numerisk av multipelintegraler. att approximativa till enkelintegraler finns MATLAB s inbyggda funktion quad. Denna utnyttjas av dblquad av dubbelintegraler er rektanglar med av upprepad integration. Jag har skrivit ett program av multipelintegraler av godtycklig dimension. Det finns inte program av dubbelintegraler er i planet men denna att eliminera. med nedan att du skall bli med dblquad, du skall a en metod av dubbelintegraler er samt kopiera och utnyttja mitt program av multipelintegraler. 1.5.1 Dubbelintegraler Exempel 5: Vi skall dubbelintegralen en rektangel med av dblquad. Funktionen av variabler som skall integreras som vanligt vara definierad i en funktionsfil eller med inline. Kontrollera att du gjort du definierat funktionen, exempelvis genom att fun([1,2,3],[-1,0,1]). Verkar detta vettigt kan du vidare och dubbelintegral er rektangel. Kommandot detta I = dblquad( fun,x1,x2,y1,y2) med x1,x2,y1,y2 om fun finns i en fil, annars utan -ar, dvs bara fun. Man inte ge funktionen ett eget namn utan kan skriva in uttrycket direkt i exempelvis dblquad: int=dblquad(vectorize(inline( x^4+y^2, x, y )),0,2,1,3); ger int=20.7890 Vid av dubbelintegraler er ett i planet kan vi bokens definition. Vi om funktionen att den noll och integrerar den nya funktionen er en rektangel som omfattar. Detta vi med av karakteristiska funktion. Exempel 6: Till, definierar vi karakteristiska funktionen : chid=inline( (0 <= x).*(x <= 2).*(0 <= y).*(y <= x.^2), x, y ); Kontrollera funktionen genom att rita funktionsytan och se hur ser ut: [x,y]=meshgrid(linspace(-1,3,19),linspace(-1,4,20)); z=chid(x,y); mesh(x,y,z) att integralen av funktionen er skall vi sedan funktionen i integralen till:
Matematik med Matlab M1 och TD1 1999/2000 sid. 46 av 47 fun=inline( (x.^4+y.^2).*chid(x,y), x, y ); Eftersom rektangeln omfattar integralen slutligen med I = dblquad( fun,0,2,0,4) Uppgift 5: a. uppgift 6.4 ur en. b. uppgift 6.28 ur en. Observera att ligger i kvadranten. c.,. (Kom skrivs i Matlab exp(x) inte e.^x.)) Skriv in Matlabkommandon och i redovisningen. 1.5.2 Extrauppgift erbetyg: Multipelintegraler av e dimension Vi med att ge en bakgrund. Antag att vi har en formel numerisk av integralen av en funktion av en variabel. Vi kan se approximationen som ett viktat med vikter. Om vi nu har en funktion av variabler och vill, enhetskvadraten, kan vi genom upprepad an av ov formel approximation. En motsvarande formel givetvis i dimensioner vilket jag utnyttjat i funktionsfilen ndquad.m. Denna inneen del nyheter, bl.a. celler i vilka man kan lagra objekt av olika typ. har jag utnyttjat dem att lagra ett antal matriser. de olika stegen i ndquad. Det kan du N=2;W=cell(1,N),C=cell(1,N), for i = 1:N, W{i}=[1 4 1],end [C{1:N}]=ndgrid(W{1:N}), w=ones(size(c{1})), for i = 1:N, w = w.*c{i},end w=w/(6^n), a N = 3; Uppgift 6: a. filen ndquad.m det vanliga viset. integralen. Kommandot Q = ndquad( fun,[a,b,c],[a,b,c]) (under att integranden finns i filen fun.m och ). b. volymen av en med radie 1 genom att integralen, dels med av substitution, dels med tekniken med karakteristisk funktion. c. integral en axelparallell box. a med tol=10^(-1), programmet inte snabbt, varje box i en indelning av ger 81 punkter funktionen Kommandot [Q,cnt] = ndquad( fun,[0,0,1],[1,2,2]) ger en andra utvariabel som anger hur boxar (av alla storlekar) som an Detta kan ge en uppfattning om hur mycket datorn arbeta att ge svaret. Skriv in Matlabkommandon och i redovisningen.
Matematik med Matlab M1 och TD1 1999/2000 sid. 47 av 47 1.6 Extrauppgift erbetyg: Koordinatbyten och robotar. En robots beskrivs enklast med av en av koordinatbyten, vridning sedan translation sedan vridning osv. Som exempel kan vi se en robot som av en vridbar pelare vid vars topp finns en axel riktad vink mot pelarens vridningsaxel. denna axel sitter en arm, som kan vridas runt axeln. I armens andra finns en axel med ytterligare en arm som kan vridas runt denna axel. De armarnas sker i ett plan. Vi ett ortonormerat koordinatsystem varje vridning och varje translation arm. ett fixt system. I detta skall till slut beskrivas. Vi kan exempelvis -axeln pelaren och -planet i golvet med -axeln riktad som de axlarna i system skall med pelarvridningen. och - axlarna sammanfaller, -axeln riktad som axeln efter vridning. -planet golvet. Sambandet mellan -koordinater och -koordinater ges av en matris, att. kordinatsystem vi i vridningscentrum den axeln med alla axlar parallella med -axlarna. Detta koordinatbyte beskrivs av ges nu av F sedan med ett koordinatbyte varje led i roboten. Uppgift 7:, och resp ax av dessa koordinatbyten. a. robotens vara: Pelare 1.5 m, armar 1.0 m, axeln pelaren 0.4 m och axeln mellan armarna 0.2 m. An metoden ovan att beskriva den andra armens som funktion av vridningsvinklarna. dessa vinklar intervall och rita den rymdkurva som beskriver. An metoden (tetraedern) att samtidigt rita en enkel bild av robotens b. Det er en del att vinklarna givet Man kan roboten att en uppgift, exempelvis att rita en bild. din robot att rita enkel figur. Du an min fil robot.m. Redovisa med program och bilder.