Esprimere il valore assunto da y(x-1) in una funzione

di il
3 risposte

Esprimere il valore assunto da y(x-1) in una funzione

Buongiorno a tutti, mi servirebbe aiuto in quanto sto scrivendo una funzione y(x), dove x è un vettore di dieci elementi. La funzione è del tipo :

function y=f(x)
for x=1:1:10
y(x)=y(x-1)*3;
end

In cui y(x-1) indica il valore assunto dalla funzione in corrispondenza dell'elemento precedente. Quando eseguo la funzione mi da errore e penso sia dovuto ad x-1 tra parentesi. Come faccio ad esprimere questo tipo di funzione? Ringrazio chiunque possa aiutarmi.

3 Risposte

  • Re: Esprimere il valore assunto da y(x-1) in una funzione

    L'errore

    Unrecognized function or variable ‘y’

    è dovuto al fatto che nella prima iterazione l'array y si trova a destra del segno “=” senza essere stata definita in precedenza.

    Una possibile soluzione è:

    • definire il valore iniziale di y prima del loop
    • far partire il loop da 2 in modo che, nella prima iterazione y(x-1) corrisponda a y(1)

    (nell'esempio ho assegnato un valore “qualunque”)

    % Initialize y
    y(1)=123;
    % Start the loop from 2
    for x=2:1:10
       y(x)=y(x-1)*3;
    end
  • Re: Esprimere il valore assunto da y(x-1) in una funzione

    19/09/2023 - ask_raf ha scritto:


    L'errore

    Unrecognized function or variable ‘y’

    è dovuto al fatto che nella prima iterazione l'array y si trova a destra del segno “=” senza essere stata definita in precedenza.

    Una possibile soluzione è:

    • definire il valore iniziale di y prima del loop
    • far partire il loop da 2 in modo che, nella prima iterazione y(x-1) corrisponda a y(1)

    (nell'esempio ho assegnato un valore “qualunque”)

    % Initialize y
    y(1)=123;
    % Start the loop from 2
    for x=2:1:10
       y(x)=y(x-1)*3;
    end

    Grazie mille dell'aiuto, purtroppo il valore iniziale di y, dipende dal valore y(24) e da x(1), i quali sono delle incognite, quindi non riesco comunque a risolvere il problema, infatti  ho:

    y(1)=y(24)+x(1);

    e ciò mi porta ad avere ugualmente un errore. 

  • Re: Esprimere il valore assunto da y(x-1) in una funzione

    Nelle funzioni che sono definite come modifiche di un passo precedente deve essere assegnato un valore, se non iniziale almeno da qualche altra parte. Non poterlo fare provocherebbe un ciclo infinito senza soluzione. Se hai passato analisi 1, ad esempio, conosci l'approssimazione di f(P1) data f(P0), sai che da li potresti approssimare f(P2), e così via, ma almeno un punto in cui conosci f serve.

Devi accedere o registrarti per scrivere nel forum
3 risposte