|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2000
Città: Salerno
Messaggi: 4338
|
[MatLab] Perchè accade questo?
Salve raga
Qualcuno potrebbe spiegarmi perchè questa semplice porzione di codice in matlab porta ad un loop infinito? Codice:
a=0
while a~=1.0
a=a+0.1
end
Thanks
__________________
Doc : "Ovviamente, il continuum temporale è stato interrotto creando questa nuova temporale sequenza di eventi risultante in questa realtà alternativa" Marty : ...
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
|
a(bisciolina)=1.0 non mi sembra un gran test...
...che dite??? |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8896
|
a = 0;
while a<=1.1 a=a+0.1 end testato e funziona ~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
|
|
|
|
#4 | ||
|
Senior Member
Iscritto dal: Nov 2000
Città: Salerno
Messaggi: 4338
|
Quote:
Quote:
Ma io non sto cercando di risolvere l'esercizio; vorrei semplicemente capire perchè non funziona quel "gran test" (Bonfo docet
__________________
Doc : "Ovviamente, il continuum temporale è stato interrotto creando questa nuova temporale sequenza di eventi risultante in questa realtà alternativa" Marty : ...
|
||
|
|
|
|
|
#5 |
|
Bannato
Iscritto dal: Feb 2003
Città: Anche Chuck Norris usa Debian e Gnome
Messaggi: 1270
|
Spiegati meglio.
P.s. ma perchè con altri linguaggi funziona il test? |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Aug 2005
Messaggi: 2755
|
il problema è dovuto alla codifica dei float...
in pratica ogni float nella conversione in binario viene approssimato e questo porta quasi sicuramente a perdita dell'informazione. se ti interessa la codifica utilizzata cerca IEEE 754 (lo standard utilizzato) i cicli di solito vanno fatti on gli int per evitare questo problema.
__________________
|
|
|
|
|
|
#7 |
|
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16211
|
Quoto wisher: la virgola mobile va bene per rappresentare un grande intervallo di numeri, ma introduce grossi errori con la somma.
Il risultato è che, se fai delle addizioni, allora in genere non puoi valutare un'uguaglianza con un valore previsto, ma devi ricorrere a una maggiorazione della distanza tra il valore attuale e quello previsto. Ossia, se hai una tolleranza t, allora devi usare la condizione "abs(x-x0)<t" invece di "x==x0".
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:38.



















