Sisältö
- 1 INF (ääretön)
- 2 NAN (Not a Number)
- 3 Nolla
- 4 Katso myös
INF
(”ääretön”), NAN
(”ei luku”) ja Null
ovat erikoisarvoisia järjestelmävakioita, jotka Analytica palauttaa tietyissä olosuhteissa, kuten poikkeustapauksissa. Näitä vakioita voidaan käyttää myös arvoina lausekkeissa.
Vakio | Merkitys |
---|---|
INF |
Ääretön tai reaaliluku, joka on suurempi kuin mitä voidaan esittää, esim, 1/0 |
NAN |
Epämääräinen luku, joka on numeerinen arvo, joka ei ole hyvin määritelty, kuten 0/0 . Koodinimi NAN kärsii valitettavasta historiallisesta nimivirheestä siinä mielessä, että se tarkoittaa ”Not A Number” (ei numeroa); sitä pidetään kuitenkin numeerisena tietotyyppinä, ja näin ollen IsNumber(NAN) on totta. |
Null |
Tulos operaatiosta, jossa haluttua tietoa ei ole, kuten
|
INF (ääretön)
INF on numeerisen laskutoimituksen tulos, joka on matemaattisesti ääretön, kuten esim:
1/0 → INF
INF on myös sellaisen laskutoimituksen tulos, joka tuottaisi luvun, joka on suurempi kuin 1.797 x10+308
, joka on suurin liukuluku, jonka Analytica voi esittää:
10^1000 → INF
INF voi olla positiivinen tai negatiivinen:
-1 * 10^1000 → -INF
-1/0 → -Inf
Siten -INF tarkoittaa negatiivista äärettömyyttä (tai lukua, joka on pienempi kuin -1.796E308
).
Voit suorittaa INF:llä hyödyllistä, matemaattisesti oikeaa aritmetiikkaa, kuten esim:
INF + 10 → INF
INF/0 → INF
10 - INF → -INF
100/0 = INF → True
NAN (Not a Number)
NaN on määrittelemättömän numeerisen laskutoimituksen tulos, mukaan lukien numeeriset funktiot, joiden parametri on toimialueensa ulkopuolella, kuten”
INF - INF → NAN
0/0 → NAN
INF/INF → NAN
Sqrt(-1) → NAN
ArcSin(2) → NAN
(Jos otat käyttöön kompleksiluvut, Sqrt(-1) palauttaa kelvollisen imaginääriluvun, 1j.)
Se antaa yleensä varoituksen, jos sovellat funktiota parametriarvoon, joka on sen alueen ulkopuolella, kuten kahdessa yllä olevassa esimerkissä – ellet ole valinnut kohtaa ”Ignore warnings” (Älä huomioi varoituksia).
Mikä tahansa aritmeettinen operaatio, vertailu tai funktio, jota sovelletaan NaN:iin, antaa tulokseksi NaN:n:n:
0/0 <> NAN → NAN
Analytican esitysmuoto ja INF:n ja NaN:n kohtelu vastaa ANSI:n standardeja ja IEEE:n kellotaajuuskeskiarvostandardeja. NaN on lyhenne sanoista ”Not A Number”, mikä on hieman harhaanjohtavaa, sillä NaN on todellakin eräänlainen luku. Voit havaita NaN:n lausekkeessa käyttämällä IsNaN()-funktiota.
INF:llä ja NaN:llä suoritetut laskutoimitukset noudattavat matematiikan lakeja:
1/INF → 0
1/(-INF) → 0
INF + INF → INF
INF - INF → NAN
Lausekkeet, jotka ottavat operandiksi tai parametriksi NaN:n, antavat tuloksekseen NaN:n, ellei lausekkeella ole hyvin määriteltyä loogista tai numeerista arvoa mille tahansa NaN:n arvolle:
True OR NAN → True
NAN AND False → False
IF True THEN 5 ELSE NAN → 5
Null
Null
on tulos, joka on huonosti määritelty, yleensä osoittaen, että pyydetyssä paikassa ei ole mitään, esimerkiksi subscripti, joka käyttää arvoa, joka ei vastaa indeksin arvoa:
Index I := 1..5
X → Null
Muita operaatioita ja funktioita, jotka voivat palauttaa Noll:n, ovat muun muassa Slice()-operaatio(), Subscript()-operaatio (), Subindex()-operaatio() ja MdTable()-operaatio()-operaatio, esim.g.
Index Year :=
Slice(Year, 4) → NULL
Variable X := Array(Year, )
X → NULL
Voit testata Nollaa käyttämällä tavallisia =- tai <>-operaattoreita, kuten:
X = Null → True
tai voit käyttää IsNull(X)
. x=Null
ja IsNull(x)
ovat kuitenkin erilaisia, kun x
voi olla joukko. x=Null
on solutasoinen vertailu, jossa jokaisessa solussa testataan, onko se yhtä suuri kuin nolla, ja tuloksella on sama ulottuvuus kuin x
, kun taas IsNull(x)
testaa, onko koko arvo täsmälleen nolla. Kun x
on joukko, jonka jokainen solu on yhtä suuri kuin Null, IsNull(x)
on epätosi.
Kun Null esiintyy skalaarioperaatioissa, se tuottaa yleensä varoituksen ja evaluoituu nollaksi, esimerkiksi:
10 + Null → Null
Null - 10 → Null
1 AND Null → Null
Monisteiden pelkistävät funktiot eivät huomioi Nullia. Nämä esimerkit havainnollistavat (oletetaan, että A
on indeksoitu I
:llä, kuten ilmoitettu).
variable A :=
I ▶ | |||||
---|---|---|---|---|---|
1 | 2 | 3 | 4 | 4 | 5 |
8 | Null | 4 | Null | 0 |
Silloin
Sum(A, I) → 12
Average(A, I) → 4
JoinText(A, I, ', ') → "8, 4, 0"
Graafit yksinkertaisesti jättävät huomiotta (eivät näytä) pistettä, jonka arvo on Null.
Array-redusoivat funktiot ovat Sum(), Min(), Max(), ArgMin(), ArgMax(), Product(), Average(), JoinText(), Irr(), Npv().
Regression() jättää myös huomiotta kaikki datapisteet, joissa on Y = Null
, mikä on hyödyllistä puuttuvien tietojen tapauksessa.
See Also
- INF, NAN ja Null
- IsNaN
- IsNull
- Luvut
- Nolla-arvoista johtuvat virheet