Matlab/Octave

grillo370
Salvea tutti sono nuovo e non so se è la sezione giusta.
Qualcuno sa spiegarmi come scrivere 2 vettori in in OCTAVE, V e W (di numeri reali e ugual dimensione che rappresentino una funzione) tale che W=f(V)?

Risposte
feddy
Benvenuto,

non sono sicuro di aver ben compreso la tua domanda. Supponiamo tu abbia definito una funzione $f$ e abbia un vettore $V$. Allora ti basta scrivere

f=@(x) x.^2; %esempio
v=rand(1,5);
w=f(v)


Per scrivere le formule dai un'occhiata qui [formule][/formule]

grillo370
In realtà devo fare in modo che avendo 2 vettori U e W, quest'ultimo sia W=f(U)

feddy
Ok, quindi il problema è trovare una funzione $f$ tale che dati $U=[x_1,\ldots,x_n],W=[y_1,\ldots,y_n]$ di uguali dimensioni, $\forall i=1,\ldots,m: f(x_i)=y_i$, corretto?
Se le cose stanno così, altro non è che un problema di interpolazione.

In Octave (e MatLab) puoi fare così, supponendo di voler usare interpolazione polinomiale.

    0. Definisci il grado $N$ del polinomio $P(x)$ che approssima i tuoi dati.
    1. Definisci i vettori $U,W$.
    2. Usa il comando
     P=polyfit(U,W,N)

    [/list:u:m49654qh]

    Vedi anche qui

grillo370
Così mi da una retta interpolante?
In pratica 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).
Si può fare senza retta interpolante?

feddy
No, così ti da il polinomio interpolante, che stando alla tua richiesta mi pare sia quello che vuoi.

grillo370
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).

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.