Anonymous user
Numerical integration: Difference between revisions
m
→{{header|PureBasic}}: Update & fix
(Ouch. Most examples were wrong. Testing specs are probably needed. If someone could covert those to mathML, I'd be appreciative.) |
m (→{{header|PureBasic}}: Update & fix) |
||
Line 1,411:
<pre>105.333</pre>
=={{header|PureBasic}}==
▲<lang PureBasic>Procedure.d leftRect(a.d, b.d, n.d)
Procedure.d LeftIntegral(Start, Stop, Steps, *func.TestFunction)
Protected.d
▲ sum + h * (f(x))
▲ Wend
ProcedureReturn sum
EndProcedure
Procedure.d
Protected.d
▲ While x <= b - h
Wend
ProcedureReturn sum
EndProcedure
Procedure.d
Protected.d
▲ While x <= b - h
Wend
ProcedureReturn sum
EndProcedure
Procedure.d
Protected.d
Protected i
For i = 1 To n - 1▼
Next
ProcedureReturn h / 2 * sum▼
Next▼
EndProcedure
Procedure.d simpson(a.d, b.d, n.d)▼
▲ For i = 0 To n - 1
ProcedureReturn n*n*n
▲ sum1 + f(a + h * i + h / 2)
▲ Next
Procedure.d test2(n.d)
▲ sum2 + f(a + h * i)
EndProcedure
; = 0.25
Debug LeftIntegral(0,1,100,@Test1())
Debug RightItegral(0,1,100,@Test1())
Debug Trapezium (0,1,100,@Test1())
Debug Simpson (0,1,100,@Test1())
; = ~4.60517...
Debug LeftIntegral(1,100,1000,@Test2())
Debug RightItegral(1,100,1000,@Test2())
Debug Trapezium (1,100,1000,@Test2())
Debug Simpson (1,100,1000,@Test2())</lang>
<pre>0.2353220100000005
0.24502500000000052
0.25002500000000044
0.25000000000000006
4.6540000764434195
▲ ProcedureReturn h / 6 * (f(a) + f(b) + 4 * sum1 + 2 * sum2)
4.5559910575146834
▲EndProcedure</lang>
4.6059860575146745
4.6051703849571446</pre>
=={{header|Python}}==
|