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 |
||
) |
) |
||
rectangle=: adverb define |
|||
u -: +/ y |
|||
) |
) |
||
Line 851: | Line 851: | ||
) |
) |
||
simpson=: adverb define |
|||
(6 %~ [: +/ 4&*@u@-:@(+/) , u) y |
|||
)</lang> |
)</lang> |
||
⚫ | |||
Integrate <code>square</code> (<code>*:</code>) from 0 to pi in 10 steps using various methods. |
|||
⚫ | |||
<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}}== |