Se faccio una precisione di funzionamento singolo con i valori, che darà un risultato che termina con 8:Matlab (2008a-32bit) singolo bug precisione
>> single(single(6.500001e+02)*single(-64.1775131)*single(0.65)*single(2))
ans = -5.4230008e+004
poi faccio qualsiasi operazione utilizzando doppia precisione, e la stessa operazione come prima, con precisione singola, il risultato sarà diverso dalla prima volta faccio funzionare:
>> double(6.5000012e+02)*double(-64.1775131)*double(0.65)*double(2)
ans = -5.423000858119204e+004
>> single(single(6.500001e+02)*single(-64.1775131)*single(0.65)*single(2))
ans = -5.4230004e+004
Questo problema si verifica in Matlab 2008a 32 bit. Questo non è un problema in Matlab 2012b 64 bit.
Qualche idea su come evitare questo problema?
Grazie.
Non riesco a riprodurre questo effetto in MATLAB Versione: 8.2.0.701 (R2013b). Ottengo il secondo singolo risultato anche la prima volta. Solo per la cronaca. –
Non riesco a riprodurre su MATLAB R2012a/32 bit (win32). –
Inoltre, verifica questo, sembra correlato: https://www.mathworks.com/matlabcentral/newsreader/view_thread/246425 Sembra che tu abbia accesso a R2012b, perché non utilizzarlo? –