Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,33 @@
|
|||
rules =
|
||||
left_rect: (f, x, h) -> f(x)
|
||||
mid_rect: (f, x, h) -> f(x+h/2)
|
||||
right_rect: (f, x, h) -> f(x+h)
|
||||
trapezium: (f, x, h) -> (f(x) + f(x+h)) / 2
|
||||
simpson: (f, x, h) -> (f(x) + 4 * f(x + h/2) + f(x+h)) / 6
|
||||
|
||||
functions =
|
||||
cube: (x) -> x*x*x
|
||||
reciprocal: (x) -> 1/x
|
||||
identity: (x) -> x
|
||||
|
||||
sum = (list) -> list.reduce ((a, b) -> a+b), 0
|
||||
|
||||
integrate = (f, a, b, steps, meth) ->
|
||||
h = (b-a) / steps
|
||||
h * sum(meth(f, a+i*h, h) for i in [0...steps])
|
||||
|
||||
# Tests
|
||||
tests = [
|
||||
[0, 1, 100, 'cube']
|
||||
[1, 100, 1000, 'reciprocal']
|
||||
[0, 5000, 5000000, 'identity']
|
||||
[0, 6000, 6000000, 'identity']
|
||||
]
|
||||
|
||||
for test in tests
|
||||
[a, b, steps, func_name] = test
|
||||
func = functions[func_name]
|
||||
console.log "-- tests for #{func_name} with #{steps} steps from #{a} to #{b}"
|
||||
for rule_name, rule of rules
|
||||
result = integrate func, a, b, steps, rule
|
||||
console.log rule_name, result
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
> coffee numerical_integration.coffee
|
||||
-- tests for cube with 100 steps from 0 to 1
|
||||
left_rect 0.24502500000000005
|
||||
mid_rect 0.24998750000000006
|
||||
right_rect 0.25502500000000006
|
||||
trapezium 0.250025
|
||||
simpson 0.25
|
||||
-- tests for reciprocal with 1000 steps from 1 to 100
|
||||
left_rect 4.65499105751468
|
||||
mid_rect 4.604762548678376
|
||||
right_rect 4.55698105751468
|
||||
trapezium 4.605986057514676
|
||||
simpson 4.605170384957133
|
||||
-- tests for identity with 5000000 steps from 0 to 5000
|
||||
left_rect 12499997.5
|
||||
mid_rect 12500000
|
||||
right_rect 12500002.5
|
||||
trapezium 12500000
|
||||
simpson 12500000
|
||||
-- tests for identity with 6000000 steps from 0 to 6000
|
||||
left_rect 17999997.000000004
|
||||
mid_rect 17999999.999999993
|
||||
right_rect 18000003.000000004
|
||||
trapezium 17999999.999999993
|
||||
simpson 17999999.999999993
|
||||
Loading…
Add table
Add a link
Reference in a new issue