Se avete problemi con l'installazione e la configurazione di Slackware postate qui. Non usate questo forum per argomenti generali... per quelli usate Gnu/Linux in genere.
Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Sono incappato recentemente in questo strano comportamento di octave. Ho installato i pacchetti per slackware 12 disponibili su linuxpackages.net e ho eseguito octave e fatto due conti. I seguenti: ho scritto una matrice 2x2 contenente numeri e radici quadrate, ne ho calcolato l'inversa con il comando inv e ho eseguito il prodotto tra la matrice e la sua inversa, sorprendentemente octave non restitusce l'identità ma una matrice abbastanza diversa. Cosa assurda. Ho pensato a dei pacchetti con qualche difetto e mi sono compilato octave (un po' noioso sul mio pentium2), ma il problema rimane. Se eseguo la stessa versione di octave su windows funziona correttamente. Ho provato sia la 2.9.12 sia la 2.9.13. Qui di seguito un output di esempio :
GNU Octave, version 2.9.13
Copyright (C) 2007 John W. Eaton and others.
This is free software; see the source code for copying conditions.
There is ABSOLUTELY NO WARRANTY; not even for MERCHANTIBILITY or
FITNESS FOR A PARTICULAR PURPOSE. For details, type `warranty'.
Octave was configured for "i686-pc-linux-gnu".
Additional information about Octave is available at http://www.octave.org.
Please contribute if you find this software useful.
For more information, visit http://www.octave.org/help-wanted.html
Report bugs to <bug@octave.org> (but first, please read
http://www.octave.org/bugs.html to learn how to write a helpful report).
For information about changes from previous versions, type `news'.
octave:1> A=[1/sqrt(2),-1/sqrt(2);1/sqrt(2),1/sqrt(2)]
A =
0.70711 -0.70711
0.70711 0.70711
octave:2> inv(A)
ans =
0.70711 0.70711
-0.70711 0.70711
octave:3> inv(A)*A
ans =
1.0000e+00 -1.0137e-17
-1.0137e-17 1.0000e+00
octave:4>
Ciao!
Non credo si tratti di un errore, piuttosto di impostazioni differenti riguardo arrotondamenti e/o gestione degli interi del CAS (Computer Algebra System).
Personalmente ho "combattuto" un pò sia con Octave che altri CAS di cui non ricordo il nome e, dopo mille prove, sono arrivato alla conclusione che la soluzione migliore e, tutto sommato, + economica, fosse quella di acquistare una BUONA calcolatrice, ovvero, senza volere fare pubblicità (e senza volere scatenare una flame war con gli utilizzatori delle Texas Instruments) una Hewlett Packard, da adoperare in modalità RPN!
Se acquisti su Ebay dagli US il modello HP48GII te la cavi con poco (sugli 80 euro rispetto al prezzo italiano di 140+iva).
Altrimenti il massimo (per l'HP) è il modello HP50G.
Scusa se sono andato leggermente O.T.
In bocca al lupo x eventuali esami!
octave:1> A=[1/sqrt(2),-1/sqrt(2);1/sqrt(2),1/sqrt(2)]
A =
0.70711 -0.70711
0.70711 0.70711
octave:2> inv(A)
octave:2> A
A =
0.70711 -0.70711
0.70711 0.70711
octave:3> A^-1
ans =
0.70711 0.70711
-0.70711 0.70711
octave:4> A^-1 * A
ans =
1.0000e+00 -1.0137e-17
-1.0137e-17 1.0000e+00
il blocco della funzione inv() mi era già capitato tempo addietro con una installazione da pacchetti tgz e altre versioni del sistema operativo. Da cosa potrà di pendere? Tutto il resto, per quanto ho potuto sperimentare, funziona.
Non sono convinto, ammetto che quella matrice assomigli all'identità, ma anche se i termini extra-diagonali sono molto molto piccoli, non sono zero. E comunque non mi spiego il fatto che provando su una ubuntu di scorta octave fa il suo conticino per bene, in più in entrambi i casi ho usato format short come formato di visualizzazione.
L'output di octave su ubuntu,
GNU Octave, version 2.9.9 (i486-pc-linux-gnu).
Copyright (C) 2006 John W. Eaton.
This is free software; see the source code for copying conditions.
There is ABSOLUTELY NO WARRANTY; not even for MERCHANTIBILITY or
FITNESS FOR A PARTICULAR PURPOSE. For details, type `warranty'.
Additional information about Octave is available at http://www.octave.org.
Please contribute if you find this software useful.
For more information, visit http://www.octave.org/help-wanted.html
Report bugs to <bug@octave.org> (but first, please read
http://www.octave.org/bugs.html to learn how to write a helpful report).
octave2.9:1> A=[1/sqrt(2),-1/sqrt(2);1/sqrt(2),1/sqrt(2)]
A =
0.70711 -0.70711
0.70711 0.70711
octave2.9:2> A*inv(A)
ans =
1 0
0 1
octave2.9:3>
da una parte usi la scrittura semplice, dall'altra chiedi la scrittura in potenze del 10 (1 contro 1e+0) il calcolo è lo stesso identico, solo che la slack è configurata per un output a più cifre significative!
se sei curioso di vedere dei veri errori di apporssimazione prova le inverse delle funzioni trigonometriche
Non vorrei sembrare insistente e eccessivamente pignolo, cerco solo di capire. Va bene i diversi formati di visualizzazione, ma come mai lo stesso octave, nello stesso formato di visualizzazione (ad esempio format short) su due distribuzioni diverse produce due output diversi?
grazie della pazienza
pulmro ha scritto:Non vorrei sembrare insistente e eccessivamente pignolo, cerco solo di capire. Va bene i diversi formati di visualizzazione, ma come mai lo stesso octave, nello stesso formato di visualizzazione (ad esempio format short) su due distribuzioni diverse produce due output diversi?
grazie della pazienza
Anche la calcolatrice KCalc si comporta in modo differente a seconda che sia stata compilata con supporto long double o meno.
Il fatto che Octave fornisca, ad esempio, sin(3.14 / 2) = 1 significa che sta usando una precisione schifosa in virgola mobile; non so se per Octave ci siano delle opzioni che permettono di modificare la precisione senza la necessità di ricompilare.