1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| Function Erf(y As Variant) As Variant
Dim N As Integer, S As Double, Pas As Double
N = 1000
Pas = y / N
S = (1 + Exp(-(N * Pas) ^ 2)) * 5257 / 17280
S = S + (Exp(-(Pas) ^ 2) + Exp(-((N - 1) * Pas) ^ 2)) * 22081 / 15120
S = S + (Exp(-(2 * Pas) ^ 2) + Exp(-((N - 2) * Pas) ^ 2)) * 54851 / 120960
S = S + (Exp(-(3 * Pas) ^ 2) + Exp(-((N - 3) * Pas) ^ 2)) * 103 / 70
S = S + (Exp(-(4 * Pas) ^ 2) + Exp(-((N - 4) * Pas) ^ 2)) * 89437 / 120960
S = S + (Exp(-(5 * Pas) ^ 2) + Exp(-((N - 5) * Pas) ^ 2)) * 16367 / 15120
S = S + (Exp(-(6 * Pas) ^ 2) + Exp(-((N - 6) * Pas) ^ 2)) * 23917 / 24192
For J = 7 To N - 7
S = S + Exp(-(J * Pas) ^ 2)
Next J
Erf = S * Pas / Sqr(Atn(1#))
End Function
Sub exemple1()
Dim Dc As variant
Dim Cs As Integer
Dim a As Integer
Dim b As Integer
Dim N As Integer
cell1 = InputBox("Entrez le temps t")
a = InputBox("Entrez la borne inférieur de x")
b = InputBox("Entrez la borne supérieur de x")
N = b - a
Cs = InputBox("Entrez la concentration des chlorures libres")
Dc = InputBox("Entrez le coefficient")
ReDim X(1 To N + 1) As Variant
ReDim Cfc(1 To N + 1) As Variant
Worksheets(1).Range("c4").Value = cell1
Worksheets(1).Range("c6").Value = Dc
Worksheets(1).Range("c7").Value = Cs
For i = 1 To N + 1
X(i) = i - 1
Worksheets(1).Range("b11").Offset(i - 1, 0) = X(i)
Next i
For i = 1 To N + 1
Cfc(i) = Cs * (1 - Erf(X(i) / (2 * Sqr(Dc * t))))
Worksheets(1).Range("e11").Offset(i - 1, 0) = Cfc(i)
Next i
End Sub |
Partager