Verwijderd schreef op 01 juli 2004 @ 16:20:
Alleen hiervoor zijn er al zo'n honderdduizend berekeningen nodig, en dit dus nog x 10000. En helaas, dit kan niet efficienter......... Dan komt er nog wat Black & Scholes optiewaarderingbij etc. Voor degenen die statistisch en financieel weten waar ik het over heb: een behoorlijk model dus.
Statistisch en financieel durf ik wel mee te praten, maar niet heel erg hard.
Ik durf je wel te voorspellen dat
Icestorm een punt heeft. De vraag die ik me stel is dan niet of je binnen Excel op de meest functionele manier aan de slag bent.
Wel of Excel de meest functionele manier is.
Ik weet niet of je dit of equivalente modellen vaker zal gebruiken, maar zo ja, zoek eens naar een echt statistisch pakket.
Niets ten nadele van Excel, uitstekend spreadsheetprogramma i.h.a., maar wel een
spreadsheetprogramma.
Je kan Excel op duizend en 1 manieren misbruiken waarvoor Microsoft het "niet echt bedoeld heeft", maar accepteer de consequenties, dat zal langzaam gaan omdat Excel hierop niet geoptimaliseerd is, zowel qua geheugenmanagement als qua berekeningen.
Probeer eens proef te draaien op SPSS, SAS etc. achtigen.
Ook voor dat soort programma's zal dit geen 5 seconden klus zijn, maar dan breng je die 14 uur waarschijnlijk flink terug (en het werkt waarschijnlijk nog fijner ook)
Gerede kans dat er *nog* betere programma's bestaan, maar daarmee helpen andere tweakers, google etc. je allicht verder. (ik weet het niet i.i.g.)
Nogmaals, dit verhaal wordt vooral interessant als je dit soort modellen vaker zal gebruiken, maar dat neem ik stiekum maar aan (voor 1 run wacht je even (en dan nog even) en ga je niet een GB RAM kopen.
Mocht je binnen Excel blijven, denkelijk kan je code verder geoptimaliseerd worden.
Willekeurig voorbeeld: roep deze macro aan in plaats van calculate. scheelt een slokje op een borrel.
code:
1
2
3
4
5
6
7
| Sub bereken()
Application.screenupdating=false
Activeworkbook.calculate '<- deze even nakijken (ben "blind" aan't typen)
'uberhaubt een "Doe hier je ding, niet specifiek calculate",
'neem aan dat je nu ook al VBA gebruikt.
Application.screenupdating=true
end sub() |
offtopic:
dit is geloof ik meer een PW achtige reply geworden. hopelijk heb je er toch wat aan..