Matlab/Octave

di il
8 risposte

Matlab/Octave

Salve a tutti dovrei svolgere questo: si scriva una funzione Octave che riceve in ingresso due vettori di double di ugual dimensione V e W, di numeri reali, che rappresentano una funzione f(x) reale discretizzata sui punti memorizzati in V. In particolare, per ogni punto V, in W è memorizzato il valore f(V).
Qualcuno sa come fare? Ho creato un primo vettore V e poi ho provato facendo W=@(U) ma nnt

8 Risposte

  • Re: Matlab/Octave

    La domanda non è chiara.

    Cosa "deve fare" la funzione che devi scrivere?

    Quale/i valore/i deve fornire in output la funzione che devi scrivere?
  • Re: Matlab/Octave

    In realtà ho pubblicato la domanda proprio per questo motivo. Ma credo che la funzione debba prendere i valori di V e dare in output un vettore W che sia funzione dei punti di V
  • Re: Matlab/Octave

    Forse è il caso che tu pubblichi la versione originale dell'esercizio o che tu chieda chiarimenti a chi ti ha proposto l'esercizio.

    In base a quello che hai scritto nella prima domanda, i vettori V e W sono input e, W=f(V)

    mentre nella seconda, scrivi che W potrebbe essere un output

    Quindi, W è un input od un output?

    Se W è un input, quello che potrebbe fare la funzione è calcolare i coefficienti di un polinomio di grado "n" che meglio approssima la funzione "f" per la quale W=f(V).

    In questo caso l'output della funzione potrebbero essere i coefficienti del polinomio e. per fare questo, dovresti chiamare, all'interno della tua funzione la funzione polyfit ().
    Sarebbe anche opportuno aggiungere un terzo parametro di input che dovrebbe essere i grado del polinomio (vedi la descrizione della funzione polyfit)


    Una possibile implementazione estremamente semplificata potrebbe essere:
    function p=funzione_x(V,W,grado_pol)
    p=polyfit(V,W,grado_pol)
    ma dovresti aggiungere una serie di controlli per verificare, per esempio, che siano stati forniti tre input, ecc..

    Nel caso W sia un output, in base a quanto hai scritto nella prima domanda, avresti solo un input (il vettore V) e questo non sarebbe sufficiente per generare il vettore W in quanto non ci sarebbero indicazioni sul "come" generarlo.

    In conclusione, ti rinnovo il consiglio col quale ho aperto questa risposta: verifica il testo originale dell'esercizio e / o chiedi dettagli a chi ti ha proposto l'esercizio.
  • Re: Matlab/Octave

    Il testo originale è quello con cui ho aperto la discussione ovvero:si scriva una funzione Octave che riceve in ingresso due vettori di double di ugual dimensione V e W, di numeri reali, che rappresentano una funzione f(x) reale discretizzata sui punti memorizzati in V. In particolare, per ogni punto V, in W è memorizzato il valore f(V).
  • Re: Matlab/Octave

    si scriva una funzione Octave che riceve in ingresso due vettori di double di ugual dimensione V e W, di numeri reali, che rappresentano una funzione f(x) reale discretizzata sui punti memorizzati in V. In particolare, per ogni punto V, in W è memorizzato il valore f(V)
    Se questo è il testo completo dell'esercizio, non so proprio come aiutarti, se non ipotizzando che la funzione debba "ritornare" i coefficienti del polinomio che approssimi la funzione che genera i valori di W in base ai valori di "V".

    Se "analizzi" il testo dell'esercizio, questo descrive semplicemente i due vettori di input e niente altro.

    Come specifica per la definizione di una funzione mi sembra priva di senso, mi spiace.
  • Re: Matlab/Octave

    E facendo questa ipotesi come scrivo il programma?
  • Re: Matlab/Octave

    @grillo, il testo dell'esercizio che hai postato NON E' COMPLETO, fidati, ma puoi anche non fidarti.

    Indipendentemente ANCHE dal esercizio, E' EVIDENTE che anche SOLO CONSIDERANDO l'Italiano, la frase non puo' stare in piedi.

    E' come se qualcuno ti dicesse: 'ti do un ceffone e cento euro se mi rispondi alla seguente domanda: .......'

    E' tu stai li come uno scemo ad aspettare la domanda ....
  • Re: Matlab/Octave

    Ecco il testo completp. Si scriva una funzione Octave che riceve in ingresso due vettori di double di ugual dimensione V e W, di numeri reali, che rappresentano una funzione f(x) reale discretizzata sui punti memorizzati in V
    (non necessariamente in ordine crescente). In particolare, per ogni punto V, in W è memorizzato il valore f(V).
    Si scriva un metodo che restituisca in un vettore di dimensione appropriata i punti di V (in generale, più di uno) corrispondenti ai valori massimi della funzione f.
    Ad esempio, se V=[ 6.5, 7.1, 1.1, 9.6, 3.2, 8.0, 7.5] e W=[1.3, 5.6, 4.2, 3.7, 5.6, 2.2, 5.6], allora il metodo restituisce il vettore [3.2, 7.1, 7.5],
    poiché questi sono i tre punti notevoli in cui la funzione presenta il massimo assoluto corrispondente al valore 5.6.
    Inoltre si faccia il plot della funzione f(V) e si verifichi il risultato calcolato.
Devi accedere o registrarti per scrivere nel forum
8 risposte