Forum Informatica Unict

LAUREA TRIENNALE (D.M. 270/04) => Formazione Numerica, 6 CFU => Topic started by: vincenzo86 on 19-11-2009, 15:35:08



Title: Dubbio Esercizio prima prova in itinere 27-11-07
Post by: vincenzo86 on 19-11-2009, 15:35:08
Come da oggetto, il primo esercizio richiede il seguente:
Quote
Scrivere un vettore x di 9 nodi ugualmente spaziati con x0 = 1 e spaziatura h = 0.1
Scusate se può essere una cosa semplice, ma non ricordo se la procedura corretta sia questa:
x=linspace(1,0.1,9) , oppure x=[1:0.1:9]

E poi quest'altro quesito
Quote
Formare una matrice A 3x3 contenente gli elementi del vettore x dell’es. 1)
Devo applicare questo tipo di formula? A(:,:)=[all'interno devo mettere il contenuto del vettore]
Grazie


Title: Re:Dubbio Esercizio prima prova in itinere 27-11-07
Post by: cock86 on 19-11-2009, 16:26:52
credo puoi scriverlo così:

>> x=linspace(1,1+((9-1)*0.1),9);
>>% linspace(inizio,fine,passi)-->inizio=x0=1;
>>%fine=1(inizio)+(9-1)(- 1 perché conta il primo e l'ultimo)*0,1(ampiezza passo);
>>%passi=9
>> A=reshape(x,3,3)
A =

   1.0000   1.3000   1.6000
   1.1000   1.4000   1.7000
   1.2000   1.5000   1.8000

octave:106>


Title: Re:Dubbio Esercizio prima prova in itinere 27-11-07
Post by: vincenzo86 on 19-11-2009, 16:29:36
Non capisco dell'istruzione linspace solamente l'argomento fine, potresti spiegarti meglio? Grazie


Title: Re:Dubbio Esercizio prima prova in itinere 27-11-07
Post by: sanevir on 19-11-2009, 16:31:01
credo si possa fare semplicemente anche con : x=[1:0.1:1.8]

 .ciaociao


Title: Re:Dubbio Esercizio prima prova in itinere 27-11-07
Post by: cock86 on 19-11-2009, 16:58:44
il comando che devi usare e linspace anche se ottieni lo stesso risultato cmq fine serve a calcolare quel 1.8.
1+ perché iniziamo da 1;
9-1 perche in realtà sono solo otto step per 9 nodi, poichè ci sono il nodo di inizio non ha passi;
e poi moltiplico per 0,1 che è la spaziatura tra un nodo e l'altro;
così ottengo il valore finale di un array di nove nodi tutti ugualmente distanti di 0.1, e valore iniziale 1, cioè 1,8...
ma quella è la formula per trovare 1,8... spero di essere stato chiaro... basta ragionarci un pò.


Title: Re:Dubbio Esercizio prima prova in itinere 27-11-07
Post by: cock86 on 20-11-2009, 10:16:11
sanevir: ATTENTO!!
se la prof ti da il NUMERO DI NODI, devi usare linspace(perché il terzo parametro è il numero di nodi e la funzione calcola l'ampiezza del passo);
se invece ti dà il PASSO devi usare il comando A=[i:p:f] (dove p è l'ampiezza del passo tra un nodo e l'altro e il numero dei nodi lo calcola la funzione);
la differenza è sottile, ma hanno due specifiche diverse per due usi diversi, che puoi riconoscere dalle due parole chiavi NUMERO NODI e DI PASSO.
Spero di essere stato chiaro e d'aiuto.


Title: Re:Dubbio Esercizio prima prova in itinere 27-11-07
Post by: genietto84 on 20-11-2009, 10:23:22
sanevir: ATTENTO!!
se la prof ti da il NUMERO DI NODI, devi usare linspace(perché il terzo parametro è il numero di nodi e la funzione calcola l'ampiezza del passo);
se invece ti dà il PASSO devi usare il comando A=[i:p:f] (dove p è l'ampiezza del passo tra un nodo e l'altro e il numero dei nodi lo calcola la funzione);
la differenza è sottile, ma hanno due specifiche diverse per due usi diversi, che puoi riconoscere dalle due parole chiavi NUMERO NODI e DI PASSO.
Spero di essere stato chiaro e d'aiuto.

E ma nell'esercizio ci sono entrambe le parole chiave!!! Passo e Spaziatura :D ... quindi??
Non esiste un comanda che prende x0 spaziatura e numero di passi quindi credo che entrambi i metodi vanno bene.
Io ho chiesto proprio alla prof se esiste un metodo per usare spaziatura e numero di passi (senza conoscere xn) e mi ha risposto di no. Le ho fatto vedere che io ho fatto x=1:.1:1.8 calcolando io xn e mi ha detto che andava bene


Title: Re:Dubbio Esercizio prima prova in itinere 27-11-07
Post by: cock86 on 20-11-2009, 10:32:02
.leggo si il confine è talmente sottile che la prof li definisce la stessa cosa...e se lo dice la prof!!! tanto è lei che mette il voto!


Title: come funziona il load
Post by: cock86 on 20-11-2009, 12:34:38
come funziona il load?!?!?  :-)|
%creo un file vect che contenga i numeri da uno a 10 e poi provo a caricarlo ma...

>> n=[1:10]
>> save vect n
>> load n -ascii
>> error: load: unable to find file n

perché?intanto appunti e help mi portano a questa soluzione!


Title: Re:come funziona il load
Post by: genietto84 on 20-11-2009, 13:20:29
come funziona il load?!?!?  :-)|
%creo un file vect che contenga i numeri da uno a 10 e poi provo a caricarlo ma...

>> n=[1:10]
>> save vect n
>> load n -ascii
>> error: load: unable to find file n

perché?intanto appunti e help mi portano a questa soluzione!

load vect

il file è vect non n!! inoltre il -ascii non ci va perché non è un file ascii


Title: Re:Dubbio Esercizio prima prova in itinere 27-11-07
Post by: cock86 on 20-11-2009, 13:42:10
che ###@@!!! avevo sbagliato a scrivere vect, però l'errore era -ascii grazie!!!


Title: Re:Dubbio Esercizio prima prova in itinere 27-11-07
Post by: genietto84 on 20-11-2009, 13:59:06
che ###@@!!! avevo sbagliato a scrivere vect, però l'errore era -ascii grazie!!!


Ne sei convinto?

Code:
>> save vect n
>> load n
??? Error using ==> load
Unable to read file n: No such file or
directory.

inoltre dall'help di save
Quote
SAVE FILENAME X  saves only X.

quindi vect è il nome del file e n la variabile da salvare.

Code:
n=[1:10];
save vect n
% cancella tutto il workspace
clear
%carica da file
load vect
%vedrai che nel workspace è ricomparso n infatti
n
%ti visualizzerà il tuo vettore

Quindi l'errore non era solo il -ascii ma anche il load n
 .ciaociao



Title: Re:Dubbio Esercizio prima prova in itinere 27-11-07
Post by: cock86 on 20-11-2009, 14:11:54
si si convintissimo!! avevo sbagliato a scrivere qui load n al posto di load vect... sul terminale avevo scritto load vect però mettendo sempre il -ascii ed era quello il problema!
grazie .ciaociao


Title: Re:Dubbio Esercizio prima prova in itinere 27-11-07
Post by: genietto84 on 20-11-2009, 14:18:45
si si convintissimo!! avevo sbagliato a scrivere qui load n al posto di load vect... sul terminale avevo scritto load vect però mettendo sempre il -ascii ed era quello il problema!
grazie .ciaociao

esatto... qui quindi gli errori erano 2  .whistling
prima non era chiaro cosa intendevi con quel ho sbagliato a scrivere vect  .sisi
cmq chiarito l'inconveniente... passo e chiudo  |-O