• 1 INF (uendelighed)
  • 2 NAN (Not a Number)
  • 3 Null
  • 4 Se også

INF (“uendelighed”), NAN (“ikke et tal”) og Null er systemkonstanter med særlig værdi, som Analytica returnerer under særlige forhold, f.eks. undtagelser. Disse konstanter kan også bruges som værdier i udtryk.

Konstant Betydning
INF Uendelighed eller et reelt tal, der er større end det, der kan repræsenteres, f.eks, 1/0
NAN Et ubestemt tal, som er en numerisk værdi, der ikke er veldefineret, f.eks. 0/0. Kodenavnet NAN lider under en uheldig historisk fejlbenævnelse, idet det står for “Not A Number”; det anses dog for at være en numerisk datatype, og derfor er IsNumber(NAN) sandt.
Null Resultatet af en operation, hvor de ønskede data ikke er der, f.eks.

X, hvor indeks I ikke har værdien '?'

INF (uendelighed)

INF er resultatet af en numerisk beregning, der matematisk set er uendelig, f.eks:

1/0 → INF

INF er også resultatet af en beregning, der ville give et tal, der er større end 1.797 x10+308, som er det største tal med flydende komma, som Analytica kan repræsentere:

10^1000 → INF

INF kan være positiv eller negativ:

-1 * 10^1000 → -INF -1/0 → -Inf

Så -INF betyder negativ uendelighed (eller et tal under -1.796E308).

Du kan udføre nyttig, matematisk korrekt aritmetik med INF, som f.eks:

INF + 10 → INF INF/0 → INF 10 - INF → -INF 100/0 = INF → True

NAN (Not a Number)

NaN er resultatet af en ubestemt numerisk beregning, herunder numeriske funktioner, hvis parameter er uden for deres domæne, f.eks.”

INF - INF → NAN 0/0 → NAN INF/INF → NAN Sqrt(-1) → NAN ArcSin(2) → NAN

(Hvis du aktiverer Complex Numbers, returnerer Sqrt(-1) det gyldige imaginære tal, 1j.)

Det giver normalt en advarsel, hvis du anvender en funktion på en parameterværdi uden for dens område, som f.eks. de to eksempler ovenfor – medmindre du har markeret “Ignorer advarsler”.

Alle aritmetiske operationer, sammenligninger eller funktioner, der anvendes på NaN, returnerer NaN:

0/0 <> NAN → NAN

Analyticas repræsentation og behandling af INF og NaN er i overensstemmelse med ANSI-standarder (Association of National Standards Institutes) og IEEE Floating point-standarderne. NaN står for “Not A Number” (ikke et tal), hvilket er en smule misvisende, da NaN i virkeligheden er en slags tal. Du kan registrere NaN i et udtryk ved hjælp af funktionen IsNaN().

Beregninger, der udføres med INF og NaN, følger matematikkens love:

1/INF → 0 1/(-INF) → 0 INF + INF → INF INF - INF → NAN

Udtryk, der tager NaN som operand eller parameter, giver NaN som resultat, medmindre udtrykket har en veldefineret logisk eller numerisk værdi for enhver værdi af NaN:

True OR NAN → True NAN AND False → False IF True THEN 5 ELSE NAN → 5

Null

Nuller et resultat, der er dårligt defineret, hvilket normalt indikerer, at der ikke er noget på den ønskede placering, f.eks. et subscript med en værdi, der ikke passer til en værdi af indekset:

Index I := 1..5 X → Null

Andre operationer og funktioner, der kan returnere Null, omfatter Slice(), Subscript(), Subindex() og MdTable(), f.eks.g.

Index Year := Slice(Year, 4) → NULL Variable X := Array(Year, ) X → NULL

Du kan teste for Null ved hjælp af standardoperatorerne = eller <>, f.eks.:

X = Null → True

eller du kan bruge IsNull(X). x=Null og IsNull(x) er dog forskellige, når x kan være et array. x=Null er en sammenligning på celleplan, hvor hver celle testes for lighed med Null, og hvor resultatet har samme dimensionalitet som x, mens IsNull(x) tester, om hele værdien er præcis Null. Når x er et array, hvor hver celle er lig med Null, er IsNull(x) falsk.

Når Null optræder i skalaroperationer, giver det som regel en advarsel og evalueres til Null, f.eks.:

10 + Null → Null Null - 10 → Null 1 AND Null → Null

Array-reducerende funktioner ignorerer Null. Disse eksempler demonstrerer (antag, at A er indekseret med I som angivet).

variable A :=

I ▶
1 2 3 4 4 5
8 Null 4 Null 0

Sum(A, I) → 12 Average(A, I) → 4 JoinText(A, I, ', ') → "8, 4, 0"

Graferne vil simpelthen ignorere (ikke vise) ethvert punkt, hvis værdi er Null.

Array-reducerende funktioner omfatter Sum(), Min(), Max(), ArgMin(), ArgMax(), Product(), Average(), JoinText(), Irr(), Npv().

Regression() ignorerer også alle datapunkter, der har Y = Null, hvilket er nyttigt i forbindelse med manglende data.

Se også

  • INF, NAN og Null
  • IsNaN
  • IsNull
  • Tal
  • Fejl som følge af nulværdier

Tal og tekstINF, NAN og NULL – undtagelsesværdierVarsler

Articles

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.