[excel] gevoeligheidsanalyse

Pagina: 1
Acties:
  • 224 views sinds 30-01-2008
  • Reageer

  • LtMarx
  • Registratie: December 2003
  • Laatst online: 23-08 03:29

LtMarx

ATTENTIOOOON!!!

Topicstarter
beste tweakers,

ik heb een stukske VBA code geschreven die de resultaten van een onderzoek naar krantenpapier test op de gevoeligheid van verschillende input.

Dit gebeurd er onder andere in de
code:
1
2
3
4
5
6
nieuwinput = origineleinput * start / 100
Sheets(1).Cells(x, y) = nieuwinput
Sheets(5).Cells(outputrijenergie, n) = Abs(Sheets(3).Cells(rij, kolom) / antwoordenergie)
Sheets(5).Cells(outputrijemissie, n) = Abs(Sheets(3).Cells(rij, kolom2) / antwoordemissie)
n = n + 1
start = start + delta


Ik verandere de originele input met een bepaald percentage en ik lees de beide resultaten uit. Deze nieuwe resultaten deel ik op de oude. Zo ontstaat er een index van hoeveel procent de resultaten afwijken bij een bepaalde procentuele afwijking van een input. (volgen nog?)

nu het probleem: ik laat de procentuele afwijking beginnen bij *0.75 en eindigen bij *1.25. Hiertussen zit dus ook 1 en dat betekend dat ook de index op 1 zou moeten uitkomen. Dit is niet het geva. Mijn gok is dat dit door afronding komt.

Dit denk ik omdat zodra ik input getallen pak die geen hele getallen zijn (met dus decimalen) excel er niets van bakt. Bij gehele getallen gaat dit wel goed. (behalve dus dat de index 1 moet zijn bij een procentuele verandering van 1 (dus x*1/1).

Ik heb meermalen hier wat gelezen over eerst rekenen en dan pas formatten maar ik format nog helemaal niet! Daarnaast heb ik alle variabelen gedefinieerd als integers. Zit hier het probleem in?

  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 22:08
Waarschijnlijk is integer niet zo handig. Voor tellers (n bij je voorbeeld) gaat dat best goedf, maar als je "antwoordenergie" als integer definieerd, zal dat wel eens fout kunnen gaan.
Probeer eens als Single of Double te declareren i.p.v. Integer.
Overigens, gaat het alleen bij 1 fout of valt het je daar op maar gaat de rest ook fout? Waar komt'ie op uit i.p.v. 1?

  • LtMarx
  • Registratie: December 2003
  • Laatst online: 23-08 03:29

LtMarx

ATTENTIOOOON!!!

Topicstarter
1,03126158
0,999481232
zijn bijvoorbeeld waardes die er als uitkomst zijn en die eigenlijk 1 zouden moeten zijn. Het is meer dat het bij deze getallen heel duidelijk wordt dat het fout gaat. De rest zal er ook wel iets naast zitten.

Ik had gisteravond nog even gauw wat gelezen idd over doubles singles en integers. Ik weet niet heel precies het verschil, maar ik las dat het iets temaken had met floating point getallen.

  • LtMarx
  • Registratie: December 2003
  • Laatst online: 23-08 03:29

LtMarx

ATTENTIOOOON!!!

Topicstarter
Danku, ik heb de variabelen die niet gehele getallen waren allemaal gedefinieerd als zijnde doubles. En nu komt er wel 1 uit als het 1 zou moeten zijn. Ook als ik een input getal neem die veel of een paar decimalen heeft gaat het goed. Ik ga nu alleen nog even nazoeken wat nu precies een single of een double is.