Punto di massimo in una somma di logaritmi

Messaggioda Oiram92 » 09/09/2018, 16:39

Ciao a tutti, sto scrivendo la mia tesi sull'analisi dei livelli di potenza in ricezione di un dispositivo che ruota con moto circolare attorno ad un punto (origine). Adesso mi servirebbe saper predire in quale punto (interno o sul bordo della circonferenza) ottengo il valore massimo. La funzione che mi restituisce il livello di potenza in un punto \(\displaystyle (x,y) \) è:

\(\displaystyle f(x,y) = \sum_{n=0}^{N-1} \log_{10} \left[ x^2+y^2-2rx\;cos\left(\frac{2\pi \;n}{N}\right)-2ry\; sin\left(\frac{2\pi\;n}{N}\right)+r^2 \right] \)


dove \(\displaystyle 1 \leq N \leq 360 \) e \(\displaystyle r > 0 \) sono parametri fissati prima del calcolo (sono rispettivamente il numero di misurazioni uniformemente distribuite sulla circonferenza ed il raggio). Inoltre, deve essere verificata la condizione:

\(\displaystyle x^2+y^2 \leq r^2 \)


in modo tale che le coordinate siano interne alla circonferenza. A questo punto dovrei determinare le coordinate \(\displaystyle (x,y) \) affinchè il valore della somma sia massimo ma, nonostante i giorni passati a sbatterci la testa, non riesco a trovare un metodo analitico con cui procedere. Qualcuno saprebbe darmi una dritta?
Oiram92
Average Member
Average Member
 
Messaggio: 298 di 602
Iscritto il: 04/01/2013, 19:53

Re: Punto di massimo in una somma di logaritmi

Messaggioda apatriarca » 09/09/2018, 17:43

C'è una qualche ragione per cui tu non possa fare uso di metodi numerici?

Il metodo a mio parere più efficiente per cercare di trovare una soluzione è comunque quella di trovare cambiamenti di variabile che semplifichino la tua espressione. Mi sembra ad esempio che il parametro \(r\) sia superfluo (l'eventuale massimo si troverà sempre nella stessa posizione scalata di \(r\) se non sbaglio*). Se non sbaglio, tutti i punti critici di quella funzione dovrebbero inoltre essere sulla circonferenza. Se è così può allora convenire riscrivere la funzione nel solo angolo \(\theta\) e supporre che \(r\) sia \(1\).

* Puoi estrarre \(r^2\) dalla tua espressione e ottenere un nuovo fattore costante nella tua sommatoria (che quindi non interviene nella ricerca della massimo).
apatriarca
Moderatore
Moderatore
 
Messaggio: 5105 di 10436
Iscritto il: 08/12/2008, 20:37
Località: Madrid

Re: Punto di massimo in una somma di logaritmi

Messaggioda Oiram92 » 10/09/2018, 01:08

apatriarca ha scritto:C'è una qualche ragione per cui tu non possa fare uso di metodi numerici?


Nessun problema particolare, più che altro è solo per una questione di risparmio in termini di calcolo computazionale. Una volta ottimizzato il codice avremo come obiettivo ultimo l'implementazione di tutte le routine su un raspberry e non vorrei rischiare di doverlo spremere troppo.

apatriarca ha scritto:Se non sbaglio, tutti i punti critici di quella funzione dovrebbero inoltre essere sulla circonferenza.


Cavolo hai fatto centro! Ho scritto una routine che calcola quella funzione al variare di \(\displaystyle r \) ed \(\displaystyle N \) per tutti i punti interni e sul bordo ed è uscito fuori che i massimi si trovano sempre sulla circonferenza. Come ulteriore semplificazione ho quindi sostituito:

\(\displaystyle x = r\cdot cos(\theta) \;\;\;\;\;\;\;\;\;\;\;\;\;\; y= r\cdot sin(\theta) \)


e sono giunto a questa nuova formula in una sola variabile:

\(\displaystyle f(\theta) = \sum_{n=0}^{N-1} log_{10} \left\{ 2r^2 \;\left[1-cos\left(\theta-\frac{2\pi\;n}{N}\right)\right]\right\} \)


adesso fissando \(\displaystyle r \) ed \(\displaystyle N \) mi calcolo la funzione per tutti i valori di \(\displaystyle \theta \in [0,2\pi[ \) e scelgo il massimo tra questi. Penso che adesso dovrebbe essere sufficientemente ottimizzato (è un ciclo for con 360 operazioni) però se ci fosse un metodo per andare ancora più in basso e determinare almeno un valore di \(\displaystyle \theta \) che rende massima questa funzione sarebbe il top.

apatriarca ha scritto:* Puoi estrarre \(r^2\) dalla tua espressione e ottenere un nuovo fattore costante nella tua sommatoria (che quindi non interviene nella ricerca della massimo).


Inizialmente avevo sfruttato la proprietà dei logaritmi e splittato la serie però così facendo ottengo un valore leggermente maggiore di quello realmente da misurare. Questo è dovuto al fatto che nella routine, per:

\(\displaystyle \theta = \frac{2\pi\;n}{N} \)


ottengo un logaritmo con argomento nullo che farebbe divergere la serie. Dato che questo è un caso limite e non verificabile nel sistema che stiamo progettando, semplicemente scarto dalla somma quel termine. Di conseguenza preferisco lasciarlo interno come semplice costante moltiplicativa.

A questo punto resterebbe da trovare solo un vincolo sulla \(\displaystyle \theta \) per ridurre ulteriormente la routine. Già così sono abbastanza soddisfatto però se ci fosse un modo per migliorare ancora perchè fermarsi.
Oiram92
Average Member
Average Member
 
Messaggio: 299 di 602
Iscritto il: 04/01/2013, 19:53


Torna a Analisi Numerica e Ricerca Operativa

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite