Inhoud
- 1 INF (oneindig)
- 2 NAN (niet een getal)
- 3 Null
- 4 Zie ook
INF
(“oneindig”), NAN
(“geen getal”), en Null
zijn systeemconstanten met een speciale waarde die Analytica retourneert in bepaalde omstandigheden, zoals uitzonderingen. Deze constanten kunnen ook worden gebruikt als waarden in expressies.
Constant | Betekenis |
---|---|
INF |
Infinity of een reëel getal dat groter is dan kan worden weergegeven, bijv, 1/0 |
NAN |
Een onbepaald getal, dat een numerieke waarde is die niet goed gedefinieerd is, zoals 0/0 . De codenaam NAN lijdt aan een ongelukkige historische fout in die zin dat het staat voor “Not A Number”; het wordt echter beschouwd als een numeriek gegevenstype, en dus is IsNumber(NAN) waar. |
Null |
Het resultaat van een bewerking waarbij de gewenste gegevens niet aanwezig zijn, zoals
|
INF (oneindig)
INF is het resultaat van een numerieke berekening die mathematisch oneindig is, zoals:
1/0 → INF
INF is ook het resultaat van een berekening die een getal zou opleveren dat groter is dan 1.797 x10+308
, wat het grootste drijvende komma getal is dat Analytica kan weergeven:
10^1000 → INF
INF kan positief of negatief zijn:
-1 * 10^1000 → -INF
-1/0 → -Inf
Dus -INF betekent negatieve oneindigheid (of een getal lager dan -1.796E308
).
U kunt nuttige, wiskundig correcte rekenkundige bewerkingen uitvoeren met INF, zoals:
INF + 10 → INF
INF/0 → INF
10 - INF → -INF
100/0 = INF → True
NAN (Geen Getal)
NaN is het resultaat van een onbepaalde numerieke berekening, inclusief numerieke functies waarvan de parameter buiten hun domein ligt, zoals”
INF - INF → NAN
0/0 → NAN
INF/INF → NAN
Sqrt(-1) → NAN
ArcSin(2) → NAN
(Als u Complexe Getallen inschakelt, geeft Sqrt(-1) het geldige imaginaire getal, 1j, terug.)
Het geeft meestal een waarschuwing als u een functie toepast op een parameterwaarde buiten zijn bereik, zoals de twee voorbeelden hierboven – tenzij u “Waarschuwingen negeren” hebt aangevinkt.
Elke rekenkundige bewerking, vergelijking of functie toegepast op NaN geeft NaN terug:
0/0 <> NAN → NAN
Analytica’s weergave en behandeling van INF en NaN is consistent met ANSI (Association of National Standards Institutes) standaarden en IEEE Floating point standaarden. NaN staat voor “Not A Number”, wat een beetje misleidend is, omdat NaN eigenlijk een soort getal is. Je kunt NaN in een uitdrukking detecteren met de IsNaN() functie.
Berekeningen uitgevoerd met INF en NaN volgen de wetten van de wiskunde:
1/INF → 0
1/(-INF) → 0
INF + INF → INF
INF - INF → NAN
Expressies met NaN als operand of parameter geven NaN als resultaat, tenzij de expressie een goed gedefinieerde logische of numerieke waarde heeft voor elke waarde van NaN:
True OR NAN → True
NAN AND False → False
IF True THEN 5 ELSE NAN → 5
Null
Null
is een resultaat dat slecht gedefinieerd is, wat gewoonlijk aangeeft dat er niets is op de gevraagde plaats, bijvoorbeeld een subscript met een waarde die niet overeenkomt met een waarde van de index:
Index I := 1..5
X → Null
Andere bewerkingen en functies die Null kunnen teruggeven zijn Slice(), Subscript(), Subindex(), en MdTable(), bijv.b.v.
Index Year :=
Slice(Year, 4) → NULL
Variable X := Array(Year, )
X → NULL
U kunt op Null testen met de standaard = of <> operatoren, zoals:
X = Null → True
of u kunt IsNull(X)
gebruiken. x=Null
en IsNull(x)
zijn echter anders wanneer x
een matrix kan zijn. x=Null
is een vergelijking op celniveau, waarbij elke cel wordt getest op gelijkheid met Null, waarbij het resultaat dezelfde dimensionaliteit heeft als x
, terwijl IsNull(x)
test of de gehele waarde precies Null is. Wanneer x
een matrix is waarvan elke cel gelijk is aan Null, is IsNull(x)
onwaar.
Wanneer Null voorkomt in scalaire bewerkingen, geeft dit in het algemeen een waarschuwing en wordt geëvalueerd naar Null, bijvoorbeeld:
10 + Null → Null
Null - 10 → Null
1 AND Null → Null
Array-reducerende functies negeren Null. Deze voorbeelden demonstreren dit (aangenomen dat A
is geïndexeerd door I
zoals aangegeven).
variable A :=
I ▶ | ||||
---|---|---|---|---|
1 | 2 | 3 | 4 | 5 |
8 | Null | 4 | Null | 0 |
Dan
Sum(A, I) → 12
Average(A, I) → 4
JoinText(A, I, ', ') → "8, 4, 0"
Grafieken zullen eenvoudig elk punt waarvan de waarde Null is, negeren (niet tonen).
Array-reducerende functies zijn onder meer Som(), Min(), Max(), ArgMin(), ArgMax(), Product(), Gemiddelde(), JoinText(), Irr() en Npv().
Regression() negeert ook alle datapunten die Y = Null
hebben, wat nuttig is voor ontbrekende gegevens.
Zie ook
- INF, NAN, en Null
- IsNaN
- IsNull
- Getallen
- Fouten als gevolg van Null-waarden