Ricerca massimi

di il
9 risposte

Ricerca massimi

Salve a tutti,
ho un vettore in cui sono contenute le ordinate di una funzione, dovrei verificare se in questo vettore ci sono 2 massimi ( uno assoluto e uno relativo). Idee su come posso fare?
Grazie infinite

9 Risposte

  • Re: Ricerca massimi

    Tutto quello che ti occorre, se ho capito bene il tuo problema, dovrebbe essere descritto qui:

    Fare la derivata prima della funzione con diff():
    https://it.mathworks.com/help/symbolic/differentiation.html

    Trovare dove sono gli zeri della derivata prima con solve():


    Puoi prendere spunto su come procedere da qua:
    https://it.mathworks.com/products/demos/symbolictlbx/calculating_derivatives/calculating_derivatives.html#first-order

    N.B: Ad esempio se hai la funzione f=x^2, x è il tuo vettore delle ascisse ed f la tua funzione, rappresentata dal vettore delle ordinate, dove ci sono tutti i valori di x elevati al quadrato. Per trovare massimi e minimi della funzione (ma essendo una parabola con concavità verso l'alto già sai che ci sarà solo un minimo assoluto) prima derivi f(x), ottenendo f'(x)=2*x, e poi trovi il massimo o minimo di f'(x) risolvendo l'equazione f'(x) =2*x=0. Chiaramente per sapere se in quel punto dove si annulla ti trovi un massimo o un minimo devi vedere crescenza e decrescenza e quindi risolvere anche f'(x)=2*x>0.
  • Re: Ricerca massimi

    In verità avevo in mente più a un ciclo di for che scorre il vettore e aumenta di 1 un contatore quando trova un massimo. Tipo così ma non so sia corretto:

    contatore=0;
    for i=2:length(vettore)-1;
    if vettore(i)>vettore(i-1) & vettore(i)>vettore(i+1);

    Contatore=contatore+1;
  • Re: Ricerca massimi

    Khazandar87 ha scritto:


    in verità avevo in mente più a un ciclo di for che scorre il vettore e aumenta di 1 un contatore quando trova un massimo. Tipo così ma non so sia corretto:

    contatore=0;
    for i=2:length(vettore)-1;
    if vettore(i)>vettore(i-1) & vettore(i)>vettore(i+1);

    Contatore=contatore+1;
    vettore contiene le ordinate della funzione ?
    Se è così con il codice che hai postato, (dovrebbe funzionare ma dovresti gestire anche i casi limite, ovvero i=1 e i=lentgh(vettore)) trovi il massimo di un vettore, che è diverso dal trovare massimi relativi e/o assoliti di una funzione. Forse non ho interpretato bene io la domanda che hai fatto.
  • Re: Ricerca massimi

    Si vettore contiene i valori delle ordinate. A me interessa sapere solo se ci sono uno o due massimi, no il valori dei massimi
  • Re: Ricerca massimi

    Khazandar87 ha scritto:


    Si vettore contiene i valori delle ordinate. A me interessa sapere solo se ci sono uno o due massimi, no il valori dei massimi
    A prescindere dal codice che hai scritto sopra a questo punto potresti benissimamente ordinare il vettore in ordine crescente.
  • Re: Ricerca massimi

    Se li riordino saranno tutti uno maggiore dell'altro, in questo modo avrò sempre un solo massimo
  • Re: Ricerca massimi

    Cosa intendi per :

    Khazandar87 ha scritto:


    ....avrò sempre un solo massimo
  • Re: Ricerca massimi

    @Khazandar87 Il tuo approccio va bene, e' becero, ma va bene

    Ma HAI SBAGLIATO DI SCRIVERE IL CICLO FOR!!!!!!!!!

    ATTENTO AI PUNTI E VIRGOLA!!!!!!!!!!!!

    @CarDeFusco: SEI MATTO? Ordinarli?
    Vabbe, e' un ERRORE DI SBAGLIO [BARRA] SVISTA DA GIOVINASTRO !
  • Re: Ricerca massimi

    migliorabile ha scritto:


    @CarDeFusco: SEI MATTO? Ordinarli?
    Scusate ho letto di fretta l'ultimo messaggio di Khazandar87. Non avevo capito bene che non vuole avere il massimo in un vettore che rappresenterebbe quindi il massimo assoluto(in tal caso avevo pensato che banalmente poteva ordinare il vettore). In realtà, leggendo bene e se ho capito bene, sta cercando se e quanti valori ci sono che hanno nel proprio intorno valori minori. Quindi se consideriamo la posizione i quelli in posizione i-1 e i+1 devono essere minori di i. Ovvero cerca quante ce ne sono di queste i.

    In questo caso ok, mi trovate d'accordo che il ciclo for scritto sopra, mettendo in ordine sintassi e considerando gli estremi, ti dà il numero di massimi assoluti e/o relativi.
Devi accedere o registrarti per scrivere nel forum
9 risposte