Donald Coxeter
è stato uno dei maggiori matematici del XX secolo. Ma, accanto ad articoli e volumi che sono
stati fondamentali per lo sviluppo di vari settori (geometrici ed algebrici) della matematica, ha scritto
numerosi articoli su argomenti ricreativi. Consideriamo un problema di cui si è occupato in uno di essi: "Dati 3 cerchi disposti in modo che ciascuno tocchi gli altri 2, come disegnarne un altro che li tocchi tutti e 3". Se i 3 cerchi hanno raggi pari a B, C e D, 2 cerchi con la proprietà richiesta hanno per raggio i valori assoluti di B·C·D/( B·C+B·D+C·D + 2·√(B·C·D·(B+C+D)) ) e B·C·D/( B·C+B·D+C·D - 2·√(B·C·D·(B+C+D)) ). Determina raggio e centro dei 2 cerchi nel caso in cui i 3 cerchi abbiano raggi 3, 2 ed 1, e prova a realizzare una figura simile a quella a fianco. |
# Traccio i cerchi in un piano cartesiano centrato in (0,0), che assumo come estremo # destro del cerchio maggiore: # Volendo, posso tracciare i cerchi con del software. Usando R posso ad es. fare: source("http://macosa.dima.unige.it/r.R") BF=4; HF=4 PLANE(-6,6, -6,6) C1=-3;C2=0;R=3; circleC(C1,C2,R,"cyan"); circle(C1,C2,R,"black") C1=0;C2=4; R=2; circleC(C1,C2,R,"cyan"); circle(C1,C2,R,"black") C1=-3;C2=4;R=1; circleC(C1,C2,R,"cyan"); circle(C1,C2,R,"black") # # # I raggi dei due cerchi cercati, usando le formule indicate nel testo: F1=function(b,c,d) b*c*d/( b*c+b*d+c*d + 2*sqrt(b*c*d*(b+c+d)) ) F2=function(b,c,d) b*c*d/( b*c+b*d+c*d - 2*sqrt(b*c*d*(b+c+d)) ) F1(3,2,1); F2(3,2,1) # 0.2608696 -6 abs( fraction( c(F1(3,2,1), F2(3,2,1)) ) ) # 6/23 6 # Un cerchio è quello centrato in (0,0) e di raggio 6. L'altro è il cerchietto # colorato in rosso nella figura inziale; ha raggio 6/23, qual è il centro? # Lo trovo come è suggerito dalla figura seguente: # È l'intersezione (X,Y) dei cerchi aventi come centri gli stessi dei cerchi # iniziali allungati di un valore pari al raggio del cerchietto, ossia 6/23. # Volendo posso tracciare la figura precedente con: PLANE(-4,0,0,4) C1=-3;C2=0;R=3; circle(C1,C2,R,"black") C1=0;C2=4; R=2; circle(C1,C2,R,"black") C1=-3;C2=4;R=1; circle(C1,C2,R,"black") C1=-3; C2=0; R=3+6/23; circl(C1,C2,R,"brown") C1=0; C2=4; R=2+6/23; circl(C1,C2,R,"brown") # # Basta che intersechi i due cerchi tracciati in marrone. Posso farlo "a mano". # Ottengo (-48/23, 72/23). Se uso R: C1=-3; C2=0; R=3+6/23; f=function(x) sqrt(R^2-(x-C1)^2)+C2 C1=0; C2=4; R=2+6/23; g=function(x) sqrt(R^2-(x-C1)^2)+C2 X = solution2(f,g, -2.2,-1.8); Y = f(X) c(X,Y) # -2.086957 3.130435 fraction(c(X,Y)) # -48/23 72/23 line(-3,0,X,Y,"seagreen"); line(0,4,X,Y,"seagreen"); line(-3,4,X,Y,"seagreen") # Nella figura precedente sono tracciati (in verde mare) anche questi tre segmenti. # # A questo punto posso tracciare sia cerchio piccolo che cerchio grosso. # Se traccio tutto con R, senza griglia né coordinate: PLANEww(-6,6, -6,6) C1=0;C2=0;R=6; circleC(C1,C2,R,"yellow"); circl(C1,C2,R,"black") C1=-3;C2=0;R=3; circleC(C1,C2,R,"cyan"); circl(C1,C2,R,"black") C1=0;C2=4; R=2; circleC(C1,C2,R,"cyan"); circl(C1,C2,R,"black") C1=-3;C2=4;R=1; circleC(C1,C2,R,"cyan"); circl(C1,C2,R,"black") C1=-48/23;C2=72/23;R=6/23; circleC(C1,C2,R,"red"); circl(C1,C2,R,"black")