Excel - Tipo di triangolo in base agli angoli - dati i lati

Asked By r on 17-Dec-10 10:07 AM
Il problema =E8 trovare una unica funzione che dati i lati diciamo in
B2:B4 restituisca il tipo di triangolo in base ai suoi angoli ...
rettangolo, acutangolo, ottusangolo

ho anche un secondo quesito
dati 2 lati e l'angolo compreso si vuole ricavare gli altri angoli
utilizzando il teorema dei seni ...

in fondo a questa pagina trovate il file su cui ho giocato io (non ci
sono le soluzioni a questi 2 problemi):
http://sites.google.com/site/e90e50/user/grafici-a-dispersione-excel

si trattava inizialmente di creare il grafico dati i lati ... poi l'ho
voluto abbellire ... cos=EC alla fine c'=E8 un po' di tutto ...
nella parte relativa al secondo quesito ... usando il teorema dei
seni ... c'=E8 un errore, vediamo se avete suggerimenti per risolverlo
(io sono diventato matto per una mezzora buona! solo a capire
qual'era ... :-)

saluti
r




Ignazio replied to r on 21-Dec-10 05:31 AM
Io avrei pensato di usare il Teorema di Pitagora ... facendo questo
ragionamento, che penso fili.
In B2:B4 ho 3 lati che in generale sono diversi tra loro (2 o 3 lati uguali
sono casi particolari che non pregiudicano il discorso).
Se il triangolo fosse rettangolo, il maggiore sarebbe l'ipotenusa, gli altri
2 i cateti.
Ma il triangolo "rettangolo" fa anche da spartiacque tra "acutangolo" (il
lato maggiore è inferiore all'ipotetica ipotenusa) e "ottusangolo" (il lato
maggiore è superiore all'ipotetica ipotenusa)

Se il ragionamento non fa acqua, una possibile formula potrebbe essere:
=SE(PICCOLO(B2:B4;3)^2=PICCOLO(B2:B4;1)^2+PICCOLO(B2:B4;2)^2;"Rettangolo";SE(PICCOLO(B2:B4;3)^2<PICCOLO(B2:B4;1)^2+PICCOLO(B2:B4;2)^2;"Acutangolo";"Ottusangolo"))

Una versione matriciale (più compatta) potrebbe essere:
=SE(SOMMA(B2:B4^2)/MAX(B2:B4^2)=2;"Rettangolo";SE(SOMMA(B2:B4^2)/MAX(B2:B4^2)>2;"Acutangolo";"Ottusangolo"))
(da confermare con Ctrl+Maiusc+Invio)

--
Ciao,
Ignazio
http://www.riolab.org
r replied to Ignazio on 21-Dec-10 07:39 PM
On 21 Dic, 11:31, "Ignazio" <i_putignanoNoS...@SeScriviAvirgilio.it>
af15-384e2cd0b7a5@g26g2000vbz.googlegroups.com...
li
tri
lato
olo";S=ADE(PICCOLO(B2:B4;3)^2<PICCOLO(B2:B4;1)^2+PICCOLO(B2:B4;2)^2;"Acutan=
golo";"Ot=ADtusangolo"))
B2:B4^=AD2)>2;"Acutangolo";"Ottusangolo"))

o caccchio! non avevo visto la tua risposta!
sembra funzionare egregiamente .... ci vorrebbe bruno per essere certi
sulla matematicit=E0 del ragionamento ... comunque ... questo =E8 un gol
da centrocampo ... io nella mia sono andato sotto rete per essere
sicuro :-)

sul quesito 2 hai idee?

saluti
r
Ignazio replied to r on 22-Dec-10 05:19 AM
Non ci ho ancora pensato su, ma sicuramente lo faccio nei prossimi giorni.
Intanto ho visto il file sul grafico dei triangoli ... complimenti!

--
Ciao,
Ignazio
http://www.riolab.org
r replied to Ignazio on 22-Dec-10 08:15 AM
On 22 Dic, 11:19, "Ignazio" <i_putignanoNoS...@SeScriviAvirgilio.it>

ok
aspetto fiducioso ...


oh grazie!
r

http://sites.google.com/site/e90e50/user/grafici-a-dispersione-excel#TOC-Sfere-in-movimento
Ignazio replied to r on 04-Jan-11 11:26 AM
Io ho pensato questo ... anche se non so se è la risposta.
Posto che:
- i lati sono: a, b, c
- gli angoli sono; A, B, C
con angolo "A" opposto al lato "a", etc ...

Noti:
a, b, C
vogliamo calcolare:
A, B

Dal teorema dei seni sappiamo che:
a / senA = b / senB
e quindi:
a / b = senA / senB

Inoltre sappiamo che:
A + B + C = 180
quindi:
A = 180 - (B + C)
quindi:
sen A = sen [180 - (B + C)] = sen (B + C)

Sostituendola nel teorema dei seni, abbiamo:
a / b = sen (B + C) / senB
quindi:
a / b = (senB cosC + senC cosB) / senB
quindi:
a / b = cosC + (senC / tgB)
quindi:
senC / tgB = a / b - cosC
quindi:
tgB = senC / (a / b - cosC)
e quindi:
B = arctg [senC / (a / b - cosC)]

Analogamente:
A = arctg [senC / (b / a - cosC)]

Nel tuo file, ho provato le formule:
=GRADI(ARCTAN(SEN(RADIANTI(B21))/(B19/B20-COS(RADIANTI(B21)))))
=GRADI(ARCTAN(SEN(RADIANTI(B21))/(B20/B19-COS(RADIANTI(B21)))))
e pare funzionare.

--
Ciao,
Ignazio
http://www.riolab.org
r replied to Ignazio on 04-Jan-11 06:38 PM
On 4 Gen, 17:26, "Ignazio" <i_putignanoNoS...@SeScriviAvirgilio.it>


prova con
AB	12
AC	30
BC	35

ti restituisce un dato corretto?
ciao
r
Ignazio replied to r on 05-Jan-11 11:05 AM
Infatti, no ... il risultato è sbagliato.
Viene fuori un'angolo negativo:
B=-75,44
Mentre a te (usando la formula del teorema dei seni) viene fuori lo stesso
valore, ma positivo
B=75,44
Evidentemente sono sbagliati entrambi.
Il valore corretto è:
180-75,44=104,56

E adesso capisco perchè nel primo post dicevi::


L'errore è dovuto al fatto che il seno (come anche il coseno o la tangente)
hanno 2 angoli come soluzione.
Per il seno:
senB = sen(180-B)
(con senB>0, come stabilire quindi se la soluzione reale è nel quadrante 1
del cerchio trigonometrico (B<90) o nel quadrante 2 (B>90)? Si può da 2 lati
e l'angolo compreso capire quale soluzione dobbiamo scartare?)

Per la tangente:
tgB = tg(B+180)

Io risolverei usando la tangente, dato che si potrebbero avere 2 casi:
1) tgB>0
le soluzioni sono nei quadranti 1 o 3 del cerchio trigonometrico, quindi la
soluzione è B (quadrante 1, che poi è il caso di B<90)
2) tgB<0
le soluzioni sono nei quadranti 2 o 4 del cerchio trigonometrico, quindi la
soluzione è B+180 (quadrante 2, che poi è il caso di B>90)

Le formule diventano:
=GRADI(ARCTAN(SEN(RADIANTI(B21))/(B19/B20-COS(RADIANTI(B21)))))+180*(SEN(RADIANTI(B21))/(B19/B20-COS(RADIANTI(B21)))<0)
=GRADI(ARCTAN(SEN(RADIANTI(B21))/(B20/B19-COS(RADIANTI(B21)))))+180*(SEN(RADIANTI(B21))/(B20/B19-COS(RADIANTI(B21)))<0)

Le ho provate e pare funzionano.
Mi sorge solo un dubbio.
E se B=90?
Va beh, mi tocca fare altre prove ;) ... magari si può risolvere solo non
usando la tangente ... e quindi bisognerebbe capire come correggere la
formula che c'è nel tuo file (teorema dei seni).

--
Ciao,
Ignazio
http://www.riolab.org
Ignazio replied to Ignazio on 05-Jan-11 11:22 AM
[...]

Ho provato con:
AB 3
AC 4
BC 5

La prima formula dà come risultato:
BAC = 90
Quindi funziona (la tangente tende ad infinito e l'angolo tende a 90)
Infatti la tangente risulta:
-7E+15
ossia tende a -infinito.

--
Ciao,
Ignazio
http://www.riolab.org
Ignazio replied to Ignazio on 05-Jan-11 11:35 AM
Altra prova:
AB 4
AC 3
BC 5

In questo caso la prima formula restituisce l'errore #DIV/0!
Dato che la tangente tende ad infinito, poteva accadere ...
Mi sa che bisogna cercare di sistemare la formula che propone Roberto nel
file e che usa il seno.

--
Ciao,
Ignazio
http://www.riolab.org
Ignazio replied to Ignazio on 07-Jan-11 03:56 AM
La prima cosa che mi viene in mente è di intercettare questa possibilità
verificando che il denominatore per il calcolo del Arcotangemte non sia
zero.
Le formule diventano:

=SE(B19/B20-COS(RADIANTI(B21))=0;90;GRADI(ARCTAN(SEN(RADIANTI(B21))/(B19/B20-COS(RADIANTI(B21)))))+180*(SEN(RADIANTI(B21))/(B19/B20-COS(RADIANTI(B21)))<0))
=SE(B20/B19-COS(RADIANTI(B21))=0;90;GRADI(ARCTAN(SEN(RADIANTI(B21))/(B20/B19-COS(RADIANTI(B21)))))+180*(SEN(RADIANTI(B21))/(B20/B19-COS(RADIANTI(B21)))<0))

Ora dovrebbero essere contemplati tutti i casi e le formule restituiscono i
2 angoli usando solo 2 lati e l'angolo compreso.

--
Ciao,
Ignazio
http://www.riolab.org
r replied to Ignazio on 07-Jan-11 05:58 AM
On 7 Gen, 09:56, "Ignazio" <i_putignanoNoS...@SeScriviAvirgilio.it>
ndi
ndi
*(SEN(RA=ADDIANTI(B21))/(B19/B20-COS(RADIANTI(B21)))<0)
*(SEN(RA=ADDIANTI(B21))/(B20/B19-COS(RADIANTI(B21)))<0)
re
el
B19/B2=AD0-COS(RADIANTI(B21)))))+180*(SEN(RADIANTI(B21))/(B19/B20-COS(RADIA=
NTI(B21))=AD)<0))
B20/B1=AD9-COS(RADIANTI(B21)))))+180*(SEN(RADIANTI(B21))/(B20/B19-COS(RADIA=
NTI(B21))=AD)<0))

ok Ignazio, appena riesco la guardo meglio per=F2 cos=EC ad occhio e
leggendo gli altri post mi sembra che ci siamo.

grazie
ti faccio sapere
r