Interessante pure matlab....Originariamente inviato da Gioz
Alla fine ottieni una serie di curve spezzate?
La curva passa per tutti i punti individuati dalle coordinate delle misure?
Ho capito bene?
Interessante pure matlab....Originariamente inviato da Gioz
Alla fine ottieni una serie di curve spezzate?
La curva passa per tutti i punti individuati dalle coordinate delle misure?
Ho capito bene?
tu ottieni esattamente la curva che vuoi, è un potente software che data in pasto la funzione ti permette di calcoalre tutti i valori che vuoi.
se per esmepio scrivi
x= 0:0.00001:5
stai dicendo di generare un array di valori da 0 a 5 con il passo 0,00001
e dicendo poi y= exp(3*x)
crei l'array di risultati per l'equazione sopra riportata.
se poi plotti
plot(x,y) automaticamente avrai disegnato nell'intervallo [0,5] tutti i valori calcolati con la risoluzione 0,00001.
se tu vuoi plottare qualcosa che viene rappresentato diversamente in vari intervalli ti basterà farti i vari intervalli x1 x2 x3 ... xn
stabilire la tua y1 funzione di x1,y2 funzione di x2 ... yn funzione di xn
ed andando ad utilizzare il comando plot(x1,y1,x2,y2,...,xn,yn) sullo stesso foglio vedrai comparire il grafico rappresentato con la risoluzione di cui sopra.
non otterrai una cosa semplicistica ma l'esatta rappresentazione grafica del tuo caso di studio.
è uno strumento molto potente e permette anche di plottare funzioni di due variabili,diagrammi polari,diagrammi di bode,realizzare script che ad input (anche forniti da file) elaborino risultati secondo modello,ha una componente chiamata simulink che permette per esempio di progettare/analizzare controllori per elementi dalla caratteristica nota(ad esempio azionamenti elettrici ed elettronici di vario tipo),può essere utilizzato per elaborare o simulare comportamento e stimoli dovuti a segnali,ecc...
è un software completissimo che fa tante belle cose con precisione ed anche se estremamente costoso,nel nostro piccolo potremmo accontentarci del gratuito octave.
se si possiede una conoscenza anche solamente minima del C risulta poi di semplicissimo utilizzo,intuitivo e veloce.
Missione impossibol .....
saresti in grado di plottarmi sta funzione ?![]()
io non saprei nemmeno da dove cominciare.
Y = (0,0015 X^2 - 0,0135 X + 0,121 ) * X^2
in un intervallo X = 0 ...2 e Y = 0....2
oppure anche - 2 .... 2
mi dovresti dare la funzione
e un po di coppie X;Y na ventina
forse vien fuori na caxxiata terribile![]()
il codice,se non ho sbagliato qualche punto, è proprio questo:
poi volendox1=0:0.001:2;
x2=-2:0.001:2;
Y1=(0.0015*x1.^2 - 0.0135*x1+0.121).*x1.^2;
Y2=(0.0015*x2.^2 - 0.0135*x2+0.121).*x2.^2;
plot(x1,Y1)
una plottata veloce con octave(ad aprire matlab con sto pc ci metto 6 mesi) restituisce:plot(x2,Y2)
scusa se esteticamente è un'aborto ma non ricordo i comandi per "abbellire" le plottate di gnuplot(con matlab basta qualche click).
Se vuoi puoi provare a plottare questi valori :
Mi sa che ottieni una curva diversa da quella di prima a dimostrazione che la mia funzione di approssimazione non era un gran ché ... purtroppo.
Dovrebbe essere simile a questa :
ricavata con il mio sistema di approssimazione precedente.
...sperem.
prima ho sbagliato pure a darti la scala
molto meglio .... X 0 ... 5 Y 0 .... 1,5
guarda spendo due righe sul codice per arrivare al plot d'interesse,così volendo puoi provare per farti un'idea tua.
così sto dicendo di prendere uno spazio di memoria buttarci dentro 0 e poi farne tanti contigui in cui mettere valori ottenuti mediante somma di 0,001 fin quando si arriva a 2 compreso.x1=0:0.001:2;
x2=-2:0.001:2;
variando il primo e l'ultimo numero vario gli estremi dell'intervallo,variando il secondo cambio il passo che segna la differenza tra i valori cotnenuti in due spazi contigui.
il ";" serve a non mandare a schermo come output l'array(matrice)così realizzata(esistono comandi per creare array di dati estratti linearmente "linspace" logaritmici e via dicendo,ma per questo tipo di utilizzo non dovrebbero servire).
tralasciando il";" verranno scritti a schermo tutti i dati calcolati.
quindi come da esempio è facile farsi l'intervallo di interesse in cui fare le considerazioni.
quando abbiamo la nostra relazione di interesse(per esempio ricavata come nel mio primo post dove ho mostrato la foto del block notes risolvendo un sistema relativo al modello d'interesse nei punti noti dalle misurazioni dirette)Y1=(0.0015*x1.^2 - 0.0135*x1+0.121).*x1.^2;
Y2=(0.0015*x2.^2 - 0.0135*x2+0.121).*x2.^2;
diamo un nome all'array dei risultati e ci spariamo dentro la legge.
dove chiamo in causa un array metto il "." prima dell'operatore per eseguire operazioni puntuali.
cioè dico al software che nonostante abbia molti dati(tutti i dati dell'intervallo determinato dall'array precedentemente elaborato) non deve prenderli in considerazione tutti simultaneamente ma uno alla volta dal primo all'ultimo(come se prima facessi tutto con x(1) poi con x(2) ecc) e per x.^2 non intendo più l'array ma sto dicendo prendi il primo valroe e lo moltiplichi per se stesso,una volta assegnato all'array Y1 il primo valore prendiamo il secondo dato contenuto in x e così via.
anche in questo caso ";"serve a non far comparire a schermo tutti gli innumerevoli valoricalcolati(che però volendo posso richiamare in ogni momento).
così viene indirizzato all'output grafico l'insieme delle coppie calcolate,non si rappresenta una tendenza o un limite o chè,vengono soltanto segnati i valori di cui sono in possesso.plot(x,y)
se avessi 3 valori soltanto edistanti fra loro vedrei solamente 3 piunti nel piano indipendentemente da cosa possano significare
poi ci sono vari comandi come subplot,xlabel,title ecc... che aiutano a mettere le varie scritte,far più grafici in uno stesso foglio e così via.
per ciò se si sbaglia ad esempio l'intervallo basterà aggiustare quello riscrivendo x=x0:passo:xn;
e semplicemente premere "freccia su" sulla tastiera fino alla relazione y=f(x),una volta così riottenuti i due array li si plotta.
una votla plottato puoi muoverti nel piano con il cursore del mouse ed in basso a sx vedrai le coordinate del luogo in cui punti,quindi in relazione alla risoluzione del tuo grafico potrai valutare ogni minima variazione già così senza troppe difficoltà.
tra 0 e 5 con passo 0,001
y=(0.0015*x.^2 - 0.0135*x+0.121).*x.^2;
![]()
plottando solo le coppie di dati esce:Originariamente inviato da Andrea 007
che sono i 6 punti con tratti lineari pressochè insignificanti.
partendo invece da 3 dati scelti a caso(in particolare le coppie relative ad ascissa 1,5 3 e 4,5) ho estratto questa equazione:
y=0,066x^2+0,0266x-0,0027
che sull'intervallo [0;4,5] mi restituisce:
l'equazione l'ho ricavata come l'altra volta sistemino 3 equazioni 3 incongite:
ho corretto gli errori e così dovrebbe essere giusto
Ultima modifica di Gioz : 30-04-2008 a 11:54
Ultima modifica di Andrea 007 : 30-04-2008 a 20:01
Tornando al "nostro" Martin ..... fa dei test veramente spettacolari !
Questo il suo ultimo con filmatino per ascoltare
il respiro di una pompa.
http://www.martinsliquidlab.com/Dang...mp-Review.html
per fortuna,se partendo dai suoi dati ottenessimo qualcosa di insensato saremmo dei ..... ehm...Originariamente inviato da Andrea 007
Ci sono attualmente 14 utenti che stanno visualizzando questa discussione. (0 utenti e 14 ospiti)