Cíl 9 Operace s vektory Osnova 9. Operace s vektory...355 9.. Elementární operace s vektory...355 9.. Polohové a metrické úlohy...356 Analytická geometrie je mocným nástrojem, který pomáhá řešit obrovské množství problémů z praxe. Tato metoda, založená na použití souřadnicového systému, je ve své podstatě velice jednoduchá a přitom účinná. V této kapitole se naučíte řešit úlohy analytické geometrie pomocí MATLABu. Předpokládám, že umíte řešit základní úlohy z analytické geometrie a to jak polohové, tak i metrické. Tato kapitola sice nenavazuje na předchozí kapitoly, ale využijete zde z Kap. m-soubor prevodx.m a z Kap. 4 výpočet determinantu matice a řešení soustavy lineárních rovnic. Proto je žádoucí si tyto věci připomenout a zopakovat si analytickou geometrii. Kdo ji hodně pozapomněl, tak mu mohu doporučit skripta: Polcerová M., Bayer J.: Analytická geometrie v příkladech, Vysoké učení technické v Brně, Fakulta chemická, Brno 004, ISBN 80-4-793-5. Jak již bylo řečeno ve všech předchozích kapitolách, kontaktní cvičení trvá přesně 00 minut. Proto by Vám prostudování této kapitoly mělo trvat přibližně 0 minut. Pokud ale neumíte používat analytickou geometrii a budete poctivě řešit AUTOTEST i svou Dílčí úlohu č. 5, tak Vám prostudování této kapitoly bude trvat mnohem déle. Máte opět vše připravené? Leží vedle Vás tato skripta, tužka, papír a máte spuštěný MATLAB? Pokud ANO, tak začněte. Nejprve je třeba říci, že všechny úlohy, které řešíte pomocí analytické geometrie, lze rozložit na elementární úlohy a ty na jednotlivé operace s vektory. Proto Vám nejprve ukáži těchto několik málo základních operací s vektory, které je třeba znát, abyste dokázali vyřešit jakoukoliv úlohu z analytické geometrie. V dalších úlohách Vám pak ukáži použití těchto operací s vektory na konkrétních příkladech.. Poznámka 9.: Historická V roce 637 v Leydenu vyšla proslulá Rozprava o metodě, kde René Descartes (lat. Renatus Cartesius) vyložil principy své analytické metody a aplikoval ji v matematice a ve fyzice. Je to první tištěná práce obsahující prvky analytické geometrie, protože dřívější Fermatova práce zůstala pouze v rukopisu. Původně byla kniha vydána společně s dalšími spisy pod titulem Plán všeobecné vědy schopné povznést naši povahu na nejvyšší stupeň dokonalosti, potom Dioptrika, Meteory a Geometrie. Spisek o geometrii je prvním výkladem o kartézské soustavě souřadnic. 9. Operace s vektory 9.. Elementární operace s vektory Příklad 9.: Elementární operace s vektory = ; ; 3 v = ; ;. Určete velikost vektorů u a v, součet Jsou dány vektory u ( ) a ( ) vektorů u + v, rozdíl vektorů u v, skalární součin vektorů u v a vektorový součin vektorů u v. Řešení Nejprve do MATLABu zadejte vektory u a v těmito příkazy: u=[,,3] u = 3 355
v=[,-,] v = - Velikost vektorů vypočítáte takto: norm(u) ans = 3.747 norm(v) ans = 3 Součet vektorů takto: w=u+v w = 3 5 Rozdíl vektorů takto: w=u-v w = - 3 Skalární součin dvou vektorů takto: w=dot(u,v) w = 6 Vektorový součin dvou vektorů takto: w=cross(u,v) w = 7 4-5 Výsledek Velikost vektorů u 3,74 7 a = 3,000 0 ( ; 3;) ( 7; 4; 5) v, součet vektorů u + v = ( 3;; 5) 356, rozdíl vektorů u v =, skalární součin vektorů u v = 6 a vektorový součin vektorů u v =. Poznámka 9.: Ukládání do proměnných Pokud potřebujete dále počítat například s velikostí vektoru u, tak je vhodné, si tuto velikost uložit do nějaké proměnné (a=norm(u)), protože pak se Vám zjednoduší další příkazy, ve kterých budete tuto velikost potřebovat. Totéž samozřejmě platí i pro ostatní operace. K zamyšlení Jak se vypočítá smíšený součin tří vektorů? Smíšený součin tří vektorů je vlastně determinant matice, jejíž řádky jsou zadané vektory. Máte-li dány vektory u = ( ; ; 3), v = ( 3; 7; 6) a w = ( ; ; 4), pak jejich smíšený součin v MATLABu vypočítáte pomocí těchto dvou příkazů: A=[,,-3;3,7,6;,-,4];det(A) ans = 85 Smíšený součin zadaných tří vektorů je tedy roven 85. 9.. Polohové a metrické úlohy Polohové a metrické úlohy lineárních i kvadratických útvarů v rovině i v prostoru znáte již ze střední školy. V předmětu Matematika I jste si toto učivo pouze rozšířili o přesnou definici vektorového součinu, o smíšený součin a o jejich geometrický význam. Protože v MATLABu využíváte pouze příkazy uvedené v předchozím příkladě, tak není třeba se jimi podrobněji zabývat Z tohoto důvodu jsou zde zařazeny pouze tři reprezentativní příklady polohových a metrických úloh v prostoru, abyste si udělali přesnou představu o tom, jak se výše uvedené příkazy MATLABu používají. První příklad ukazuje využití analytické geometrie při výpočtu objemu resp. obsahu tělesa. Věnujte mu náležitou pozornost, protože Vaše Dílčí úloha č. 5 je velice podobná této úloze.
Příklad 9.: Objem tělesa Čtyřstěn je dán vrcholy A = ( ; 0; 0), B = ( 0; 3; 0), C = ( 0; 0; 6) a D = ( ; 3; 8) a) objem čtyřstěnu ABCD, b) obsah stěny ABC, c) tělesovou výšku na stěnu ABC.. Určete: Řešení Nejprve zadejte do MATLABu vrcholy čtyřstěnu a pak vypočítejte tzv. doprovodný vektorový trojhran, tj. zadejte tyto příkazy: A=[,0,0];B=[0,3,0];C=[0,0,6];D=[,3,8];u=B-A u = - 3 0 v=c-a v = - 0 6 w=d-a w = 0 3 8 Víte, že objem čtyřstěnu je roven jedné šestině smíšeného součinu těchto tří vektorů (v absolutní hodnotě), proto objem čtyřstěnu vypočítáte takto: a=[u;v;w];v=/6*abs(det(a)) V = 4 Obsah podstavy je roven jedné polovině velikosti vektorového součinu vektorů u, v, tedy stačí zadat tento příkaz: P=norm(cross(u,v)./) P =.50 Protože objem trojbokého jehlanu se vypočítá podle vztahu výška čtyřstěnu, tak stačí zadat tento příkaz: vt=3*v/p vt = 3.747 V = P v 3 t, kde v t je tělesová Výsledek Objem čtyřstěnu je 4,000 0 příslušných objemových jednotek, obsah stěny ABC je přibližně s přesností na čtyři desetinná místa,5 0 příslušných plošných jednotek a tělesová výška je přibližně 3,74 7 příslušných délkových jednotek. Upozornění 9.: Přesné hodnoty a povrch Pokud byste potřebovali přesné hodnoty obsahu podstavy, tak je nutné si vypočítat vektorový součin například příkazem: c=cross(u,v) c = 8 6 vidíte, že výsledný vektor c lze zapsat c = ( 8; ; 6) = 6 ( 3; ; ), pro velikost platí: c = 6 9 + 4 + = 6 4 a obsah podstavy je pak přesně P = 3 4. V MATLABu můžete počítat například takto: b=c/6; k=b()^+b()^+b(3)^ k = 4 a obsah podstavy je P = 3 4, protože je to trojúhelník a je nutné číslo 6 vydělit dvěma. Protože determinant z matice, která obsahuje pouze celá čísla, je celočíselný, tak vyjádřit objem čtyřstěnu ani výšku přesně není problém. Přesný výsledek objemu napíšete jako zlomek, kde v čitateli bude abs(det(a)) a ve jmenovateli číslo 6. Tělesovou výšku pak 357
přesně vyjádříte pomocí vztahu v 3 V 3 abs(det(a) ) abs(det(a) ) = = = t P 6 P. V našem P 84 4 případě je v t = = = 3 4 4 4. Pokud chcete vypočítat povrch tohoto čtyřstěnu, tak nezapomeňte, že každá jeho stěna má jiný obsah. Je nutné vypočítat každou stěnu samostatně a pak všechny čtyři (včetně podstavy ABC) sečíst. Příklad 9.3: Vzdálenost bodu od roviny Jsou dány body A = ( ; ; ), B = ( ; ; 3), C = ( ; ; ), D = ( ; ; ) a rovina ρ : x + y + z = 0. Určete: a) rovnici roviny σ procházející body ABC, b) vzdálenost bodu D od roviny ρ, c) bodem D veďte rovinu τ procházející průsečnicí rovin ρ a σ. Řešení Nejprve do MATLABu zadejte body A, B, C, D a vypočítejte dva vektory, které leží v rovině ABC, například vektory u = B A, v = C A : A=[,-,];B=[,-,3];C=[-,-,-];D=[,-,-];u=B-A u = - v=c-a v =- 0-4 Nyní nalezněte pomocí vektorového součinu normálový vektor hledané roviny a dopočítejte poslední koeficient d obecné rovnice ax + by + xz + d = 0 roviny ABC: n=cross(u,v) n = 4 - n=n/ n = - d=-dot(n,a) d = Obecná rovnice zadané roviny je σ : x + y z + = 0. Nyní vypočítejte podle známého ax0 + by0 + cz0 + d vzorce v( D, ρ ) = vzdálenost bodu D od zadané roviny ρ. Jestliže si a + b + c normálový vektor roviny ρ označíte jako r, tak ve jmenovateli je velikost vektoru r a do MATLABu stačí zadat: r=[,,];c=dot(r,d)- c = -3 vz=abs(c)/norm(r) vz =.47 v D ρ potřebovali vyjádřit přesně, tak zadejte do MATLABu příkaz: Vzdálenost bodu D od roviny ρ je přibližně (, ) =,4 7 v=r()^+r()^+r(3)^ v = 6 358. Pokud byste tuto vzdálenost 3 3 6 6 a vzdálenost bodu D od roviny ρ je pak v ( D, ρ) = = =. Abyste nalezli 6 6 obecnou rovnici hledané roviny τ, tak si nejprve nalezněte směrový vektor k průsečnice roviny ρ a σ pomocí vektorového součinu normálových vektorů rovin ρ a σ.
k=cross(n,r) k = 3-3 3 k=k/3 k = - Vektor průsečnice k = ( ; ;). Nyní nalezněte alespoň jeden bod X, který na této průsečnici leží. Zvolíte-li například x-ovou souřadnici bodu X, že je 0, tak dostáváte tuto soustavu rovnic: y z = y + z =, kterou v MATLABu vyřešíte následujícími třemi příkazy: a=[,;,-];b=[;-];a\b ans = 0 a souřadnice bodu ( 0; 0; ) X=[0,0,];m=X-D m = - 3 X =. Nyní si vypočítejte vektor m = D X, který leží v rovině τ : Obecnou rovnici roviny τ nyní naleznete analogicky, jako jste hledali obecnou rovnici roviny σ. Znáte dva vektory ležící v rovině τ a to vektory k a m a body X a D. Stačí tedy do MATLABu zadat tyto příkazy: no=cross(m,k) no = 4 5 dd=-dot(no,x) dd = - a obecná rovnice roviny τ : 4x + y + z = 0. Výsledek Rovnice roviny σ procházející body ABC je σ : x + y z + = 0. Vzdálenost bodu D od 6 roviny ρ je v ( D, ρ) =,4 7 příslušných délkových jednotek. Rovina τ procházející průsečnicí rovin ρ a σ a bodem D má rovnici τ : 4x + 5y + z = 0. Poznámka 9.3: Klasické řešení bez MATLABu Pro zapomnětlivé zde uvádím klasické řešení pomocí analytické geometrie bez použití MATLABu. Označení jednotlivých bodů a vektorů ponechám stejné jako při předchozím řešení v MATLABu: = B A = ; ; v = C A = ; 0; 4 a) u ( ), ( ) i j 0 k 4 ( 4; ; ) = (,, ) = ( ; ; ) n = u v = = n Obecná rovnice roviny σ má tvar x + y z + d = 0. Koeficient d vypočítáme tak, že dosadíme bod A, který v této rovině leží: + d = 0 d =. Hledaná rovnice roviny σ je tedy σ : x + y z + = 0. b) Vzdálenost bodu D od roviny ρ nejrychleji vypočítáme podle vzorce: v ax + by 0 0 0 ( D, ρ ) =, kde ( x, y z ) jsou souřadnice bodu D a ( a b, c) a + b + cz + c + d normálový vektor roviny ρ tj. (,, ) 0 0, 0. Po dosazení dostáváme:, je 359
3 3 6 6 v ( D, ρ) = = = =,4 7. + 4 + 6 6 Vzdálenost bodu D od roviny ρ je v( D, ρ) =,4 7 jednotek. 6 příslušných délkových c) Nejprve nalezneme směrový vektor průsečnice, který je kolmý k normálovým vektorům rovin ρ, σ a nalezneme ho tedy pomocí vektorového součinu těchto dvou normálových vektorů i j k ( 3; 3; 3) = 3 ( ; ;) = ( ; ;) k = = k Bod, který leží na průsečnici musí náležet oběma rovinám ρ a σ. Protože těchto bodů je nekonečně mnoho, tak si zvolíme například x-ovou souřadnici tohoto bodu X jako 0 a vyřešíme tuto soustavu rovnic: y z = y + z = 3 y = 0 y = 0, 0 z = z = a hledaný bod X = ( 0, 0, ) obsahuje vektor k a například vektor m = X D = ( ; ; 3). Hledaná rovina τ. Normálový vektor hledané roviny τ tedy vypočítáme pomocí vektorového součinu vektorů m, k: i j k n 0 = 3 = ( 4; 5;) a hledaná rovina τ má obecnou rovnici 4x + 5y + z + d = 0 po dosazení bodu X + d = 0 d =. Rovina τ procházející průsečnicí rovin ρ a σ a bodem D má obecnou rovnici τ : 4x + 5y + z = 0. Příklad 9.4: Vzájemná poloha dvou přímek v prostoru x + y = 0 Jsou dány body A = ( ;; ) ; B = ( ; 3; ) a přímka p:. Určete: x + z = 0 a) rovnici přímky q procházející body AB, b) rozhodněte o vzájemné poloze přímek p, q, c) jsou-li přímky p, q různoběžky, stanovte jejich průsečík a úhel, ve zbylých případech jejich vzdálenost. Řešení Nejprve si nalezněte parametrické vyjádření přímky q a pak přímky p: A=[,,];B=[,3,];u=B-A u = 0 Parametrické vyjádření přímky q je tedy: q: x = y = + t z = + t, kde t R. Nyní pomocí vektorového součinu normálových vektorů zadaných rovin vypočítejte směrový vektor přímky p n=[,,0]; n=[,0,];r=cross(n,n) r = - - 360
Bod X, který leží v obou těchto rovinách a náleží tedy přímce p získáte tak, že si jednu jeho souřadnici zvolíte (třeba x = 0) a zbývající dopočítáte. V tomto případě téměř ihned dostáváte, že bod X má souřadnice X = ( 0; 0; ). Parametrické vyjádření přímky p je tedy: p: x = s y = s z = s, kde s R. Směrový vektor jedné přímky není nenulovým reálným násobkem směrového vektoru druhé přímky, takže přímky jsou buď různoběžné, nebo mimoběžné. Různoběžné přímky mají společný bod a leží v jedné rovině, proto můžeme buď vyřešit soustavu rovnic: = s s = + t = s s + t = + t = s, s + t = 0, nebo zjistit, zda determinant, jehož řádky tvoří vektory u, r a V MATLABu například takto: a=[u;r;a-x];det(a) ans = 0 36 k = A X je nulový. Přímky jsou různoběžné. Musíte tedy nalézt jejich průsečík, což znamená vyřešit výše uvedenou soustavu rovnic. V MATLABu stačí zadat: a=[-,0;,;,];b=[-;-;0];a\b ans =.0000 -.0000 Parametr s = a parametr = s =, resp. q ( t = ) dostáváte, že průsečík R = ( ; ; 0). Úhel dvou přímek je definován jako ostrý úhel, který dané dvě přímky spolu svírají a vypočítáte jej ze vztahu t. Po dosazení do parametrického vyjádření přímky p ( ) cos ϕ = x=abs(dot(u,r))/(norm(u)*norm(r)) x = 0.7746 prevodx stupnu = 39 minut = 3 vterin = 53 u r. V MATLABu například takto: u r Výsledek Parametrické vyjádření přímky q procházející body AB je: q: x = y = + t z = + t, kde t R. Přímky p, q jsou různoběžné, jejich průsečík je R = ( ; ; 0) a svírají spolu úhel přibližně 39 3 53. Upozornění 9.: Výpočet úhlu Pokud nebudete mít v pracovním adresáři MATLABu (work, resp. MATLAB) m-soubor prevodx.m, který jste si vytvořili v Kap., tak Vám poslední příkaz v minulém řešení nebude fungovat a musíte si výpočet úhlu provést pomocí inverzní funkce arkuscosinus. Výsledný úhel, který je v radiánech, pak musíte převést na stupně, minuty a vteřiny, protože běžně požadujeme, aby úhly byly vyjádřeny v těchto úhlových jednotkách a ne v radiánech. Příklad 9.5: Vzdálenost bodu od přímky v prostoru x + y + z Je dán bod A = ( ; ; 3) a přímka p = = =. Určete:
a) obecnou rovnici roviny ρ procházející bodem A kolmo k přímce p, b) vzdálenost bodu A od přímky p, c) rovnici kolmice q spuštěné z bodu A na přímku p. Řešení Normálový vektor hledané roviny je roven směrovému vektoru přímky p a má tedy souřadnice ( ; ; ). Dosazením bodu A do rovnice x + y z + d = 0 vypočítáte d = 5. Do MATLABu byste zadali tyto příkazy: A=[,,3];n=[,,-];d=-dot(n,A) d = -5 obecná rovnice hledané roviny ρ : x + y z 5 = 0. Vzdálenost bodu A od přímky p v prostoru se počítá podle vztahu v ( A, p) například X ( ; ; 0) = 36 n AX =. V MATLABu stačí zadat: X=[-,-,0];vz=abs((norm(cross(n,(X-A))))/norm(n)) vz = 4.46 Pokud byste chtěli tuto vzdálenost přesně, tak byste si vypočítali: u=cross(n,(x-a)) u = -9 9 0 u=u/9;du=u()^+u()^+u(3)^ du = dd=n()^+n()^+n(3)^ dd = 9 n, kde X je libovolný bod přímky p, tedy 9 9 vzdálenost je pak v ( A, p) = = = 3 4,4 6. Patu P kolmice q spuštěné 9 3 z bodu A na přímku p naleznete jako průsečík přímky p s rovinou, kterou jste vypočítali hned na začátku ρ p ( + t) + ( + t) + t 5 = 0 9t = 9 t =. Bod P = ( ; ; ) k = A P = ; ; 4. V MATLABu stačí zadat: a směrový vektor hledané kolmice je ( ) P=[,,-];k=A-P k = 4 Parametrické vyjádření hledané kolmice je q: x = + t y = + t z = 3 + 4t, kde t R Výsledek Obecná rovnice roviny ρ procházející bodem A kolmo k přímce p je ρ : x + y z 5 = 0. Vzdálenost bodu A od přímky p je v ( A, p) = 3 4,4 6 příslušných délkových jednotek. Rovnice kolmice q spuštěné s bodu A na přímku p je: q: x = + t y = + t. z = 3 + 4t, kde t R Úkol Vyřešte svou vlastní Dílčí úlohu č. 5 pomocí MATLABu. Dejme tomu, že Vaše zadání vypadá takto: Vypočítejte objem rovnoběžnostěnu s trojúhelníkovou podstavou, jeho povrch, tělesovou výšku a obsah podstavy, jestliže jeho vrcholy mají souřadnice: A = ( 6; 9; 5), B 9; 0; 8 C 4; 8; A = 3; 3;. Rovnoběžnostěn zobrazte. = ( ), = ( ) a ( ).
Řešení Protože do MATLABu nelze zadat A (apostrof ' je funkce MATLABu, která z matice A vytvoří matici transponovanou), tak si tento bod horní podstavy označte A. Vaše početní řešení pomocí MATLABu pak může vypadat například takto: A=[6,9,5];B=[9,0,-8];C=[4,-8,];A=[-3,3,-];u=B-A = 3-9 -33 v=c-a v = 8-37 -3 w=a-a w =-9-6 -7 a=[u;v;w];v=abs(det(a))/ V = 9.045e+003 numstr(v,8) ans = 904.5 P=norm(cross(u,v))/ P = 590.5764 vt=v/p vt = 5.5856 S=norm(cross(u,w)) S = 70.76 S=norm(cross(v,w)) S = 673.653 k=c-b k = -5-8 0 S3=norm(cross(k,w)) S3 = 856.404 S=S+S+S3+*P S = 3.49e+003 numstr(s,8) ans = 34.945 Abyste mohli vykreslit zadaný rovnoběžnostěn, tak si nejprve vypočítejte souřadnice zbývajících bodů horní podstavy: B=B+w B = 0-6 -35 C=C+w C = 5-34 -5 nyní již můžete napsat m-soubor, který Vám zadaný rovnoběžnostěn vykreslí. Jednotlivé hrany můžete zadávat přímo pomocí vypočítaných souřadnic, nebo si můžete nejprve body načíst a pak jednotlivé hrany kreslit obecně. Nezapomeňte, že těleso uvidíte ve skutečném tvaru pouze tehdy, když budete mít ekvidistantní všechny tři osy. Také je vhodné otočit orientaci osy x a y, aby byly orientovány tak, jak je běžné v matematice (fyzice i chemii) a popsat jednotlivé vrcholy. V prvním případě byste napsali například tento m-soubor: rovnob.m hold on; plot3([6,9],[9,0],[5,-8],'k'); plot3([9,4],[0,-8],[-8,],'k'); plot3([4,6],[-8,9],[,5],'k'); plot3([6,-3],[9,3],[5,-],'k'); plot3([9,0],[0,-6],[-8,-35],'k--'); 363
plot3([4,5],[-8,-34],[,-5],'k'); plot3([-3,0],[3,-6],[-,-35],'k--'); plot3([5,0],[-34,-6],[-5,-35],'k--'); plot3([-3,5],[3,-34],[-,-5],'k'); text(6,0,5,'\fontname{times new roman ce}a') text(0,,-8,'\fontname{times new roman ce}b') text(5,-0,,'\fontname{times new roman ce}c') text(-3,4,-,'\fontname{times new roman ce}a ') text(0,-3.5,-35,'\fontname{times new roman ce}b '); text(5.5,-35.5,-5,'\fontname{times new roman ce}c '); axis square; axis([-35 9-35 9-35 9]); axis off; set(gca,'xdir','reverse','ydir','reverse','zdir','normal'); a rovnoběžnostěn pak vypadá takto: v druhém případě byste napsali například tento m-soubor: rovnob.m A=[6,9,5];B=[9,0,-8];C=[4,-8,];A=[-3,3,-];B=[0,-6,- 35];C=[5,-34,-5];hold on; plot3([a(),b()],[a(),b()],[a(3),b(3)],'k'); plot3([b(),c()],[b(),c()],[b(3),c(3)],'k'); plot3([a(),c()],[a(),c()],[a(3),c(3)],'k'); plot3([a(),a()],[a(),a()],[a(3),a(3)],'k'); plot3([b(),b()],[b(),b()],[b(3),b(3)],'k--'); plot3([c(),c()],[c(),c()],[c(3),c(3)],'k'); plot3([a(),b()],[a(),b()],[a(3),b(3)],'k--'); plot3([b(),c()],[b(),c()],[b(3),c(3)],'k--'); plot3([a(),c()],[a(),c()],[a(3),c(3)],'k'); text(6,0,5,'\fontname{times new roman ce}a') text(0,,-8,'\fontname{times new roman ce}b') text(5,-0,,'\fontname{times new roman ce}c') text(-3,4,-,'\fontname{times new roman ce}a ') text(0,-3.5,-35,'\fontname{times new roman ce}b '); text(5.5,-35.5,-5,'\fontname{times new roman ce}c '); axis square; axis([-35 9-35 9-35 9]);axis off; set(gca,'xdir','reverse','ydir','reverse','zdir','normal'); rovnoběžnostěn je samozřejmě stejný. Co se jednotlivých řádků výše uvedených m-souborů týče, tak je myslím jasné, že pomocí příkazů plot3 se kreslí úsečky, které představují 364
jednotlivé hrany rovnoběžnostěnu. Při popisu (příkazy text) doporučuji nejprve napsat souřadnice jednotlivých bodů a teprve dodatečně písmena posunout tak, aby se nepřekrývaly s hranami. Prvními dvěma axis zabezpečujete ekvidistantní osy a rozsah os lze zadat od nejnižší po nejvyšší hodnotu, která se v souřadnicích všech bodů vyskytuje. Tento rozsah můžete také určit pro každou osu samostatně, ale pozor, že rozsah musí být stejný, protože jinak by se Vám těleso nezobrazilo tak, jak ve skutečnosti vypadá. Příkazem axis off vypnete zobrazení os, protože Vy máte zobrazit těleso a ne jeho polohu vzhledem k souřadnicovým osám. Poslední příkaz otáčí orientaci osy x a y tak, aby kladná poloosa x směřovala dopředu a kladná poloosa y doprava. Pokud by se při zobrazení některé hrany překrývaly, tak je vhodné použít příkaz view. Pomocí tlačítka na nástrojové liště v obrázku si těleso natočíte tak, aby se jednotlivé hrany nepřekrývaly, poznamenáte si azimut a elevaci (zobrazuje se při pohybu vlevo dole) a tyto hodnoty zapíšete do příkazu view. Můžete si vyzkoušet například view(74,-84), což je ukázáno v m-souborech rovnoba.m a rovnoba.m. Samozřejmě že bylo nutné posunout popis a obrázek pak vypadá takto: Výsledek Objem rovnoběžnostěnu s trojúhelníkovou podstavou je 9 04,5000 příslušných objemových jednotek. Obsah podstavy je přibližně s přesností na čtyři desetinná místa 590,576 4 příslušných plošných jednotek, tělesová výška je přibližně 5,585 6 příslušných délkových jednotek a povrch je přibližně 3 4,94 5 příslušných plošných jednotek. Rovnoběžnostěn lze zobrazit například pomocí m-souboru rovnob.m. AUTOTEST. Je dán trojúhelník ABC, kde A = ( ; 3), B = ( 0; ), C ( ; ) =. Nalezněte střed a poloměr kružnice opsané tomuto trojúhelníku. Trojúhelník i kružnici opsanou, včetně jejího středu, zakreslete.. Je dán trojúhelník, kde A = ( 3; 4), B = ( 5; ), C = ( ; 5). Určete rovnice výšek tohoto trojúhelníka a jejich průsečík. Trojúhelník, výšky i jejich průsečík zobrazte. 3. Určete souřadnice vrcholů a obsah trojúhelníka vymezeného polorovinami danými nerovnostmi: y 3x, y x + 6, y 4x. Načrtněte obrázek. 4. Poloha trojúhelníkové parcely na plánu je vyznačena vrcholy trojúhelníka ABC. Jaké A 9; 3 ; 5 C = 4;. Parcelu zobrazte. jsou její vnitřní úhly, jestliže: = ( ), B = ( ), ( ) 5. Určete velikost zorného úhlu, pod nímž je vidět kružnici x + y x 6y 6 = 0 P = 3; 0. Kružnici, bod P, obě tečny i zorný úhel zakreslete. z bodu ( ) 6. Vypočítejte obsah čtyřúhelníka ABCD, jestliže A = ( ; 5; 7), ( 3; ; 3) C = ( ; ; 4), D = ( ; ; 9). Čtyřúhelník zobrazte. B =, 365
7. Nalezněte těžiště homogenní desky tvaru trojúhelníka ABC, jestliže A ( ; ; ) B = ( ; 3; 3), C ( ; ; 5) =, =. Napište obecnou rovnici roviny tohoto trojúhelníka a trojúhelník, včetně těžiště, zobrazte. 3 x 5 y z 8. Vypočítejte úhel přímky p : = = s rovinou ρ = ABC, kde A = ( ; 8; ), 3 B ; ; C = 3; ; 4. Načrtněte obrázek. = ( ), ( ) 9. Nalezněte obvod trojúhelníka XYZ, kde X je průsečík přímek p, q, Y je průsečík přímky p s rovinou ρ = ABC a Z je průsečík přímky q s rovinou ρ. Přitom p = DE, kde D = ( ; ;), E = ( ; 3; ). Přímka q : x + z = 0 x + y = 0 a A = ( ; ; 0), B 3; ; C = ; ;. Trojúhelník XYZ zobrazte. = ( ) a ( ) 0. Rohový a koncový sloupek musí být opatřen vzpěrou, aby, po natažení pletiva, zůstala voliéra stabilní. Jak dlouhá musí být tato nejkratší vzpěra, jestliže rohový sloupek je v průniku dvou sousedních stěn, které lze popsat rovnicemi: x y + 4 = 0, y + z = 0 a koncový sloupek spojuje bod A = ( 3; ; ) s bodem B = ( ; 0;). Zakreslete oba sloupky a tuto vzpěru, včetně bodů, kde budou úchyty. Řešení. Střed kružnice opsané je v průsečíku os stran. Stačí tedy nalézt například obecné rovnice dvou os stran a jejich průsečík je hledaný střed S kružnice opsané. Poloměr kružnice opsané je pak vzdálenost tohoto středu S od libovolného vrcholu trojúhelníka ABC. Nejprve do MATLABu zadejte body A, B, C a nalezněte normálový vektor osy strany AB, což je směrový vektor u = B A : A=[-,3];B=[0,];C=[,-];u=B-A u = - obecná rovnice osy strany AB je x y + c = 0, kde c dopočítáte tak, že do této rovnice dosadíte střed úsečky AB. Do MATLABu tedy zadáte: SAB=(A+B)/; c=-dot(u,sab) c = 3 obecná rovnice osy strany AB je x y + 3 = 0. Analogicky naleznete obecnou rovnici osy strany BC. Do MATLABu tedy postupně zadáte tyto příkazy: v=c-b v = -3 SBC=(B+C)/;c=-dot(v,SBC) c = obecná rovnice osy strany BC je x 3 y + = 0. Střed S kružnice opsané naleznete vyřešením soustavy rovnic: x y = 3 x 3y =, do MATLABu stačí zadat tyto příkazy: X=[,-;,-3];Y=[-3;-];S=X\Y S = -4 - Střed kružnice opsané S ( 4; ) = a poloměr r naleznete například jako r = AS. Protože ale souřadnice bodu S máte ve sloupečku, tak do MATLABu musíte zadat S': r=norm(s'-a) r = 5 366
Trojúhelník včetně kružnice opsané a jejího středu můžete vykreslit například pomocí následujícího m-souboru: autot.m plot([-0,],[0,0],'k'); hold on; plot([0,0],[-7,5],'k'); A=[-,3];B=[0,];C=[,-]; plot([a(),b()],[a(),b()],'b'); plot([c(),b()],[c(),b()],'b'); plot([a(),c()],[a(),c()],'b'); plot(-4,-,'m+'); text(-3.75,-.5,'\fontname{times new roman ce}s'); t=0:*pi/00:*pi; plot(5.*cos(t)-4,5.*sin(t)-,'m'); text(-,3.5,'\fontname{times new roman ce}a'); text(0.,.5,'\fontname{times new roman ce}b'); text(.5,-,'\fontname{times new roman ce}c'); axis square; box off; axis([-0-7 5]); text(.75,0.5,'\fontname{times new roman ce}\itx'); text(0.5,4.75,'\fontname{times new roman ce}\ity'); Obr. 9.: Vykreslení trojúhelníka ABC s kružnicí opsanou. Výšky jsou kolmice spuštěné z vrcholu na protější stranu. Normálový vektor výšky na stranu AB je roven směrovému vektoru strany u = B A. Do MATLABu tedy zadejte: A=[-3,-4];B=[5,-];C=[,5];u=B-A u = 8 obecná rovnice výšky na stranu AB je 4x + y + c = 0, kde c dopočítáte tak, že do této rovnice dosadíte vrchol C. Do MATLABu tedy zadáte: c=-dot(u/,c) c = -9 obecná rovnice výšky na stranu AB je 4 x + y 9 = 0. Analogicky naleznete obecnou rovnici výšky na stranu BC a AC. Do MATLABu tedy postupně zadáte tyto příkazy: v=c-b v = -4 7 c=-dot(-v,a) c = -6 367
w=c-a w = 4 9 c3=-dot(w,b) c3 = - obecná rovnice výšky na stranu BC je tedy 4 x 7 y 6 = 0 a na stranu AC je 4 x + 9y = 0. Průsečík výšek naleznete tak, že si vyberete libovolné dvě ze tří výše uvedených obecných rovnic výšek a vyřešíte soustavu dvou rovnic o dvou neznámých. Do MATLABU stačí zadat například tyto příkazy: [x,y]=solve('4*x-7*y-6=0','4*x+9*y-=0') x = 79/3 y = -7/8 Protože průsečík výšek leží uvnitř trojúhelníka ABC, tak je vhodné si ještě vypočítat paty výšek s jednotlivými stranami, abyste výšky kreslili pouze uvnitř trojúhelníka. Do MATLABu stačí postupně zadat následující příkazy: u=[u(),-u()] u = -8 d=-dot(u/,a) d = -3 [x,y]=solve('x-4*y-3=0','4*x+y-9=0') x = 49/7 y = -43/7 v=[v(),-v()] v = 7 4 d=-dot(v,b) d = -7 [x,y]=solve('7*x+4*y-7=0','4*x-7*y-6=0') x = 53/65 y = -4/65 w=[w(),-w()] w = 9-4 d3=-dot(w,a) d3 = [x,y]=solve('9*x-4*y+=0','4*x+9*y-=0') x = -9/97 y = 6/97 Trojúhelník, výšky i jejich průsečík V můžete vykreslit například pomocí následujícího m-souboru: autot.m plot([-5,6],[0,0],'k');hold on; plot([0,0],[-5,6],'k'); A=[-3,-4];B=[5,-];C=[,5]; plot([a(),b()],[a(),b()],'b'); plot([c(),b()],[c(),b()],'b'); plot([a(),c()],[a(),c()],'b'); plot(79/3,-7/8,'m+'); text(79/3+0.5,-7/8+0.5,'\fontname{times new roman ce}v'); plot([c(),49/7],[c(),-43/7],'m'); plot([a(),53/65],[a(),-4/65],'m'); plot([b(),-9/97],[b(),6/97],'m'); text(-3.5,-4.5,'\fontname{times new roman ce}a'); text(5.5,-.5,'\fontname{times new roman ce}b'); 368
text(.5,5.5,'\fontname{times new roman ce}c'); axis square; box off; axis([-5 6-5 6]); text(5.75,0.5,'\fontname{times new roman ce}\itx'); text(0.5,5.75,'\fontname{times new roman ce}\ity'); Obr. 9.: Zobrazení trojúhelníka ABC, výšek a jejich průsečíku 3. Nejprve nalezněte vrcholy hledaného trojúhelníka ABC. Do MATLABu stačí postupně zadat tyto příkazy: [x,y]=solve('3*x+y=0','*x-y+6=0') x = -6/5 y = 8/5 [x,y]=solve('3*x+y=0','4*x-y-=0') x = /7 y = -3/7 [x3,y3]=solve('*x-y+6=0','4*x-y-=0') x3 = 7/ y3 = 3 A=[-6/5,8/5,0];B=[/7,-3/7,0];C=[7/,3,0];u=B-A;v=C-A; P=norm(cross(u,v))/ P = 5.7786 Pokud byste chtěli výsledek přesný, pak si stačí uvědomit, že společný jmenovatel všech souřadnic nalezených bodů je 70, a protože se velikost vektorového součinu dělí dvěma, tak bychom měli mít zlomek, kde ve jmenovateli je 40. Proto stačí napsat příkaz: P=(P-5)*40 P = 09.0000 09 09 Pro hledaný obsah trojúhelníka ABC platí: P = 5 = 5,778 6. Trojúhelník 40 40 můžete zobrazit pomocí následujícího m-souboru: autot3.m plot([-7,0],[0,0],'k');hold on; plot([0,0],[-,5],'k'); patch([-6/5,/7,7/],[8/5,-3/7,3],'c'); text(-6/5-0.75,8/5,'\fontname{times new roman ce}a'); text(/7+0.5,-3/7-0.5,'\fontname{times new roman ce}b'); 369
text(7/+0.5,3+0.5,'\fontname{times new roman ce}c'); axis square;box off; axis([-7 0-5]); text(9,0.5,'\fontname{times new roman ce}\itx'); text(0.5,4,'\fontname{times new roman ce}\ity'); Obr. 9.3: Zobrazení trojúhelníku ABC 4. Úhly v trojúhelníku musíte počítat jako úhly příslušných směrových vektorů, protože u v úhel v trojúhelníku může být i tupý. Využijte vztah cos ϕ = a m-soubor u v prevodx.m. Do MATLABu tedy budete postupně zadávat následující příkazy: A=[9,-3];B=[,5];C=[-4,];u=B-A;v=C-A; x=dot(u,v)/(norm(u)*norm(v));prevodx stupnu = 7 minut = 46 vterin = 36 u=a-b;v=c-b;x=dot(u,v)/(norm(u)*norm(v));prevodx stupnu = 04 minut = 37 vterin = 5 u=a-c;v=b-c;x=dot(u,v)/(norm(u)*norm(v));prevodx stupnu = 47 minut = 36 vterin = 9 Trojúhelník lze zobrazit pomocí následujícího m-souboru: autot4.m plot([-5,0],[0,0],'k');hold on; plot([0,0],[-5,0],'k'); A=[9,-3];B=[,5];C=[-4,]; plot([a(),b()],[a(),b()],'b'); plot([c(),b()],[c(),b()],'b'); plot([a(),c()],[a(),c()],'b'); text(9.5,-3.5,'\fontname{times new roman ce}a'); text(.5,5.5,'\fontname{times new roman ce}b'); text(-4.5,,'\fontname{times new roman ce}c'); axis square;box off; axis([-5 0-5 0]); text(9.5,0.5,'\fontname{times new roman ce}\itx'); 370
text(0.5,9.5,'\fontname{times new roman ce}\ity'); text(7,-.6,'\fontname{times new roman ce}\it{\alpha}'); text(.6,4,'\fontname{times new roman ce}\it{\beta}'); text(-.75,.,'\fontname{times new roman ce}\it{\gamma}'); Obr. 9.4: Zobrazení parcely včetně vnitřních úhlů 5. Abyste danou úlohu vyřešili, tak potřebujete znát body dotyku tečen sestrojených z bodu P k zadané kružnici. Tyto body dotyku leží nejen na zadané kružnici, ale také na Thaletově kružnici nad průměrem SP, kde S je střed zadané kružnice. Nejprve si proto nalezněte střed zadané kružnice x + y x 6y 6 = 0 ( x ) + ( y 3) = 6 S = ( ; 3). Nyní nalezněte rovnici Thaletovy kružnice. Střed má uprostřed úsečky SP a poloměr je roven polovině této úsečky. Do MATLABu stačí zadat tyto příkazy: S=[,3];P=[-3,0];SP=(S+P)/ SP = -.0000.5000 r=norm(s-p)/ r =.5000 3 + + y = průsečíky obou kružnic. Do MATLABu stačí zadat následující příkaz: takže středová rovnice Thaletovy kružnice je ( x ) 37 5 4. Nyní nalezněte [x,y]=solve('x*x+y*y-*x-6*y-6=0','(x+)^+(y-3/)^=5/4') x = [ -3] [ -3/5] y = [ 3] [ -/5] 3 = a T = ;. Zorný úhel je 5 5 úhel vektorů u = T P a v = T P. Do MATLABu stačí zadat tyto příkazy: Hledané body dotyku mají souřadnice T ( 3; 3) T=[-3,3];T=[-3/5,-/5];u=T-P;v=T-P; x=dot(u,v)/(norm(u)*norm(v)); prevodx stupnu = 06 minut = 5 vterin = 37 Obecné rovnice tečen získáte pomocí příkazů: n=[u(),-u()],d=-dot(n,p)
n = 3 0 d = 9 n=5*[v(),-v()],d=-dot(n,p) n = - -7 d = -63 pro obecnou rovnici tečny procházející body T, P platí: t : 3x + 9 = 0 x + 3 = 0 a pro tečnu procházející body T, P platí: t : x 7y 63 = 0 7x + 4y + = 0. Kružnici, bod P, obě tečny, zorný úhel i Thaletovu kružnici můžete zobrazit například pomocí následujícího m-souboru: autot5.m plot([-4,6],[0,0],'k');hold on; plot([0,0],[-,8],'k'); plot(-3,0,'m+'); text(-3.5,-0.5,'\fontname{times new roman ce}p'); t=0:*pi/00:*pi;plot(4.*cos(t)+,4.*sin(t)+3,'b'); t=0:*pi/00:*pi;plot(5/.*cos(t)-,5/.*sin(t)+3/,'k--'); plot(-3,3,'k+'); text(-3.5,3.4,'\fontname{times new roman ce}t'); text(-3.5,3.4,'\fontname{times new roman ce} _'); plot(-3/5,-/5,'k+'); text(-3/5-0.4,-/5-0.5,'\fontname{times new roman ce}t'); text(-3/5-0.4,-/5-0.5,'\fontname{times new roman ce} _'); plot(-,3/,'k+'); plot(,3,'b+'); y=-:0.0:4;x=-3;plot(x,y,'m'); x=-3.75:0.0:;y=(-7.*x-)/4; plot(x,y,'m'); axis square;box off;axis([-4 6-8]); text(5.5,0.5,'\fontname{times new roman ce}\itx'); text(0.5,7.5,'\fontname{times new roman ce}\ity'); text(-.75,0.35,'\fontname{times new roman ce}\it{\alpha}'); Obr. 9.5: Zobrazení kružnice, bodu P, tečen, zorného úhlu i Thaletovy kružnice 6. Obsah čtyřúhelníka vypočítejte jako součet obsahů trojúhelníka ABC a trojúhelníka ACD. Nejprve si vypočítejte vektory u = B A, v = C A, w = D A. Obsah u v v w trojúhelníka ABC je pak P = a obsah trojúhelníka ACD je P =. Celkový obsah čtyřúhelníka je P = P + P. Do MATLABu stačí zadat tyto příkazy: 37
A=[,-5,7];B=[3,,3];C=[-,,4];D=[,,9];u=B-A;v=C-A;w=D-A; P=norm(cross(u,v))/+norm(cross(v,w))/ P = 33.437 Pokud byste chtěli výsledek přesně, tak byste si ještě vypočítali: k=cross(u,v) k = 7 4 8 l=cross(v,w) l = 3 4 - k=k/7;l=l/4;l()^+l()^+l(3)^ ans = 74 k()^+k()^+k(3)^ ans = Čtyrúhelník můžete zobrazit například pomocí následujícího m-souboru: autot6.m plot3([0,9],[0,0],[0,0],'k');hold on; plot3([0,0],[0,9],[0,0],'k'); plot3([0,0],[0,0],[0,9],'k'); A=[,-5,7];B=[3,,3];C=[-,,4];D=[,,9]; plot3([a(),b()],[a(),b()],[a(3),b(3)],'b'); plot3([c(),b()],[c(),b()],[c(3),b(3)],'b'); plot3([c(),d()],[c(),d()],[c(3),d(3)],'b'); plot3([a(),d()],[a(),d()],[a(3),d(3)],'b'); text(.5,-5,7.5,'\fontname{times new roman ce}a'); text(3.5,,.5,'\fontname{times new roman ce}b'); text(-,.5,4,'\fontname{times new roman ce}c'); text(,0,9.5,'\fontname{times new roman ce}d'); axis square;box off;axis([-5 9-5 9-5 9]); set(gca,'xdir','reverse','ydir','reverse','zdir','normal'); text(9,0,-0.5,'\fontname{times new roman ce}\itx'); text(0,9,-0.5,'\fontname{times new roman ce}\ity'); text(0,0.5,9,'\fontname{times new roman ce}\itz'); axis off; Obr. 9.6: Zobrazení čtyřúhelníku v prostoru 7. Souřadnice těžiště se vypočítají nejrychleji podle vztahu stačí zadat tyto příkazy: A=[,-,];B=[,3,3];C=[-,-,5];T=(A+B+C)/3 T = 0.6667 0 3.3333 Trojúhelník s těžištěm lze zobrazit pomocí následujícího m-souboru: autot7.m plot3([0,6],[0,0],[0,0],'k'); hold on; plot3([0,0],[0,6],[0,0],'k'); 373 A + B + C T =. Do MATLABu 3
plot3([0,0],[0,0],[0,6],'k'); A=[,-,];B=[,3,3];C=[-,-,5];T=[/3,0,0/3]; plot3([a(),b()],[a(),b()],[a(3),b(3)],'b'); plot3([c(),b()],[c(),b()],[c(3),b(3)],'b'); plot3([a(),c()],[a(),c()],[a(3),c(3)],'b'); text(.5,-,.75,'\fontname{times new roman ce}a'); text(,3.5,.75,'\fontname{times new roman ce}b'); text(-.5,-,5.5,'\fontname{times new roman ce}c'); text(/3+0.5,0,0/3+0.5,'\fontname{times new roman ce}t'); plot3(/3,0,0/3,'k+'); axis square; box off; axis([- 6-6 - 6]); set(gca,'xdir','reverse','ydir','reverse','zdir','normal'); text(6,0,-0.5,'\fontname{times new roman ce}\itx'); text(0,6,-0.5,'\fontname{times new roman ce}\ity'); text(0,0.5,6,'\fontname{times new roman ce}\itz'); axis off; Obr. 9.7: Zobrazení trojúhelníka ABC včetně těžiště 8. Nejprve si nalezněte normálový vektor n roviny ρ = ABC. Vypočítejte u = B A, v = C A, normálový vektor je pak n = u v. Do MATLABu stačí zadat tyto příkazy: A=[,8,];B=[,-,-];C=[-3,-,4];u=B-A;v=C-A;n=cross(u,v) n = -54 8-36 n=n/(-8) n = 3-3 x 5 y parametrické vyjádření přímky p je p : = t 3 x = t x = 3 t, = t z 5 y = t y = 5 t, = t z = 3t z = 3t, kde t R. Směrový vektor 3 w = ; ; 3 a úhel, který svírá přímka p s rovinou ρ = ABC se přímky p je ( ) vypočítá podle vztahu sin α = n w. Zadejte do MATLABu tyto příkazy: n w n=[3,-,];w=[-,-,-3];x=abs(dot(n,w))/(norm(w)*norm(n)) x = 0.5000 π protože sinα = α = α = 30. Úhel, který svírá přímka s rovinou je úhel, který 6 svírá přímka se svým pravoúhlým průmětem do této roviny. Abyste mohli nakreslit odpovídající obrázek, tak si nejprve musíte tento pravoúhlý průmět nalézt. Nalezněte nejprve průsečík P přímky p s rovinou ρ a pak spusťte z libovolného bodu přímky p kolmici na rovinu ρ, nalezněte průsečík R a těmito dvěma body prochází pravoúhlý 374
průmět p přímky p do roviny ρ. Do MATLABu nejprve zadejte tento příkaz: d=-dot(n,a) d = 0 obecná rovnice roviny ρ : 3x y + z = 0. Dosaďte do této rovnice parametrické vyjádření přímky p: 3 ( 3 t ) ( 5 t) + ( 3t ) = 0 9 3t 5 + t + 6t = 0 6 6 6 6 5 3 6 = 7t t =. Hledaný průsečík P = 3 ; 5 ; 3 = ; ;. Na 7 7 7 7 7 7 7 přímce p leží například bod X = ( 3; 5; ), vektor kolmý k rovině ρ je vektor n = ( 3; ; ). Parametrické vyjádření kolmice spuštěné z bodu X na rovinu ρ je: x = 3 + 3t, y = 5 t, z = + t, kde t R. Průsečík této kolmice s rovinou ρ bude 3 3 ( 3 + 3t ) ( 5 t) + ( + t) = 0 9 + 9t 5 + t + + 4t = 0 4t = 6 t =, pak 7 3 3 3 38 hledaný průsečík R = 3 + 3 ; 5 + ; + = ; ;, směrový vektor 7 7 7 7 7 7 3 5 3 pravoúhlého průmětu je s = P R = ; ; s = ( ; 5; 4) a 7 7 7 7 5 3 parametrické vyjádření je p : x = + t, y = 5t, z = 4t, kde t R. Protože 7 7 7 průsečík P neleží uvnitř trojúhelníka ABC, tak byly protaženy strany AC a BC o svou polovinu. Do MATLABu byly zadány tyto dva příkazy: A+(A-C)/ ans = 4.5000.5000-0.5000 B+(B-C)/ ans = 3 - -5 Obrázek nyní můžete nakreslit například pomocí následujícího m-souboru: autot8.m patch([4.5,3,-3],[.5,-,-],[-0.5,-5,4],'c');hold on; plot3(,8,,'k+'); text(.6,8.7,,'\fontname{times new roman ce}a'); plot3(,-,-,'k+'); text(,-.4,-,'\fontname{times new roman ce}b'); plot3(-3,-,4,'k+'); text(-3.4,-.,4,'\fontname{times new roman ce}c'); t=-3:0.0:3; x=5/7+t;y=3/7-5.*t;z=-/7-4.*t;plot3(x,y,z,'m '); t=-:0.0:5; x=3-t;y=5-.*t;z=-3.*t;plot3(x,y,z,'b'); plot3([3,/7],[5,38/7],[,/7],'k:'); plot3(3,5,,'k+'); plot3(5/7,3/7,-/7,'k+'); text(.6,3.8,/7,'\fontname{times new roman ce}p'); plot3(/7,38/7,/7,'k+'); text(0.,.5,5,'\fontname{times new roman ce}\itp'); text(0.,.5,5,'\fontname{times new roman ce} _'); text(5.,8,5,'\fontname{times new roman ce}\itp'); text(.5,5,,'\fontname{times new roman ce}\it{\alpha}'); axis square;box off; axis([-4-4 -4 ]); set(gca,'xdir','reverse','ydir','reverse','zdir','normal'); axis off;view(70,90); 375
Obr. 9.8: Úhel, který svírá přímka p s rovinou trojúhelníka ABC 9. Potřebujete určit souřadnice bodů X, Y a Z. Nejprve si nalezněte parametrické vyjádření přímek p, q a obecnou rovnici roviny ρ = ABC. Pomocí MATLABu si vypočítejte vektory u = B A, v = C A, jejich vektorovým součinem získáte normálový vektor roviny ρ. Směrový vektor přímky p je s = D E, směrový vektor přímky q získáte vektorovým součinem normálových vektorů zadaných dvou rovin a libovolný bod přímky q (průsečnice zadaných dvou rovin) tak, že si jednu souřadnici zvolíte a zbývající L = 0; 0;. dopočítáte. Zde lze zpaměti určit bod ( ) A=[,-,0];B=[3,,-];C=[,-,];D=[,,];E=[,3,];u=B-A; v=c-a;n=cross(u,v), n = 3 - - d=-dot(n,a) d = -8 s=d-e s = 0 - - ss=cross([,0,],[,,0]) ss = - Obecná rovnice roviny ρ : 3x y z 8 = 0, parametrické vyjádření přímky p : x =, y = t, z = t, kde t R, parametrické vyjádření přímky q : x = s, y = s, z = + s, kde s R. Průsečík přímek p, q stanovíte lehce, protože porovnání x-ových souřadnic okamžitě máte s = a dosazením do zbývajících parametrických rovnic dostáváte X = ( ; ; 0). Dosazením parametrického vyjádření přímky p do obecné 8 rovnice roviny dostáváte: 3 ( t ) + t 8 = 0 5t 8 = 0 5t = 8 t =, 5 6 8 3 dosazením pak Y = ; ; = ; ;. Analogicky naleznete bod Z 5 5 5 5 3 3 ( s ) s ( + s) 8 = 0 3s s s 8 = 0 6s = 9 s = dosazením 3 3 3 3 3 pak Z = ; ; = ; ;. Velikosti stran vypočítáte lehce jako velikosti vektorů x = Z Y, y = Z X, z = Y X. Do MATLABu stačí zadat následující příkazy: X=[,-,0];Y=[,-/5,-3/5];Z=[3/,-3/,-/]; o=norm(z-y)+norm(z-x)+norm(y-x) o = 3.0737 Pokud byste potřebovali obvod vyjádřit přesně, pak byste použili tyto příkazy: x=0*z-0*y;vx=x()^+x()^+x(3)^ vx = 75 376
y=*z-*x;vy=y()^+y()^+y(3)^ vy = 3 z=5*y-5*x;vz=z()^+z()^+z(3)^ vz = 45 75 3 45 5 3 + 5 3 + 6 5 0 3 + 6 5 5 3 + 3 5 pak o = + + = = = 3,073 7. 0 5 0 0 5 Trojúhelník XYZ je rovnoramenný a lze jej zobrazit například pomocí následujícího m-souboru: autot9.m plot3([0,3],[0,0],[0,0],'k'); hold on; plot3([0,0],[0,3],[0,0],'k'); plot3([0,0],[0,0],[0,3],'k'); patch([,,3/],[-,-/5,-3/],[0,-3/5,-/],'g'); text(,-,0,'\fontname{times new roman ce}x'); text(,-/5,-3/5+0.5,'\fontname{times new roman ce}y'); text(3/,-3/,-/-0.5,'\fontname{times new roman ce}z'); axis square;box off; axis([- - - ]); set(gca,'xdir','reverse','ydir','reverse','zdir','normal'); text(3,0,-0.5,'\fontname{times new roman ce}\itx'); text(0,3,-0.5,'\fontname{times new roman ce}\ity'); text(0,0.5,3,'\fontname{times new roman ce}\itz'); axis off; Obr. 9.9: Zobrazení trojúhelníka XYZ 0. Nejprve si určete parametrické vyjádření sloupků. Sloupek p = AB má směrový vektor s = B A, sloupek q je průsečnice rovin x y + 4 = 0 a y + z = 0 a směrový vektor je roven vektorovému součinu normálových vektorů zadaných rovin. Bod průsečnice lze opět stanovit zpaměti, zvolíte-li z-ovou souřadnici nulovou, pak X = 4; 0; 0. Do MATLABu stačí zadat tyto příkazy: ( ) A=[3,,];B=[-,0,];s=B-A s = -4-0 s=s/(-) s = 0 ss=cross([,-,0],[0,,]) ss = - - ss=-ss ss = - 377
Parametrická vyjádření jsou: p : x = + t, y = t, z =, kde t R ; q : x = 4 + s, y = s, z = s, kde s R. Nalézt délku nejkratší vzpěry znamená nalézt délku osy těchto dvou mimoběžek. Musíte tedy nejprve nalézt směr k kolmý k oběma přímkám p, q a pak nalézt příčku mimoběžek rovnoběžnou s tímto směrem k. Pokud jste to pozapomněli, tak například přímkou p a směrem k proložíte rovinu α, naleznete průsečík Q této roviny α s přímkou q, což je jeden krajní bod hledané osy. Pak tímto bodem Q vedete přímku rovnoběžnou se směrem k a naleznete její průsečík P s přímkou p. Vzdálenost bodů PQ je hledaná délka vzpěry. S pomocí MATLABu můžete postupovat například takto: k=cross(s,ss) k = - l=cross(k,s) l = - -5 d=-dot(l,b) d = 4 obecná rovnice roviny α : x + y 5z + 4 = 0 α : x y + 5z 4 = 0. Průsečík 4 s přímkou q je tedy 4 + s s 5s 4 = 0 6s = 8 s = a dosazením dostáváte 3 4 4 4 6 4 4 Q = 4 ; ; = ; ;. Přímka k = Q, k má parametrické vyjádření 3 3 3 3 3 3 6 4 4 k : x = r, y = + r, z = + r, kde r R. Průsečík přímek k, p naleznete 3 3 3 4 velice snadno, stačí porovnat z-ové souřadnice a okamžitě dostanete = + r r =, 3 3 6 4 dosazením pak P = + ; ; = ( 5; ; ). Vzdálenost bodů PQ je: 3 3 3 3 P=[-5,-,];Q=[-6/3,-4/3,4/3];vzd=norm(P-Q) vzd = 0.865 nebo pro přesnou hodnotu: v=3*p-3*q;vz=v()^+v()^+v(3)^ vz = 6 Vzdálenost bodů PQ je 6 0,86 5. Oba sloupky a vzpěru lze zakreslit například 3 pomocí následujícího m-souboru: autot0.m t=-5:0.0:;x=-+.*t;y=t;z=+0.*t;plot3(x,y,z,'k'); hold on; s=-0:0.0:5;x=-4+s;y=s;z=-s;plot3(x,y,z,'b'); P=[-5,-,];Q=[-6/3,-4/3,4/3]; plot3([p(),q()],[p(),q()],[p(3),q(3)],'m'); plot3(-5,-,,'k+'); text(-5+0.5,-,+0.5,'\fontname{times new roman ce}p'); plot3(-6/3,-4/3,4/3,'k+'); text(-6/3-0.5,-4/3,4/3,'\fontname{times new roman ce}q'); axis square;box off;axis([-5-5 -5 ]); text(,,,'\fontname{times new roman ce}\itp'); text(-3.5,0,0,'\fontname{times new roman ce}\itq'); set(gca,'xdir','reverse','ydir','reverse','zdir','normal'); axis off; 378
Výsledek Obr. 9.0: Zobrazení osy dvou mimoběžek (sloupků a vzpěry). Střed kružnice opsané trojúhelníku ABC má souřadnice S ( 4; ) = a poloměr r = 5 příslušných délkových jednotek. Trojúhelník i kružnice opsaná, včetně jejího středu jsou zobrazeny na Obr. 9... Obecná rovnice výšky na stranu AB je 4 x + y 9 = 0, na stranu BC je 4 x 7 y 6 = 0 79 7 a na stranu AC je 4 x + 9y = 0. Průsečík výšek má souřadnice V = ;. 3 8 Trojúhelník, výšky i jejich průsečík jsou zobrazeny na Obr. 9.. 6 8 3 7 3. Souřadnice vrcholů jsou A = ;, B = ;, C = ; 3 a pro obsah 5 5 7 7 09 09 trojúhelníka ABC platí: P = 5 = 5,778 6 příslušných plošných jednotek. 40 40 Zobrazení trojúhelníku ABC je na Obr. 9.3. 4. Trojúhelníková parcela ABC má vnitřní úhly přibližně s přesností na čtyři desetinná místa: α 7 46 36, β 04 37 5 a γ 47 36 9. Parcela je s vnitřními úhly zobrazena na Obr. 9.4. 5. Velikost zorného úhlu, pod nímž je vidět kružnici x + y x 6y 6 = 0 z bodu P = ( 3; 0) je přibližně α 06 5 37. Tečna procházející body T, P má obecnou rovnici t : x + 3 0 a tečna procházející body T, P má obecnou rovnici = 3 t : 7x + 4y + = 0, kde T = ( 3; 3) a T = ;. Kružnice, bod P, obě 5 5 tečny, zorný úhel i Thaletova kružnice jsou zobrazeny na Obr. 9.5. 7 6. Obsah čtyřúhelníka ABCD je P = + 74 33,43 7 příslušných plošných jednotek. Čtyřúhelník je zobrazen na Obr. 9.6. 0 7. Souřadnice těžiště jsou T = ; 0;. Zobrazení zadaného trojúhelníka ABC včetně 3 3 těžiště je na Obr. 9.7. 379
π 8. Přímka p svírá s rovinou ρ = ABC úhel α = α = 30. Zobrazení roviny ρ, 6 přímky p, jejího pravoúhlého průmětu p do roviny ρ i úhlu α je na Obr. 9.8. 5 3 + 3 5 9. Obvod trojúhelníka XYZ je o = 3,073 7 příslušných délkových jednotek. 5 Rovnoramenný trojúhelník XYZ je zobrazen na Obr. 9.9. 0. Nejkratší vzpěra, která spojuje rohový a koncový sloupek voliéry, je dlouhá 6 0,86 5 příslušných délkových jednotek. Osa dvou mimoběžek i mimoběžky 3 (vzpěra a sloupky) jsou zobrazeny na Obr. 9.0. Shrnutí V této kapitole jste se pomocí MATLABu naučili provádět elementární operace s vektory a tím byste měli umět vyřešit jakoukoliv polohovou či metrickou úlohu (v rovině i v prostoru) z analytické geometrie s využitím MATLABu. Samozřejmě, že pokud nebudete umět řešit tuto úlohu prostorově a nebudete umět si ji rozložit na základní úlohy analytické geometrie, tak Vám znalost těchto elementárních operací s vektory v MATLABu mnoho nepomůže. Budete-li vědět, že potřebujete vypočítat smíšený součin, resp. vektorový součin atd., pak Vás MATLAB zbaví nepříjemných výpočtů, u kterých dochází často k numerickým chybám. Další zdroje MATLAB CREATIVE TEAM. MATLAB The Language of Technical Computing. USA: Natick, The MathWorks, Inc., November 000. Fifth printing. MA 0760-098 USA POLCEROVÁ, Marie. Doprovodný text k počítačovým cvičením Matematika I. Brno: Fakulta chemická, Vysoké učení technické v Brně, 00 POLCEROVÁ, Marie a Jaroslav BAYER. Analytická geometrie v příkladech. Brno: Vysoké učení technické v Brně, Fakulta chemická, 004, ISBN 80-4-793-5 POLCEROVÁ, Marie. Cvičení č. 9. In: Vysoké učení technické v Brně, e-learning, Kurz: Počítačová cvičení z matematiky BCT_PCM [online], 00 [cit. 00-05-]. Dostupné z: https://www.vutbr.cz/elearning/ POLCEROVÁ, Marie. Počítačové cvičení č. 9. In: Fakulta chemická Vysokého učení technického v Brně, Matematika [online], 00 [cit. 00-05-]. Dostupné z: https://www.fch.vutbr.cz/~polcerova/ POLCEROVÁ, Marie. Dílčí úloha č. 5. In: Vysoké učení technické v Brně, e-learning, Kurz: Počítačová cvičení z matematiky BCT_PCM [online], 00 [cit. 00-05-]. Dostupné z: https://www.vutbr.cz/elearning/ POLCEROVÁ, Marie. Dílčí úloha č. 5. In: Vysoké učení technické v Brně, e-learning, Kurz: Počítačová cvičení z matematiky BCT_PCM [online], 00 [cit. 00-05-]. Dostupné z: https://www.vutbr.cz/elearning/ POLCEROVÁ, Marie. MAT. In: Vysoké učení technické v Brně, e-learning, Kurz: Počítačová cvičení z matematiky BCT_PCM [online], 00 [cit. 00-05-]. Dostupné z: https://www.vutbr.cz/elearning/ Klíčová slova Analytická geometrie Analytická geometrie je část geometrie, která zkoumá geometrické útvary v euklidovské geometrii pomocí algebraických a analytických metod. V analytické geometrii jsou geometrické útvary v prostoru vyjadřovány čísly a rovnicemi ve zvolených souřadnicových soustavách. 380