Programmi > Esempio: ricerca dei massimi o minimi locali di un vettore
Esempio: ricerca dei massimi o minimi locali di un vettore
1. Utilizzando una combinazione di istruzioni condizionali e cicli, scrivere un programma per la ricerca dei minimi locali di alcuni insiemi di dati:
La funzione locmin esegue la scansione del vettore di input v e confronta ogni elemento con i due adiacenti. Se l'elemento k è minore dell'elemento che lo precede e dell'elemento che lo segue, è un minimo locale e il suo valore e il suo indice vengono aggiunti al vettore di output m.
2. Utilizzare il programma precedente per scrivere un secondo programma per la ricerca dei massimi nello stesso insieme di dati:
La funzione locmax utilizza i risultati ottenuti da una chiamata a locmin con -v. Un minimo locale di -v è un'immagine speculare di un massimo locale con lo stesso indice. Ogni valore di minimo locale viene pertanto moltiplicato per –1. La coppia indice-valore viene salvata come singolo elemento nel vettore di output M.
3. Definire la funzione f, che utilizza la funzione incorporata dbinom, la quale restituisce la densità di probabilità per il valore k:
4. Tracciare il grafico delle due funzioni precedenti.
5. Salvare in un array gli elementi di g(k,n), di modo che possano essere passati ai programmi definiti.
6. Utilizzare la funzione di lunghezza incorporata per determinare il numero dei punti locmin e locmax trovati dai programmi:
7. Utilizzare i programmi creati per trovare i tre punti di minimo locali per la funzione:
8. Utilizzare i programmi creati per trovare i due punti di massimo locali per la funzione:
9. Tracciare il grafico della funzione e indicarne i tre punti di minimo locale e i due punti di massimo locale.
10. Confrontare i risultati ottenuti utilizzando i programmi realizzati con quelli ottenuti tramite le funzioni incorporate localmin e localmax (che richiedono una matrice nx2 come input):
a. Creare la matrice di input nx2:
b. Utilizzare le funzioni incorporate per ottenere i punti di minimo e massimo locali:
I risultati coincidono.
Prima di scrivere nuovi programmi verificare sempre la disponibilità di funzioni incorporate con lo scopo desiderato.