Problema 1.

E' data una procedura ricorsiva che descrive una successione di rettangoli (Subscript[(R ), n]) ; 
vogliamo formalizzare il procedimento cercando, se esiste, un'affinità  f  che trasformi il rettangolo (Subscript[(R ), n ])nel rettangolo (Subscript[(R ), n + 1 ])

Rappresentazione dei dati del problema.

Consideriamo un generico rettangolo aureo R = {a, b, c, d} e il suo trasformato R' ={a', b', c', d'} per la procedura data.

siano L, h le lunghezze dei lati di R, k il rapporto aureo:

h = k L;

Dobbiamo informare il sistema che i simboli h, k, L rappresentano degli scalari e che moltiplicando e sommando scalari si ottengono scalari:

\(Unprotect[NumberQ]; NumberQ[k] = True; NumberQ[L] = True; 
    NumberQ[h] = True; 
NumberQ[x_?NumberQ\ y_?NumberQ] := True; 

    NumberQ[x_?NumberQ\  + y_?NumberQ\ ] = True; \)

Scelta del sistema di riferimento affine: (a, u, v), dove a è l'origine,  u è il versore del vettore b-a, mentre v è il versore di c-a:

Unprotect[VectorQ]; VectorQ[u] = True; VectorQ[v] = True;

b = a + L u;
c = a + h v;
a'=c + h u;
(b^′) = a + h u;
d = c + L u;

Cerchiamo, se esiste, un'affinità  f  che trasformi il rettangolo R\(TraditionalForm\`\(\_\ \)\)nel rettangolo R'

f[x_] := f[a] + g[x - a]f[a] =  (a^′);

scriviamo le condizioni di linearità su g:

g[λ_?NumberQ u_?VectorQ] := λ g[u]g[x_ + y_] := g[x] + g[y]g[0] = 0;

vogliamo trovare, se esistono, dei vettori   g[u], g[v] tali che f[b] = (b^′), f[c] = d, f[d] = b

problema = {f[b] == (b^′), f[c] == d, f[d] == b};

Solve[problema, {g[u], g[v]}]

ipotesi su k (è rapporto aureo):

Unprotect[Power]; (k^(-1)) = 1 + k; (k^2) = 1 - k;

-((-u + k u)/k) // Simplify

sappiamo ora come opera g sulla base:

g[u] =  -k v;  g[v] = k u;

e possiamo scrivere la matrice di g rispetto alla base (u, v):

(Subscript[M, g])   =(({{0, k}, {-k, 0}}))    =  k  (({{0, 1}, {-1, 0}}))

si riconosce che g è composta dell'omotetia lineare di rapporto k e centro con la rotazione lineare di -90° ;
f è la composizione di g con una traslazione e quindi è una similitudine diretta il cui rapporto è k.

Troviamo il punto fisso di f

Una similitudine avente rapporto k<1 ha un unico punto fisso. Vogliamo trovare il punto fisso di f risolvendo l'equazione

f(x) = x

come si risolve un'equazione lineare nel piano vettoriale?

la regola principale è che una combinazione lineare αu+βv dei vettori di base u, v è nulla se entrambi i coefficienti α, β  sono nulli;
serviranno anche il solito principio del "trasporto"  e l'operazione Collect per scrivere un'espressione vettoriale in forma normale rispetto alla base {u, v}.

risolvi[x_?NumberQ u + y_?NumberQ v == 0, variabili_List] := 
      Solve[{x == 0, y == 0}, variabili]risolvi[x_ == y_, variabili_] := 
      risolvi[Collect[x - y, {u, v}] == 0, variabili]

Il punto fisso p si può scrivere nella base (a, u , v):

\(p := a + α\ u + \ β\ v; 
NumberQ[α] = True; 
    NumberQ[\ β] = True; \)

possiamo ora risolvere l'equazione del punto fisso:

risolvi[f[p] == p, {α, β}] // Simplify

2° metodo. Omotetie

Il problema è sempre quello di trovare il punto fisso p della similitudine f, ma vogliamo descrivere una costruzione geometrica per p. Cominciamo con l'osservazione seguente di carattere generale:

(1) i punti fissi di una trasformazione f sono anche punti fissi di (f^( 2)) = f ∘ f

Nel nostro caso, dal punto di vista geometrico caso è più trattare (f^2) che non f. 
In effetti, possiamo verificare che (f^2) è un'omotetia, come segue dalla proprietà seguente :

(2) Sia f  una similitudine, f [x] = λ r[x] + t, la cui componente rotazione r è una rotazione di  ± 90°. Allora, (f^2)è un'omotetia.

f[x_] := λ r[x]  +  tNumberQ[λ] = True; VectorQ[t] = True;

per ipotesi, r è lineare e  (r^( 2)) è la simmetria di centro l'origine:

r[α_?NumberQ x_] := α r[x]r[x_ + y_] := r[x] + r[y]r[r[x]] := -x

andiamo a vedere come funziona (f^2) :

f[f[x]] // Expand

(f^( 2))  è composizione dell'omotetia lineare di rapporto -(λ^2) con la traslazione di vettore t + λ r[t]ed è quindi un'omotetia.

per trovare il punto fisso di    f  basterà allora trovare l' unico punto fisso di 
                (f^( 2)) .  Ci siamo così ridotti al problema
                 seguente :

come si trova il punto fisso di un'omotetia?

C'è una semplice costruzione geometrica per il punto fisso di un'omotetia, basato sulla proprietà seguente:

(3)  Sia ω il punto fisso dell'omotetia h  e sia x punto tale che h(x) ≠ x ; allora ω, x e h(x) sono allineati.

Nel nostro caso,  h = (f^( 2)), e consideriamo i due punti c, d, da cui ricaviamo
la retta L passante per i punti c, b = (f^( 2)) (c), 
la retta L' passante per i punti d, b' = (f^( 2)) (d),
allora, il punto fisso è  p, l'intersezione di L e L'.

le orbite di (f^( 2))

La proprietà (3) ci dice anche che l'orbita {(h^n)(x)} di un punto x sotto l'azione di un'omotetia \(TraditionalForm
      \`\(h\ è\ tutta\ contenuta\ in\ una\ retta\ passante\ per\ il\ 
      \)\)punto fisso di h . 
Nella figura vediamo 4 rette contenenti orbite di (f^2) (che passano per i vertici dei rettangoli): il loro centro è il punto fisso

3°metodo.

La conclusione del metodo precedente suggerisce che possiamo trovare il  punto fisso di  f  con una costruzione geometrica senza passare attraverso (f^( 2)) ma basandosi sulla proprietà seguente:

(4)  Se  la trasformazione geometrica  f  trasforma la retta L nella retta L'  e  la retta L' nella retta L
 e le due rette si intersecano nel punto p allora p è punto fisso di f.

Proviamo che f soddisfa (4).
Consideriamo, infatti,  la retta L passante per i punti c, b  e la retta L' = f(L) passante per i punti d = f (c), b' = f (b);

1)  Dato che f(c)=d, f(b)=b' si ha f(L)=L'

2)  Dato che f(d)=b, per completare la prova basterà dimostrare che f(b') appartiene a L

Come si dimostra che un punto q appartiene alla retta L che passa per i punti b, c?

L è la retta di origine c e vettore direttore b-c, un punto q appartiene a L se possiamo trovare uno scalare α tale che:
                                                    q = c + α (b-c)

riscriviamo la definizione di f

f[x_] := f[a] + g[x - a]f[a] =  (a^′);

risolvi[f[b'] == c + α (b - c), {α}] // Simplify

abbiamo trovato che f(b')=c+k(b-c)  dimostrando così che f(b') appartiene alla retta L