NB. Picard iteration NB.Usage: * (1;2) picard0 1r3 1r3;0 3 NB.Usage: *_1 integral_f (1;2) picard0 1r3 1r3;0 3 NB. ---utils-------------------- diag=:(<0 1)&|: pp=: +//.@(*/) NB. study aid NB. --------------------- p0_sub=:3 : '*/~y' NB. outer products p1_sub=:3 : '+//. p0_sub y' NB. */ -> select oblic sub p2_sub=: ,@(~./.)@(+/~) NB. outer products of plus ->select sume NB. ------------------------------- picard01=: 3 : 0 NB. calc and integral fn ^2 NB. a=. 1 1r3 2r15 1r63; 1 3 5 7 'A0 B0'=. y TMP2=: (2 x: p1_sub A0),. B1=. p2_sub B0 (>: B1),.~(({."1 TMP2),.(1{"1 TMP2) * >: {:"1 TMP2) NB. integral ) picard0=: 4 : 0 NB. (1;2) picard0 1r3 1r3;0 3 'A0 B0'=. y 'C0 D0'=: x TMP2=: (2 x: p1_sub A0),. B1=. p2_sub B0 TMP21=: TMP2, (2 x: C0), D0 NB. add x TMP22=: (/:{:"1 TMP21){TMP21 NB. sort by order integral_sub0 TMP22 ) integral_sub0=: 3 : '(>:{:"1 y),.~(({."1 y),.(1{"1 y)*>:{:"1 y)' integral_f=: 4 : 0 NB. Usage:_1 integral_f (1;2) picard0 1r3 1r3;0 3 TEISUU=.- +/ (TMP1=._2 x: 2{."1 y) * _1 ^ {:"1 y (TEISUU,0) ,TMP1,.{:"1 y )