• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

FACULTEIT niet hoger dan 170

Status
Niet open voor verdere reacties.

gklap

Gebruiker
Lid geworden
22 sep 2015
Berichten
11
Beste Excel gebruiker,

Ik heb een formule waar de faculteit functie in zit verwerkt. Als ik hiermee ga rekenen dan kan de faculteit niet hoger dan 170 worden ingesteld. Hoe kan ik dit probleem verhelpen?

Alvast bedankt,

Gerard
 
Waarom zou je een faculteit groter dan 170 willen?
Zoveel geld past er toch niet op je bankrekening :d
Plaats even je formule.
 
Laatst bewerkt:
Hallo,

de formule: E_θ=〖n(nθ)〗^(n-1)/(n-1)! e^(-nθ). Komt uit de reactortechnologie. Hiermee kunt u x(n) aantal CSTR's nabootsen. ik zou graag 1000 CSTR's in serie willen nabootsen.

alvast bedankt,
 
Laatst bewerkt:
Inderdaad bij ongeveer n = 50+ zal het een symmetrische curve worden. Tijdens het spelen met de formule merkte ik op dat 170+ in faculteit niet mogelijk is. ik ben simpelweg benieuwd naar de technische oplossing.
 
Laatst bewerkt:
Bekijk bijlage Probability of duplicates.xlsx
Heren, ik snap weinig van jullie onderonsje, maar ik heb onlangs op een ander forum een oplossing aangedragen waarbij ook sprake was van te grote faculteiten.
Misschien is zoiets hier ook bruikbaar.
Het gaat om de matrixformule in J3 van de bijlage, die in feite terug gaat naar de basisformule (de eerste van de 3 regels onder "Code" in de vraagstelling die in de bijlage is opgenomen).
 
Laatst bewerkt:
Faculteiten van 170 en hoger leveren een getalswaarde op waar Excel niet mee kan rekenen. Volgens dit artikel is het grootste getal waar Excel "out of the box" mee kan rekenen 9,99999999999999E+307. Dus is fact(170) het grootste wat kan (7.2574E+306*171 wordt net te veel).
 
Ik heb nog eens een grafiekje gemaakt:

Bekijk bijlage RTD-CSTR.xlsx

Conclusies kun je wel trekken vanaf n=100. Bij grotere n wordt de RTD steeds smaller, rondom de gemiddelde verblijftijd (=Vr/Qv).

Misschien nog interessant: https://nl.wikipedia.org/wiki/Formule_van_Stirling.

Feit blijft dat geen mij bekend wiskundig programma (Matlab, Mathematica of Excel) een getal groter dan (ca.) 170! aankan....
 
Laatst bewerkt:
Bekijk bijlage RTD-CSTR MB.xlsx

Zo, hèhè, ik ben eruit. :)

Voortbordurend op mijn post #6 en de sheet van Alex :thumb: heb ik de formule weten te ontbinden in factoren.
Zie werkblad 'Blad1 MB' in de bijlage.

Om het geheel leesbaar te houden heb ik 2 namen gedefinieerd:
n: het getal n
EenTm_n: vector met de getallen 1 2 3 .... n

De matrixformule in B13 (bevestigd met Ctrl+Shift+Enter, gekopieerd naar rechts en naar beneden) is nu geworden (voor het gemak zonder ALS.FOUT):
Code:
=PRODUCT($A13^ALS(EenTm_n-1;1;0)/(EenTm_n-ALS(EenTm_n-1;1;0))*(n/$B$7)*EXP(-$A13/$B$7)*ALS(EenTm_n;1))

Met deze formule kun je tot maximaal n=1937 gaan. :cool:
 
Laatst bewerkt:
Bekijk bijlage Dimensieloos E-curve-forum.xlsx
Bedankt voor de interesse en jullie tijd.

Alex heeft net een andere vergelijking gebruikt dan de vergelijking die ik bedoel. Ik heb het trucje van Marcel geprobeerd op mijn formule, maar mijn Excel skills zijn niet goed genoeg. Ik begrijp niet wat je precies doet. Zou je mij dat uit willen leggen?
In de bijlage vinden jullie een sheet met de formule.

Alvast bedankt.
 
... het trucje van Marcel ...

Bescheidenheid kent geen tijd, maar "trucje" vind ik wat tekort schieten. Ik dacht zelf eerder aan "meesterwerk"... :cool:

De oorspronkelijke formule (met faculteit) is in feite de verkorte versie van een reeks afzonderlijke elementen die met elkaar vermenigvuldigd worden.
Dat is op zich handig, totdat je aanloopt tegen getallen die te groot worden (zoals faculteiten boven 170).
Mijn oplossing komt er op neer dat ik de oorspronkelijke formule heb terug herleid naar de reeks van afzonderlijke elementen.

Dat heb ik nu opnieuw gedaan met jouw formule, resulterend in de matrixformule in $K11 en naar beneden gekopieerd:
Code:
=ALS($I11;PRODUCT(n^ALS(EenTm_n-1;0;1)*(n*$I11)^ALS(EenTm_n-1;1;0)/(EenTm_n-ALS(EenTm_n-1;1;0))*EXP(-$I11)*ALS(EenTm_n;1));0)

Overigens verwijst jouw formule in J11 naar $F11 i.p.v. naar $I11 (2x).

Ik heb ook mijn uitkomsten in de grafiek toegevoegd.

Uitleg van mijn formule:
De buitenste ALS zorgt ervoor dat het resultaat 0 is als $I11=0 (de formule gaat anders fout bij $I11=0).
Ik maak gebruik van de eigenschap van Excel dat 0 equivalent is met FALSE of ONWAAR en elk ander getal equivalent met TRUE of WAAR.

Ik heb jouw formule (even B i.p.v. dat Griekse symbool voor theta geloof ik) - n(nB)^(n-1)/(n-1!)*e^(-nB) opgedeeld in de stukjes:
1. n
2. (nB)^(n-1)
3. (n-1!)
4. e^(-nB)

1. n
n^ALS(EenTm_n-1;0;1)
Bij n=3: 3^ALS({1;2;3}-1;0;1} --> 3^ALS({0;1;2};0;1) --> 3^{1;0;0} --> {3;1;1}
Na vermenigvuldiging levert dit 3 op.

2. (nB)^(n-1)
(B=$I11)
(n*$I11)^ALS(EenTm_n-1;1;0)
Bij n=3 levert het ALS-stukje op {0;1;1}.
Na vermenigvuldiging krijg je dan 1*(n*$I11)*(n*$I11) oftewel (n*$I11)^(n-1)

3. (n-1!)
(EenTm_n-ALS(EenTm_n-1;1;0))
Bij n=3 levert dit op {1;2;3}-{0;1;1} oftewel {1;1;2}
Na vermenigvuldiging krijg je dan 1*1*2 oftewel (n-1)!

4. e^(-nB)
EXP(-$I11)*ALS(EenTm_n;1))
(B = $I11)
Dit levert op EXP(-$I11)*{1;1;1}
Na vermenigvuldiging levert dit op EXP(-$I11)*EXP(-$I11)*EXP(-$I11) = E^(-nB)

Hier is-tie:
Bekijk bijlage Dimensieloos E-curve-forum MB.xlsx
 
Bij nader inzien is het stukje *ALS(EenTm_n;1) volstrekt overbodig. Dit is voldoende (bevestigen met Ctrl+Shift+Enter):
Code:
=ALS($I11;PRODUCT(n^ALS(EenTm_n-1;0;1)*(n*$I11)^ALS(EenTm_n-1;1;0)/(EenTm_n-ALS(EenTm_n-1;1;0))*EXP(-$I11));0)
"Trukendoos"? :rolleyes:
 
Is dit misschien ook een oplossing?
Matrixformule, dus met CTRL+SHIFT+ENTER, en met in C1 het getal waarvan de faculteit moet worden berekend.
Het antwoord is TEKST!
Code:
=10^REST(SOM(LOG10(RIJ(INDIRECT("A1:A"&C1))));1)&"E+"&GEHEEL(SOM(LOG10(RIJ(INDIRECT("A1:A"&C1)))))
 
Is dit misschien ook een oplossing?
Matrixformule, dus met CTRL+SHIFT+ENTER, en met in C1 het getal waarvan de faculteit moet worden berekend.
Het antwoord is TEKST!
Code:
=10^REST(SOM(LOG10(RIJ(INDIRECT("A1:A"&C1))));1)&"E+"&GEHEEL(SOM(LOG10(RIJ(INDIRECT("A1:A"&C1)))))

Een hele mooie oplossing om faculteiten tot boven de 170 te berekenen. :thumb: Werkt tot en met 1.048.576!, het maximum rijnummer in Excel.

Alleen...als onderdeel van een formule is het niet bruikbaar omdat het antwoord in tekstformaat is.
 
Nooit gewerkt met logaritmes?
Code:
=SOM(LOG10(RIJ(INDIRECT("A1:A"&C1))))
als matrixformule geeft je de logaritme van de faculteit.
Vermenigvuldigen en delen doe je door optellen en aftrekken van de logaritmes.
Wil je optellen of aftrekken, dan moet je dat in tweeën doen, waarbij je de machten van beide getallen gelijk maakt (naar het kjleinste getal van beide logaritmes).
 
Laatst bewerkt:
Nooit gewerkt met logaritmes?
Lang geleden en in beperkte mate. Zo te zien is het de moeite waard om eens verder in te verdiepen. :d

Ik wil niet op de stoel van de topicstarter gaan zitten, maarre: hoe zou die logaritmische oplossing kunnen worden ingepast in de formule in het bestand van post #10, in J12: =(n*(n*$I12)^(n-1)/FACULTEIT(n-1))*EXP(-$I12*n)?
 
Het zou dan dit worden (in de door jou gegeven notatie):
Code:
=Log10((n*(n*$I12)^(n-1)))-(log10(FACULTEIT(n-1))+log10(EXP(-$I12*n)))
 
Laatst bewerkt:
...(in de door jou gegeven notatie)...

Pardon, dit is gewoon de Excel-formule van Gerard in het bestand van post #10.

FACULTEIT(n-1) is precies het deel dat niet werkt bij n>170, dus terug bij af.

Voor de goede orde trek ik me even terug uit deze discussie en laat het verder aan jullie over.
 
Nu de formule verwerkt in het bestand van #10.
In K12 de logaritme van het resultaat van de formule, in L12 deze logaritme naar wetenschappelijke notatie omgezet.
Vanwege negatieve exponenten moet de functie GEHEEL vervangen worden door de functie INTEGER.
In M12 beide formules samengevoegd.
 

Bijlagen

Wil je vervolgens het getal uit L12 nog in een grafiek gebruiken, dan moet je het in een ALS-functie verpakken.
Daarbij moet je dan wel bedenken dat de maximale waardes waar excel mee kan werken zijn 10 tot de macht + of - 307.

De samengestelde formule wordt dan
Code:
=ALS(ABS(INTEGER(K12))<308;WAARDE(10^REST(LOG10(n)+LOG10(n*$I12)*(n-1)-SOM(LOG10(RIJ(INDIRECT("A1:A"&n-1))))+LOG10(EXP(1))*(-$I12*n);1)&"E"&INTEGER(LOG10(n)+LOG10(n*$I12)*(n-1)-SOM(LOG10(RIJ(INDIRECT("A1:A"&n-1))))+LOG10(EXP(1))*(-$I12*n)));10^REST(LOG10(n)+LOG10(n*$I12)*(n-1)-SOM(LOG10(RIJ(INDIRECT("A1:A"&n-1))))+LOG10(EXP(1))*(-$I12*n);1)&"E"&INTEGER(LOG10(n)+LOG10(n*$I12)*(n-1)-SOM(LOG10(RIJ(INDIRECT("A1:A"&n-1))))+LOG10(EXP(1))*(-$I12*n)))
(ook weer matrixformule) waarbij de tekstwaarde wel blijft staan als de exponent > 307 wordt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan