FAQ: Difference between revisions
→Why is Octave's floating-point computation wrong?
(→MS Windows: Revisit the great article Nrjank :-)) |
|||
(3 intermediate revisions by 2 users not shown) | |||
Line 52: | Line 52: | ||
John W. Eaton, David Bateman, Søren Hauberg, Rik Wehbring ({{Release Year}}). | John W. Eaton, David Bateman, Søren Hauberg, Rik Wehbring ({{Release Year}}). | ||
GNU Octave version {{Release}} manual: a high-level interactive language for numerical computations. | GNU Octave version {{Release}} manual: a high-level interactive language for numerical computations. | ||
URL https:// | URL https://octave.org/doc/v{{Release}}/ | ||
A [https://en.wikipedia.org/wiki/BibTeX BibTeX] entry for [https://en.wikipedia.org/wiki/LaTeX LaTeX] users is: | A [https://en.wikipedia.org/wiki/BibTeX BibTeX] entry for [https://en.wikipedia.org/wiki/LaTeX LaTeX] users is: | ||
Line 60: | Line 60: | ||
author = {John W. Eaton and David Bateman and S{\o}ren Hauberg and Rik Wehbring}, | author = {John W. Eaton and David Bateman and S{\o}ren Hauberg and Rik Wehbring}, | ||
year = <span>{</span>{{Release Year}}}, | year = <span>{</span>{{Release Year}}}, | ||
url = {https:// | url = {[https://octave.org/doc/v{{Release}}/ https://octave.org/doc/v{{Release}}/]}, | ||
} | } | ||
Line 89: | Line 89: | ||
* After Octave upgrade the GUI does not open / shuts down immediately. | * After Octave upgrade the GUI does not open / shuts down immediately. | ||
** '''Solution:''' Delete the folder {{path|C:\Users\YOUR_USER_NAME\.config\octave}} | ** '''Solution:''' | ||
*** Version 5.2.0 and older: Delete the folder {{path|C:\Users\YOUR_USER_NAME\.config\octave}} | |||
*** Version 6.1.0 and newer: Delete the folder {{path|%APPDATA%\octave}}, which generally is located at {{path|C:\Users\YOUR_USER_NAME\AppData\Roaming\octave}} | |||
* Missing/conflicting files. | * Missing/conflicting files. | ||
** '''Solution:''' Remove/Uninstall all existing Octave versions. Restart the system. Install GNU Octave again. | ** '''Solution:''' Remove/Uninstall all existing Octave versions. Restart the system. Install GNU Octave again. | ||
Line 96: | Line 98: | ||
** '''Solution 1:''' Octave on MS Windows uses VBS scripts to start the program. You can test whether your system is blocking VBS scripts by doing the following: | ** '''Solution 1:''' Octave on MS Windows uses VBS scripts to start the program. You can test whether your system is blocking VBS scripts by doing the following: | ||
**# Using Notepad or another text editor, create a text file containing only the text: <pre>msgbox("This is a test script, Click OK to close")</pre> | **# Using Notepad or another text editor, create a text file containing only the text: <pre>msgbox("This is a test script, Click OK to close")</pre> | ||
**# Save the file on your Desktop with the name {{Path|testscript.vbs}} (be sure that the editor didn't end it in .txt or .vbs.txt) | **# Save the file on your Desktop with the name {{Path|testscript.vbs}} (be sure that the editor didn't end it in .txt or .vbs.txt). | ||
**# Double click the file. If scripts can run, a popup window will appear with that message. | **# Double click the file. If scripts can run, a popup window will appear with that message. | ||
**#* If the file opens in notepad or an editor, it means it still ended in .txt. MS Windows insecurely hides file extensions by default. To show file extensions follow [https://answers.microsoft.com/en-us/windows/forum/all/in-win10-how-to-show-the-file-extension-for/ed21ff20-cdb3-4263-9c7d-fc6ed125fc82 these instructions at Microsoft.com]. | **#* If the file opens in notepad or an editor, it means it still ended in .txt. MS Windows insecurely hides file extensions by default. To show file extensions follow [https://answers.microsoft.com/en-us/windows/forum/all/in-win10-how-to-show-the-file-extension-for/ed21ff20-cdb3-4263-9c7d-fc6ed125fc82 these instructions at Microsoft.com]. | ||
Line 132: | Line 134: | ||
==Why is Octave's floating-point computation wrong?== | ==Why is Octave's floating-point computation wrong?== | ||
Floating-point arithmetic is an approximation '''in binary''' to arithmetic on real or complex numbers. Just like you cannot represent 1/3 exactly in decimal arithmetic (0.333333... is only a rough approximation to 1/3), you cannot represent some fractions like <math>1/10</math> exactly in base 2. In binary, the representation to one tenth is <math>0.0\overline{0011}_b</math> where the bar indicates that it repeats infinitely (like how <math>1/6 = 0.1\overline{6}_d</math> in decimal). Because this infinite repetition cannot be represented exactly with a finite number of digits, rounding errors occur for values that appear to be exact in decimal but are in fact approximations in binary, such as for example how 0.3 - 0.2 - 0.1 is not equal to zero. | Floating-point arithmetic is an approximation '''in binary''' to arithmetic on real or complex numbers. Just like you cannot represent 1/3 exactly in decimal arithmetic (0.333333... is only a rough approximation to 1/3 for any finite number of 3s), you cannot represent some fractions like <math>1/10</math> exactly in base 2. In binary, the representation to one tenth is <math>0.0\overline{0011}_b</math> where the bar indicates that it repeats infinitely (like how <math>1/6 = 0.1\overline{6}_d</math> in decimal). Because this infinite repetition cannot be represented exactly with a finite number of digits, rounding errors occur for values that appear to be exact in decimal but are in fact approximations in binary, such as for example how 0.3 - 0.2 - 0.1 is not equal to zero. | ||
In addition, some advanced operations are computed by approximation and there is no guarantee for them to be accurate, see [https://en.wikipedia.org/wiki/Rounding#Table-maker.27s_dilemma Table-maker's dilemma] for further references. Their results are system-dependent. | In addition, some advanced operations are computed by approximation and there is no guarantee for them to be accurate, see [https://en.wikipedia.org/wiki/Rounding#Table-maker.27s_dilemma Table-maker's dilemma] for further references. Their results are system-dependent. |