Numerical integration: Difference between revisions

Content added Content deleted
(Add J)
(→‎{{header|J}}: Extend examples)
Line 842: Line 842:
size * +/ 2 u\ a + size * i.>:steps
size * +/ 2 u\ a + size * i.>:steps
)
)

simpson=: adverb define
rectangle=: adverb define
(6 %~ [: +/ 4&*@u@-:@(+/) , u) y
u -: +/ y
)
)


Line 851: Line 851:
)
)


rectangle=: adverb define
simpson=: adverb define
u -: +/ y
(6 %~ [: +/ 4&*@u@-:@(+/) , u) y
)</lang>
)</lang>
'''Example usage'''<br>

Integrate <code>square</code> (<code>*:</code>) from 0 to pi in 10 steps using various methods.
'''Example usage'''
<lang j>
<lang j>
*: rectangle integrate 0 1p1 10
10.3095869962
*: trapezium integrate 0 1p1 10
10.3871026879
*: simpson integrate 0 1p1 10
*: simpson integrate 0 1p1 10
10.3354255601
10.3354255601
</lang>
</lang>
Integrate <code>sin</code> from 0 to pi in 10 steps using various methods.

<lang j>
sin=: 1&o.
sin rectangle integrate 0 1p1 10
2.00824840791
sin trapezium integrate 0 1p1 10
1.98352353751
sin simpson integrate 0 1p1 10
2.00000678444
</lang>
Note that J has a primitive verb <code>p..</code> for integrating polynomials. For example the integral of <math>x^2</math> (which can be described in terms of its coefficients as <code>0 0 1</code>) is:
<lang> 0 p.. 0 0 1
0 0 0 0.333333333333
0 p.. 0 0 1x NB. or using rationals
0 0 0 1r3</lang>
That is <math>0x^0 + 1x^1 + 0x^2 + 0.3333x^3</math>


=={{header|Java}}==
=={{header|Java}}==