Un problema di minimo

Il forum di Base5, dove è possibile postare problemi, quiz, indovinelli, rompicapo, enigmi e quant'altro riguardi la matematica ricreativa e oltre.

Moderatori: Gianfranco, Bruno

karl
Livello 4
Livello 4
Messaggi: 100
Iscritto il: gio mar 29, 2007 2:03 pm

Un problema di minimo

Messaggio da karl » ven ott 21, 2011 5:34 pm

Sia ABC un triangolo e P un punto ad esso interno.Dette D,E,F le proiezioni di P su i lati
BC,CA,AB rispettivamente ,si determini la posizione di P per la quale è minima la somma:
\large \frac{AB}{PF} +\frac{BC}{PD} +\frac{CA}{PE}

Ivana
Livello 7
Livello 7
Messaggi: 801
Iscritto il: dom nov 20, 2005 10:47 am
Contatta:

Re: Un problema di minimo

Messaggio da Ivana » lun ott 24, 2011 4:45 pm

Posizionerei P nell'incentro del triangolo ABC; sbaglierei?
Immagine
"L'essenza della matematica è la libertà" (Georg Cantor)

panurgo
Livello 8
Livello 8
Messaggi: 1178
Iscritto il: sab nov 19, 2005 3:45 pm
Località: Padova

Re: Un problema di minimo

Messaggio da panurgo » lun ott 24, 2011 4:58 pm

Il problema è dimsotrarlo (se possibile con riga e compasso)... :wink:
il panurgo

Principio di Relatività: {\bb m} \not \right {\bb M} \ \Longleftrightarrow \ {\bb M} \not \right {\bb m}
"Se la montagna non va a Maometto, Maometto NON va alla montagna"

karl
Livello 4
Livello 4
Messaggi: 100
Iscritto il: gio mar 29, 2007 2:03 pm

Re: Un problema di minimo

Messaggio da karl » lun ott 24, 2011 6:20 pm

E' così:l'incentro risolve il problema.Resta da dimostrarlo.Con riga e compasso non saprei.
Volendo si può dimostrare con l'Analisi ( minimo condizionato) ma si risolve anche elementarmente... :D

Pasquale
Livello 11
Livello 11
Messaggi: 2370
Iscritto il: mer mag 25, 2005 1:14 am

Re: Un problema di minimo

Messaggio da Pasquale » mar ott 25, 2011 2:26 am

Come al solito mi sono divertito a modo mio ed ho dato al mio p.c. il compito di dare uno sguardo alla cosa.
Salvo errori, sembrerebbe che non sia l'incentro il punto cercato.

Riporto di seguito il programma da far girare con Decimal Basic; lo stesso è concepito in modo che la scelta del punto P sia casuale e reiterata; ogni volta viene calcolata la somma da minimizzare, ma viene stampata solo se è minore della precedente; vengono inoltre stampate le misure delle tre distanze dai lati e si può notare che non tendono ad essere uguali fra loro, ovvero la differenza è tale che non lascia presupporre un livellamento nel tempo (il programma è racchiuso in un loop senza fine, ma bisogna considerare la quantità limitata dei random generati, che comunque non sono pochi).

Nel programma si fa riferimento ad un triangolo posizionato su piano cartesiano, con A nell'origine degli assi, B con ascissa positiva ed ordinata nulla, C nel primo quadrante [A(x1,y1) - B(x2,y2) - C(x3,y3) - P(x0,y0)].

I dati vengono stampati con arrotondamento alla terza cifra decimale per sola comodità di esposizione dei dati.

LET x1=0
LET y1=0
LET y2=0
INPUT PROMPT "Inserisci ascissa di B":x2
INPUT PROMPT "Inserisci ascissa di C":x3
INPUT PROMPT "Inserisci ordinata di C":y3

LET AB=x2
LET BC=SQR((x3-x2)^2+y3^2)
LET AC=SQR(x3^2+y3^2)
LET p=AB+BC+AC

RANDOMIZE
LET mi=p*10^6 [somma minima iniziale]
DO
10
LET x0=RND*x2
IF x0=0 THEN GOTO 10
LET y0=RND*y3
IF y0=0 THEN GOTO 10
IF x0<x3 THEN
LET mas=(y3-y1)*(x0-x1)/(x3-x1)+y1
IF y0>=mas THEN GOTO 10 [se il punto è fuori dal triangolo]
ELSEIF x0>x3 THEN
LET mas=(y3-y2)*(x0-x2)/(x3-x2)+y2
IF y0>=mas THEN GOTO 10 [se il punto è fuori dal triangolo]
END IF
[coefficienti equazioni delle rette]
LET a1=(y2-y1)*x0
LET b1=(x1-x2)*y0
LET c1=(x2-x1)*y1-(y2-y1)*x1
LET a2=(y3-y2)*x0
LET b2=(x2-x3)*y0
LET c2=(x3-x2)*y2-(y3-y2)*x2
LET a3=(y3-y1)*x0
LET b3=(x1-x3)*y0
LET c3=(x3-x1)*y1-(y3-y1)*x1

LET PF=y0
LET PD=ABS((a2*x0+b2*y0+c2)/SQR(a2^2+b2^2))
LET PE=ABS((a3*x0+b3*y0+c3)/SQR(a3^2+b3^2))

LET s=AB/PF+BC/PD+AC/PE
IF s<mi THEN
LET mi=s
LET x4=x0
LET y4=y0
PRINT "per P(";INT(x4*10^3)/10^3;",";INT(y4*10^3)/10^3;") -> ";"S=";INT(mi*10^3)/10^3;"PF=";INT(PF*10^3)/10^3;"PD=";INT(PD*10^3)/10^3;"PE=";INT(PE*10^3)/10^3
END IF
LOOP
_________________

\text {     }ciao Immagine ciao
E' la somma che fa il totale (Totò)

Ivana
Livello 7
Livello 7
Messaggi: 801
Iscritto il: dom nov 20, 2005 10:47 am
Contatta:

Re: Un problema di minimo

Messaggio da Ivana » mar ott 25, 2011 6:37 am

Ringrazio Pan, Karl e Pasquale...
Appena mi sarà possibile, anch'io, come Pasquale, mi divertirò a modo mio, usando, però, geogebra...
Lascio ad altri, più volenterosi e più competenti di me, l'onore e l'onere di una dimostrazione canonica... :)
Immagine
"L'essenza della matematica è la libertà" (Georg Cantor)

Pasquale
Livello 11
Livello 11
Messaggi: 2370
Iscritto il: mer mag 25, 2005 1:14 am

Re: Un problema di minimo

Messaggio da Pasquale » mar ott 25, 2011 9:39 am

Dunque, avevo detto "salvo errori" e mi sa che un errore ci sia, nonostante i controlli effettuati...devo ricontrollare.
_________________

\text {     }ciao Immagine ciao
E' la somma che fa il totale (Totò)

panurgo
Livello 8
Livello 8
Messaggi: 1178
Iscritto il: sab nov 19, 2005 3:45 pm
Località: Padova

Re: Un problema di minimo

Messaggio da panurgo » mar ott 25, 2011 11:55 am

Dal punto di vista analitico non dovrebbe essere troppo difficile: questo è il disegno

Immagine

La somma da minimizzare è

S\/=\/\frac a x\/+\/\frac b y\/+\/\frac c z\/=\/\frac {a\/y\/z\/+\/b\/x\/z\/+\/c\/x\/y} {x\/y\/z\/}

Le derivate parziali sono

\left\{\begin{array}{lC+30}
\frac{\partial S}{\partial x}\/=\/-\/\frac a {x^{\script 2}}\/<\/0 \\ 
\frac{\partial S}{\partial y}\/=\/-\/\frac b {y^{\script 2}}\/<\/0 \\ 
\frac{\partial S}{\partial z}\/=\/-\/\frac c {z^{\script 2}}\/<\/0
\end{array}\right.

S si minimizza massimizzando contemporaneamente x, y e z: ovvero massimizzando x\/y\/z, quindi quando x\/=\/y\/=\/z cioè quando \text P è l'incentro (???) :shock:
il panurgo

Principio di Relatività: {\bb m} \not \right {\bb M} \ \Longleftrightarrow \ {\bb M} \not \right {\bb m}
"Se la montagna non va a Maometto, Maometto NON va alla montagna"

Pasquale
Livello 11
Livello 11
Messaggi: 2370
Iscritto il: mer mag 25, 2005 1:14 am

Re: Un problema di minimo

Messaggio da Pasquale » mar ott 25, 2011 2:07 pm

Dunque, l'errore c'era; segue il programma corretto nelle 6 righe che contrassegno con doppio asterisco:


LET x1=0
LET y1=0
LET y2=0
INPUT PROMPT "Inserisci ascissa di B":x2
INPUT PROMPT "Inserisci ascissa di C":x3
INPUT PROMPT "Inserisci ordinata di C":y3

LET AB=x2
LET BC=SQR((x3-x2)^2+y3^2)
LET AC=SQR(x3^2+y3^2)
LET p=AB+BC+AC

RANDOMIZE
LET mi=p*10^6 [somma minima iniziale]
DO
10
LET x0=RND*x2
IF x0=0 THEN GOTO 10
LET y0=RND*y3
IF y0=0 THEN GOTO 10
IF x0<x3 THEN
LET mas=(y3-y1)*(x0-x1)/(x3-x1)+y1
IF y0>=mas THEN GOTO 10 [se il punto è fuori dal triangolo]
ELSEIF x0>x3 THEN
LET mas=(y3-y2)*(x0-x2)/(x3-x2)+y2
IF y0>=mas THEN GOTO 10 [se il punto è fuori dal triangolo]
END IF
[coefficienti equazioni delle rette]
LET a1=(y2-y1) '**
LET b1=(x1-x2) '**
LET c1=(x2-x1)*y1-(y2-y1)*x1
LET a2=(y3-y2) '**
LET b2=(x2-x3) '**
LET c2=(x3-x2)*y2-(y3-y2)*x2
LET a3=(y3-y1) '**
LET b3=(x1-x3) '**
LET c3=(x3-x1)*y1-(y3-y1)*x1

LET PF=y0
LET PD=ABS((a2*x0+b2*y0+c2)/SQR(a2^2+b2^2))
LET PE=ABS((a3*x0+b3*y0+c3)/SQR(a3^2+b3^2))

LET s=AB/PF+BC/PD+AC/PE
IF s<mi THEN
LET mi=s
LET x4=x0
LET y4=y0
PRINT "per P(";INT(x4*10^3)/10^3;",";INT(y4*10^3)/10^3;") -> ";"S=";INT(mi*10^3)/10^3;"PF=";INT(PF*10^3)/10^3;"PD=";INT(PD*10^3)/10^3;"PE=";INT(PE*10^3)/10^3
END IF
LOOP

Questo comporta che il punto cercato è l'incentro

A titolo di esempio, eseguiamo il programma su un triangolo particolare, sostituendo le prime 6 righe con le seguenti:

LET x1=0
LET y1=0
LET y2=0
LET x2=2*SQR(3)
LET x3=SQR(3)
LET y3=3

Trattasi di un triangolo equilatero, nel quale il raggio del cerchio inscritto, pari ad un terzo dell’altezza, vale 1.

In tale triangolo, dunque, se sistemiamo P nella posizione dell’incentro, le tre distanze dai lati sono tutte uguali a 1 e dunque:

AB/PF + BC/PD + AC/PE = PERIMETRO del triangolo = 10,392304…..

Le coordinate che ci interessano in tale triangolo sono:

\text A(0,0)    B(2sqrt{3},0)    C(sqrt{3},3)    P(sqrt{3},1)

Facciamo stampare questa volta anche la misura del perimetro accanto al valore “S” della somma da minimizzare, in modo da mettere a confronto i due valori:

PRINT "per P(";INT(x4*10^3)/10^3;",";INT(y4*10^3)/10^3;") -> ";"perim. =";INT(p*10^3)/10^3;"- S =";INT(mi*10^3)/10^3;" - PF =";INT(PF*10^3)/10^3;" - PD =";INT(PD*10^3)/10^3;" - PE =";INT(PE*10^3)/10^3

Vediamo ben presto che il punto P va a posizionarsi sempre più verso l'incentro, che la somma "S" decresce sempre più, convergendo verso il valore del perimetro, che le distanze di P dai lati del triangolo convergono verso il valore 1.

Seguono alcune righe dei risultati elaborati:


per P( 1.731 , 1.001 ) -> perim. = 10.392 - S = 10.392 - PF = 1.001 - PD = 1 - PE = .998
per P( 1.731 , .999 ) -> perim. = 10.392 - S = 10.392 - PF = .999 - PD = 1.001 - PE = .999
per P( 1.732 , .999 ) -> perim. = 10.392 - S = 10.392 - PF = .999 - PD = .999 - PE = 1
per P( 1.731 , 1 ) -> perim. = 10.392 - S = 10.392 - PF = 1 - PD = .999 - PE = .999


Volendo, con un'ulteriore piccola modifica, si può uscire dal LOOP per stampare un risultato con più cifre decimali, dopo un po' di lavoro del p.c.; segue un esempio di stampa, dopo lo stop all'esecuzione:


per P( 1.73210065439219 , 1.00000854997994 ) -> perim. = 10.3923048454133 - S = 10.3923048587041 -
PF = 1.00000854997994 - PD = .999952556394757 - PE = 1.00003889362532
Ultima modifica di Pasquale il mar ott 25, 2011 5:48 pm, modificato 1 volta in totale.
_________________

\text {     }ciao Immagine ciao
E' la somma che fa il totale (Totò)

karl
Livello 4
Livello 4
Messaggi: 100
Iscritto il: gio mar 29, 2007 2:03 pm

Re: Un problema di minimo

Messaggio da karl » mar ott 25, 2011 4:14 pm

Secondo me l'uso delle derivate richiede che si tenga conto della condizione:
\large ap+bq+cr =2S
avendo indicato con S l'area del triangolo ,con a,b,c le misure dei lati e
con p,q,r le misure delle rispettive distanze di P da essi.
In tal modo,usando il metodo di Lagrange,la funzione da "estremizzare" diventa:
\large u( p,q,r)=\frac{a}{p}+\frac{b}{q}+\frac{c}{r}+k^2(ap+bq+cr -2S)
Annullando le derivate parziali si trova il sistema :
\large \begin {cases} -\frac{a}{p^2}+k^2\cdot a=0\\ -\frac{b}{q^2}+k^2\cdot b=0\\-\frac{c}{r^2}+k^2\cdot c =0 \end{cases}
da cui si ricava appunto :
\large p=q=r=\frac{1}{|k|}
Che poi si tratti di un minimo, lo si può dedurre tramite il calcolo dell'hessiano ,oppure più semplicemente osservando che se P si avvicina ad uno del lati ,ad es. BC, p diventa sempre più piccolo e quindi la somma indicata diventa sempre più grande .Ovvero non esiste il massimo .

Ivana
Livello 7
Livello 7
Messaggi: 801
Iscritto il: dom nov 20, 2005 10:47 am
Contatta:

Re: Un problema di minimo

Messaggio da Ivana » mer ott 26, 2011 1:34 pm

Karl, preferisco attendere che il problema venga risolto elementarmente... :)
Intanto sono riuscita a trovare il tempo per giocare... Geogebra, anzi l'uso che io ho fatto di geogebra :D , non ha confutato la mia congettura...
Credo che il forum non consenta la pubblicazione del foglio di lavoro dinamico che ho preparato...
Immagine
"L'essenza della matematica è la libertà" (Georg Cantor)

fabtor
Livello 5
Livello 5
Messaggi: 226
Iscritto il: mar nov 17, 2009 3:59 pm

Re: Un problema di minimo

Messaggio da fabtor » mer ott 26, 2011 4:44 pm

Pasquale, ma proprio il triangolo equilatero dovevi usare a titolo esemplificativo? In questo caso tutti i "centri" coincidono e quindi si potrebbe obiettare che il centro sia, ad esempio, il baricentro!!! ;)

Non per fare il polemico, ma personalmente trovo che forse sarebbe stato meglio utilizzare un triangolo isoscele così anche se i "centri" giacciono tutti su una stessa retta, sono comunque punti distinti.
Ah, se i portieri avessero sulla maglia: |e^{-i\pi}|...

Pongo y = x^{2} quindi y=\frac {x^{2}}{pongo}
[tratto da un compito in classe di uno studente di prima superiore]

Il vero gnomone aureo: http://thumbs.dreamstime.com/z/gnomo-de ... 526933.jpg

panurgo
Livello 8
Livello 8
Messaggi: 1178
Iscritto il: sab nov 19, 2005 3:45 pm
Località: Padova

Re: Un problema di minimo

Messaggio da panurgo » mer ott 26, 2011 4:52 pm

Ivana ha scritto:Karl, preferisco attendere che il problema venga risolto elementarmente... :)
Intanto sono riuscita a trovare il tempo per giocare... Geogebra, anzi l'uso che io ho fatto di geogebra :D , non ha confutato la mia congettura...
Credo che il forum non consenta la pubblicazione del foglio di lavoro dinamico che ho preparato...
Mi associo per chiedere ad Admin di permettere la pubblicazione di fogli di lavoro dinamici di geogebra!
il panurgo

Principio di Relatività: {\bb m} \not \right {\bb M} \ \Longleftrightarrow \ {\bb M} \not \right {\bb m}
"Se la montagna non va a Maometto, Maometto NON va alla montagna"

Pasquale
Livello 11
Livello 11
Messaggi: 2370
Iscritto il: mer mag 25, 2005 1:14 am

Re: Un problema di minimo

Messaggio da Pasquale » mer ott 26, 2011 6:46 pm

Si Fab hai ragione, ma in realtà avevo scelto quel triangolo per vedere se il programma mi funzionava, dal momento che negli elaborati della prima versione di programma avevo trovato dei dati che non erano in linea con la posizione dei punti; quindi per semplificare e per cercare l'errore ho lavorato su triangoli particolari di cui già conoscevo misure e punti particolari (equilatero, rettangolo); in sostanza avevo trovato la misura di PD troppo alta rispetto alla posizione del punto P ed infatti poi ho trovato l'errore, che mi portava ad eseguire due volte un prodotto, facendo crescere troppo il valore di PD (tanto che sembrava che P non fosse l'incentro).
Comunque è vero: il programma è in grado di cercare il punto che minimizza la somma (quello che si cercava), o meglio di avvicinarvisi, in riferimento però ad un triangolo non generico (alla partenza bisogna definire la posizione dei vertici), ma non è in grado di stabilire se P è un punto particolare (però potrebbe farlo con l'aggiunta di altre righe di comando: dato il triangolo, si calcolerebbero le coordinate dei punti notevoli e poi si confronterebbero col punto trovato; infine, dopo il confronto, si potrebbe anche stampare una dichiarazione, tipo " il punto è questo e si tratta del baricentro, o quello che sia).
Se la funzione da minimizzare fosse stata diversa, probabilmente P sarebbe stato un punto qualsiasi ed il programma (ove esente da errori) avrebbe funzionato lo stesso; tutto sta a capire, in un caso concreto, di quale approssimazione ci si può accontentare, quale tipo di randomizzatore utilizzare, o linguaggio, ecc. (per me è solo un divertimento, come nello spirito di Base5 e di tutti noi credo).
Ad ogni modo, adesso rilancio il programma con un isoscele e vediamo se riesce a trovare la posizione di P che rende minima la funzione in questione; se le 3 distanze saranno uguali, sappiamo che è stato trovato l'incentro.


Ecco la stampa per un isoscele A(0,0) - B(4,0) - C(2,4), dopo pochi passaggi, se ci accontentiamo di una approssimazione alla senda cifra decimale:


per P( 2.14 , 1.61 ) -> S = 10.98 - PF = 1.61 - PD = .93 - PE = 1.19
per P( 2.23 , 1.28 ) -> S = 10.71 - PF = 1.28 - PD = 1 - PE = 1.42
per P( 1.77 , 1.11 ) -> S = 10.69 - PF = 1.11 - PD = 1.49 - PE = 1.08
per P( 1.99 , 1.23 ) -> S = 10.47 - PF = 1.23 - PD = 1.24 - PE = 1.23
per P( 1.99 , 1.23 ) -> S = 10.47 - PF = 1.23 - PD = 1.24 - PE = 1.23
per P( 2 , 1.23 ) -> S = 10.47 - PF = 1.23 - PD = 1.23 - PE = 1.23
per P( 2 , 1.23 ) -> S = 10.47 - PF = 1.23 - PD = 1.23 - PE = 1.23

Nelle ultime due righe troviamo gli stessi risultati, perché le differenze si trovano nelle cifre successive che non si vedono.
Il punto cercato ha coordinate P(2,1.23) che è l'incentro, perché PF=PD=PE (notare che l'ordinata di P è PF) e perché, essendo distanze dai lati, sono perpendicolari agli stessi (ognuno al rispettivo lato).
_________________

\text {     }ciao Immagine ciao
E' la somma che fa il totale (Totò)

Pasquale
Livello 11
Livello 11
Messaggi: 2370
Iscritto il: mer mag 25, 2005 1:14 am

Re: Un problema di minimo

Messaggio da Pasquale » mer ott 26, 2011 11:26 pm

Approfittando del programma realizzato precedentemente, ne ho preso un pezzettino, modificandolo opportunamente, per realizzare una sorta di test per il randomizzatore di Decimal Basic.

Come in precedenza, viene sistemato un triangolo nel piano cartesiano; quindi la routine si incarica di calcolarne l'area, tempestando di punti la superficie del rettangolo che lo contiene.
Di tali punti, vengono conteggiati quelli che vanno a cadere nel triangolo; quindi viene calcolata l'area con una proporzione, essendo noti i punti totali generati, quelli caduti nel triangolo e l'area del rettangolo.
Quest'area "random" viene infine confrontata con quella calcolata normalmente ( b*h/2), per vedere come ha lavorato il randomizzatore.
Ho previsto una approssimazione poco spinta (due cifre decimali), per non restare troppo tempo in attesa al computer e giusto per ottenere un'indicazione di massima.
Conoscere lo strumento che si utilizza (in questo caso il randomizzatore) è sempre utile; potrebbe, ad esempio, essere utilizzato per il calcolo dell'area di una figura irregolare, ove note le equazioni delle parti componenti il perimetro (penso comunque di non raccontare nulla di nuovo per quelli che utilizzano questi sistemi).

A proposito: chi non è in possesso del Decimal Basic (anche se trattasi di software semplice e senza grosse pretese) può scaricare da qui, gratis, la versione di settembre 2011:

http://hp.vector.co.jp/authors/VA008683/english/" target="_blank

Ecco il programmino, con il quale ci si può divertire a calcolare la percentuale di errore fra le due aree, inserendo triangoli di dimensioni non esagerate:


LET x1=0
LET y1=0
LET y2=0
INPUT PROMPT "Inserisci ascissa di B: ":x2
INPUT PROMPT "Inserisci ascissa di C: ":x3
INPUT PROMPT "Inserisci ordinata di C: ":y3

IF x3<=x2 THEN
LET Sr=x2*y3
ELSE
LET Sr=x3*y3
END IF


LET St1=x2*y3/2

LET pu=Sr*10^3
RANDOMIZE
FOR m=1 TO pu

IF x2>x3 THEN
LET x0=RND*x2
LET y0=RND*y3
LET mas1=(y3-y1)*(x0-x1)/(x3-x1)+y1
LET mas2=(y3-y2)*(x0-x2)/(x3-x2)+y2
IF x0<=x3 THEN
IF y0<=mas1 THEN LET t=t+1
ELSE
IF y0<=mas2 THEN LET t=t+1
END IF
ELSEIF x2<x3 THEN
LET x0=RND*x3
LET y0=RND*y3
LET mas1=(y3-y1)*(x0-x1)/(x3-x1)+y1
LET mas2=(y3-y2)*(x0-x2)/(x3-x2)+y2
IF x0<=x2 THEN
IF y0>mas1 THEN LET r=r+1 ELSE LET t=t+1
ELSE
IF y0<=mas1 AND y0>=mas2 THEN LET t=t+1
END IF
ELSE
LET x0=RND*x2
LET y0=RND*y3
LET mas1=(y3-y1)*(x0-x1)/(x3-x1)+y1
IF y0<=mas1 THEN LET t=t+1
END IF
NEXT M
LET St2=Sr*t/pu
PRINT
PRINT "Superficie triangolo esatta";St1
PRINT "Superficie triangolo da random";INT(St2*100)/100
_________________

\text {     }ciao Immagine ciao
E' la somma che fa il totale (Totò)

Rispondi