Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
56
Task/Numerical-integration/VBA/numerical-integration.vba
Normal file
56
Task/Numerical-integration/VBA/numerical-integration.vba
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
Option Explicit
|
||||
Option Base 1
|
||||
|
||||
Function Quad(ByVal f As String, ByVal a As Double, _
|
||||
ByVal b As Double, ByVal n As Long, _
|
||||
ByVal u As Variant, ByVal v As Variant) As Double
|
||||
Dim m As Long, h As Double, x As Double, s As Double, i As Long, j As Long
|
||||
m = UBound(u)
|
||||
h = (b - a) / n
|
||||
s = 0#
|
||||
For i = 1 To n
|
||||
x = a + (i - 1) * h
|
||||
For j = 1 To m
|
||||
s = s + v(j) * Application.Run(f, x + h * u(j))
|
||||
Next
|
||||
Next
|
||||
Quad = s * h
|
||||
End Function
|
||||
|
||||
Function f1fun(x As Double) As Double
|
||||
f1fun = x ^ 3
|
||||
End Function
|
||||
|
||||
Function f2fun(x As Double) As Double
|
||||
f2fun = 1 / x
|
||||
End Function
|
||||
|
||||
Function f3fun(x As Double) As Double
|
||||
f3fun = x
|
||||
End Function
|
||||
|
||||
Sub Test()
|
||||
Dim fun, f, coef, c
|
||||
Dim i As Long, j As Long, s As Double
|
||||
|
||||
fun = Array(Array("f1fun", 0, 1, 100, 1 / 4), _
|
||||
Array("f2fun", 1, 100, 1000, Log(100)), _
|
||||
Array("f3fun", 0, 5000, 50000, 5000 ^ 2 / 2), _
|
||||
Array("f3fun", 0, 6000, 60000, 6000 ^ 2 / 2))
|
||||
|
||||
coef = Array(Array("Left rect. ", Array(0, 1), Array(1, 0)), _
|
||||
Array("Right rect. ", Array(0, 1), Array(0, 1)), _
|
||||
Array("Midpoint ", Array(0.5), Array(1)), _
|
||||
Array("Trapez. ", Array(0, 1), Array(0.5, 0.5)), _
|
||||
Array("Simpson ", Array(0, 0.5, 1), Array(1 / 6, 4 / 6, 1 / 6)))
|
||||
|
||||
For i = 1 To UBound(fun)
|
||||
f = fun(i)
|
||||
Debug.Print f(1)
|
||||
For j = 1 To UBound(coef)
|
||||
c = coef(j)
|
||||
s = Quad(f(1), f(2), f(3), f(4), c(2), c(3))
|
||||
Debug.Print " " + c(1) + ": ", s, (s - f(5)) / f(5)
|
||||
Next j
|
||||
Next i
|
||||
End Sub
|
||||
Loading…
Add table
Add a link
Reference in a new issue