TDDD44 Problemlösning och programmering
Lathund - knepiga saker i MatLab
Ibland blir man lite förundrad över hur MatLab gör sina beräkningar. Här följer en lista på lite underliga saker som vi upptäckt ...
Inf, NaN, intmin och intmax
Givet: intmin == -2147483648 och intmax == 2147483647. Observera att intmin slutar med en 8:a och intmax med en 7:a.
Inf motsvarar det tal som är oändligheten och NaN (not a number) motsvarar ett tal som inte finns i talmängden.
Uttryck I MatLab Borde vara ------- -------- ---------- intmax + 1 intmax Inf (eller möjligen NaN ...) intmin - 1 intmin -Inf (eller möjligen NaN ...) -intmin intmax NaN -intmax intmin + 1 inmin + 1 (alltså rätt!!!) --intmin intmin + 1 intmin (eller NaN) intmax / 0 intmax Inf intmax + Inf intmax Inf intmax - Inf intmin -Inf intmax + NaN 0 NaN 0 * NaN 0 NaN NaN == NaN 0 (false) 0 (false) (logiskt sett, eller ...) NaN ~= NaN 1 (true) 0 (false) (logiskt sett, eller ...) Inf == Inf 1 (true) 1 (true) (kanske logiskt ...) mod(x, 0) x NaN (eller ...) mod(0.1, pi) - 0.1 -1.3878e-17 0 sin(pi) 1.2246e-16 0
Vektoroperationer
'kalle' / 'nisse' ca 0.954 '+noll' / '-noll' ca 0.998 '+0' / '-0' ca 0.979 Vilket visar att noll inte är riktigt noll :-), eller ... Dessutom är '+0' alltså mindre än '-0' vilket säger att noll egentligen är lite mindre än noll ...
Sidansvarig: Torbjörn Jonsson
Senast uppdaterad: 2012-08-16