Plot in MATlab
Ciao a tutti
stavo provando a fare grafici con Matlab tramite il "plot" ma non riesco a fare grafici di polinomi.
faccio un esempio riportando il codice:
per esempio io vorrei plottare la parabola $x^2$
facendo questo dichiaro un vettore che va 0 a 5 con passo 0.01,successivamente
la y viene calcolata semplicemente facendo il quadrato.
PROBLEMA:
Matlab considera x come un vettore di cui calcola "alla seconda"
quindi non mi restituisce un vettore con i valori al quadrato bensi il quadrato del vettore (procedura che poi si blocca in quanto la matrice non è quadrata).
cosa strana però se invece faccio
in questo caso mi disegna la mia bella sinusoide.
cmq io vorrei capire come far disegnare la mia semplicissima parabola,oppure grafici di altre funzioni polinomiali.
qualcuno sa dove sbaglio e come posso fare?
Marvin
stavo provando a fare grafici con Matlab tramite il "plot" ma non riesco a fare grafici di polinomi.
faccio un esempio riportando il codice:
per esempio io vorrei plottare la parabola $x^2$
x = (0 : 0.01 : 5) y = x^2 plot(x,y)
facendo questo dichiaro un vettore che va 0 a 5 con passo 0.01,successivamente
la y viene calcolata semplicemente facendo il quadrato.
PROBLEMA:
Matlab considera x come un vettore di cui calcola "alla seconda"
quindi non mi restituisce un vettore con i valori al quadrato bensi il quadrato del vettore (procedura che poi si blocca in quanto la matrice non è quadrata).
cosa strana però se invece faccio
x = (0 : 0.01 : 5) y = sin(x) plot(x,y)
in questo caso mi disegna la mia bella sinusoide.
cmq io vorrei capire come far disegnare la mia semplicissima parabola,oppure grafici di altre funzioni polinomiali.
qualcuno sa dove sbaglio e come posso fare?
Marvin
Risposte
"Marvin":
Ciao a tutti
stavo provando a fare grafici con Matlab tramite il "plot" ma non riesco a fare grafici di polinomi.
faccio un esempio riportando il codice:
per esempio io vorrei plottare la parabola $x^2$
x = (0 : 0.01 : 5) y = x^2 plot(x,y)
facendo questo dichiaro un vettore che va 0 a 5 con passo 0.01,successivamente
la y viene calcolata semplicemente facendo il quadrato.
PROBLEMA:
Matlab considera x come un vettore di cui calcola "alla seconda"
quindi non mi restituisce un vettore con i valori al quadrato bensi il quadrato del vettore (procedura che poi si blocca in quanto la matrice non è quadrata).
cosa strana però se invece faccio
x = (0 : 0.01 : 5) y = sin(x) plot(x,y)
in questo caso mi disegna la mia bella sinusoide.
cmq io vorrei capire come far disegnare la mia semplicissima parabola,oppure grafici di altre funzioni polinomiali.
qualcuno sa dove sbaglio e come posso fare?
Marvin
se non erro il quadrato di un vettore si fa in tal modo:
se x è il vettore il suo quadrato è
x.^2 cioè vicino alla x vettore ci vuole un punto. Se non erro è così, ma basta digitare l'help per togliersi i dubbi.
Infatti anteponendo il punto all'elevazione si ottiene un'operazione puntuale, cioè elemento per elemento; se non si mette il punto allora l'operazione è la moltiplicazione del vettore per se stesso e matlab dà l'errore per incompatibilità dimensionale. In realtà se non si vuole usare la notazione col punto si puo definire il trasposto del vettore x ( con l'apice:x')e si fa il prodotto con x:
cioè x*x' è equivalente a x.^2.
Comunque ti conviene sempre usare il punto.
si in effetti così funziona!
...ma come mai la funzione seno non ha bisogno di essere scritta come sin(x.)?
Marvin
...ma come mai la funzione seno non ha bisogno di essere scritta come sin(x.)?
Marvin
"Marvin":
si in effetti così funziona!
...ma come mai la funzione seno non ha bisogno di essere scritta come sin(x.)?
Marvin
La risposta è legata al fatto che l'elevazione può indurre nell'errore: infatti bisogna sapere se si vuole un'operazione puntuale e quindi inserire il punto oppure si vuole la classica moltiplicazione matriciale.
In realtà credo che facendo sen(x.) non dovresti avere problemi. Prova un poco. Comunque la spiegazione è quella che ti ho fornito: infatti una delle operazioni fondamentali attraverso cui si può migliorare un'immagine ad esempio è la classe delle operazioni puntuali (quelle col punto).