Pretpostavljam da to kod tebe nije problem jer kako bi ti radile prve dve funkcije? Verovatno imaš instaliran odgovorajući Add-In jer kod mene ništa od toga ne radi.
Za korišćenje kompleksnih funkcija u samom Excelu 2003 (u radnom listu, ne VBA) bilo je potrebno da uključi Analysis Toolpak Add-in. Slično da se dobiju iste funkcije u VBA trebalo je da se uključi VBA Analysis Toolpak. U novoj verziji Excel-a ove funkcije postale su deo standardnog skupa funkcija, bez potrebe instaliranja Add In-a. U VBA ovim funkcijama se može pristupiti kao funkijama radnog lista (Application.WorksheetFunction objekat). Prepravio sam tvoj kod tako da ga mogu izvršavati iz 2007 i ispravio uočene greške (ne deklarisano e, ImProduct (-1,s) umesto –s. Tako da bi kod za f3 izgledao:
Code:
Function Rf2(ByVal X, ByVal Y) As Double
' Prilagodjeno za Excel 2007
'
theta = 1.84
alfa = 1 - Exp(-theta)
With Application.WorksheetFunction
s = .ImSum(X, .ImProduct("i", Y))
Fs = .ImProduct(-1 / theta, .ImLn(.ImSum(1, .ImProduct(-1, .ImExp(.ImProduct(-1, s)), alfa))))
Rfs = .ImReal(Fs)
End With
Rf2 = Rfs
End Function
Uspeo sam da izvršim i dobijem rezultat koji se nažalost ne slaže sa rezultatima dobijenim „po knjizi“. U čemu je problem ja nisam kompetnentan da protumačima. (Drago bi mi bilo da se podsetim studentskih dana i Laplasove transformacije ali sve knjige o tome već sam o davno otuđio, a ni vremena nemam na pretek). Možda formuliši pitanje za matematički deo foruma (Meni je lično sumnjivo da je algoritam za inverznu laplasovu transformaciju koji si dala univerzalan – možda važi za racionalne izraze a ne za logaritime i eksponente? ali da se ne mešam u ono što ne znam).
Nije to loše Rembrante, samo što ne bi dodao još malo boje?