Esercizio 7 del Novembre 2001.

Siano dati
    u = (1,-h,0)
    v = (h,-1,0)    
    w = (h,2,-h)
(1) Trovare un h per cui u, v, w sono nello stesso piano S.
(2) Trovare un h per cui u, v sono paralleli.
(3) Trovare un h per cui il parallelogramma u, v ha area 6.
(4) Trovare un h per cui il tetraedro u, v, w ha volume 2.

Definisco i vettori u,v,w, e carico il pacchetto MathMacro.txt. Ricordatevi di ripulire h.

In[411]:=

Clear[h] ; u = {1, -h, 0} ; v = {h, -1, 0} ; w = {h, 2, -h} ;

In[415]:=

<<MathMacro.txt

INDICE MATHMACRO.TXT            &n ... aseHelp, eccetera. Scrivere MathMacroHelp per leggere tutte le istruzioni in ordine alfabetico. \n

(1) Trovare un h per cui u, v, w sono nello stesso piano S.
Risolviamo l'equazione av+bu+cw=0 nelle incognite a,b,c,h, scartando la soluzione a=b=c=0. Ricordatevi di ripulire le variabili a,b,c.

In[416]:=

Clear[a, b, c]

In[417]:=

Solve[a u + b v + c  w == 0, {a, b, c, h}] <br />Reduce[a u + b v + c  w == 0, {a, b, c, h}]

Solve :: svars : Equations may not give solutions for all \"solve\" variables.  More…

Out[417]=

{{a0, b2 c, h0}, {a -b, c0, h1}, {ab, c0, h -1}, {a0, b0, c0}}

Out[418]=

a0&&b0&&c0 || a0&&cb/2&&am ... ;0 || (b -a || ba) &&c0&&a≠0&&h -b/a

La soluzione è quindi h=0. Disegnamo u, v, w ed il piano
                     S = {a u + b v| a, b in R}
in questo caso. S è una curva parametrica (usare il comando ParametricPlot3D).

In[419]:=

h = 0 ;

In[420]:=

Show[<br />    Arrow3D[u, "u"], <br />    Ar ... bsp; {a, 0, 1}, {b, -2, 1}, DisplayFunction->Identity], <br />ImageSize->700, Axes->True]

[Graphics:../HTMLFiles/index_226.gif]

Out[420]=

⁃Graphics3D⁃

(2) Trovare un h per cui u, v sono paralleli. Risolviamo l'equazione u x v = (0,0,0) (u vettoriale v = (0,0,0)). Il prodotto vettoriale si indica con Cross. Ricordatevi di ripulire la variabile h.

In[421]:=

Clear[h]

In[422]:=

Solve[Cross[u, v] == {0, 0, 0}, h]

Out[422]=

{{h -1}, {h1}}

Le due soluzioni trovate corrispondono a u=v ed a u = -v.

In[423]:=

h = -1 ; Show[<br />    Arrow3D[u, "u"], <br />    ... >    Arrow3D[w, "w"], <br />ImageSize->700, <br />Axes->True]

[Graphics:../HTMLFiles/index_232.gif]

Out[424]=

⁃Graphics3D⁃

In[425]:=

h = +1 ; Show[<br />    Arrow3D[u, "u"], <br />    ... >    Arrow3D[w, "w"], <br />ImageSize->700, <br />Axes->True]

[Graphics:../HTMLFiles/index_235.gif]

Out[426]=

⁃Graphics3D⁃

(3) Trovare un h per cui il parallelogramma u, v ha area 6. L'area del parallelogrammo è pari al prodotto vettoriale di u, v. Impostiamo quindi l'equazione:
                      norma di uxv = 6*6

In[427]:=

Clear[h]

In[428]:=

Solve[Cross[u, v] . Cross[u, v] == 6 * 6, h]

Out[428]=

{{h - 5^(1/2)}, {h 5^(1/2)}, {h -7^(1/2)}, {h7^(1/2)}}

In[429]:=

h = 7^(1/2) ; {u, v}

Out[430]=

{{1, -7^(1/2), 0}, {7^(1/2), -1, 0}}

In[431]:=

In[432]:=

Show[<br />    Arrow3D[u, "u"], <br />    Ar ... v], <br />    Arrow3D[v, u + v], <br />ImageSize->700, <br />Axes->True]

[Graphics:../HTMLFiles/index_244.gif]

Out[432]=

⁃Graphics3D⁃

(4) Trovare un h per cui il tetraedro u, v, w ha volume 2.

Soluzione 1. Utilizziamo la formula:
      (1/6)Det[{u,v,w}] = volume tetraedro compreso tra u, v w

In[433]:=

Clear[h] ; N[Reduce[(1/6) Det[{u, v, w}] == 2]]

Out[434]=

RowBox[{RowBox[{h, , RowBox[{-, 2.43484}]}], ||, RowBox[{h, , RowBox[{RowBox[{ ...  RowBox[{h, , RowBox[{RowBox[{1.21742, }], +, RowBox[{1.85643,  , }]}]}]}]

Soluzione 2. Anzichè utilizzare una formula già data, proviamo a ottenere il volume del tetraedro con un ragionamento, quindi ad imporre che valga 2.

In[435]:=

Clear[h] ;

In[436]:=

Norm[x_] := (x . x)^(1/2)

SetDelayed :: write : Tag Norm in Norm[x_] is Protected. More…

Out[436]=

$Failed

Calcoliamo il prodotto vettoriale di u, v.

In[437]:=

uxv = Cross[u, v]

Out[437]=

{0, 0, -1 + h^2}

Tale prodotto è pari all'area del parallelogrammo di lati u, v, dunque pari al doppio dell'area del triangolo di lati u, v.

In[438]:=

baseuv = Norm[uxv]/2

Out[438]=

1/2 Abs[-1 + h^2]

u x v è ortogonale al piano di u, v. Dunque il versore versuxv associato ad uxv e' il versore ortogonale al piano di u, v. Calcoliamolo:

In[439]:=

versuxv = uxv/Norm[uxv]

Out[439]=

{0, 0, (-1 + h^2)/Abs[-1 + h^2]}

L'altezza del tetraedro di lati u, v, w rispetto alla base u, v è pari alla lunghezza della proiezione di w sul versore versuxv ortogonale al piano di u, v. Dunque si calcola con un prodotto scalare dei due vettori:

In[440]:=

altezzauv = w . versuxv proiezuv = versuxv * altezzauv

Out[440]=

-(h (-1 + h^2))/Abs[-1 + h^2]

Out[441]=

{0, 0, -(h (-1 + h^2)^2)/Abs[-1 + h^2]^2}

Infine, il volume del tetraedro è pari all'area di base per l'altezza diviso 3:

In[442]:=

Volume = baseuv * altezzauv/3

Out[442]=

-1/6 h (-1 + h^2)

Risolviamo ora numericamente l'equazione Volume = 2.

In[443]:=

NSolve[Volume == 2, h]

Out[443]=

RowBox[{{, RowBox[{RowBox[{{, RowBox[{h, , RowBox[{-, 2.43484}]}], }}], ,, RowBox[{{,  ... , , RowBox[{RowBox[{1.21742, }], +, RowBox[{1.85643,  , }]}]}], }}]}], }}]

Una sola delle soluzioni trovate è un numero reale, quindi accettabile:

In[444]:=

RowBox[{RowBox[{h,  , =,  , RowBox[{-, 2.43484}]}], ;}]

Disegnamo ora, per il valore di h che abbiamo trovato, tutti i vettori utilizzati: u, v, il piano di u, v, il prodotto uxv, il suo versore, e la proiezione di w su tale versore (l'altezza del tetraedro).

In[445]:=

Show[<br />    Arrow3D[u, "u"], <br />    Ar ... ;  (*per una visione frontale*)<br />    ViewPoint-> {0, -2, 0} ]

[Graphics:../HTMLFiles/index_267.gif]

Out[445]=

⁃Graphics3D⁃


Created by Mathematica  (August 4, 2004)