#!/bin/bash typeset -i m2 m1 M n2 n1 N m n typeset -i MM=5 NN=5 case $# in 0) : ;; 1) MM=$1; NN=$1 ;; 2) MM=$1; NN=$2 ;; *) echo 1>&2 "Usage: $0 [m [n]]" ;; esac EMPTYLINE=: # echo echo 'a = { ' # mathematica let "M=1" # for (M=1; M<=MM; M++) while let "M <= MM"; do let "N=1" # for (N=1; N<=NN; N++) while let "N <= NN"; do let "m1 = M - 1" let "m2 = M + 1" let "n1 = N - 1" let "n2 = N + 1" echo -n '{ ' # math let "m=1" # for(m=1; m<=MM; m++) while let "m <= MM"; do let "n=1" # for(n=1; n<=NN; n++) while let "n <= NN"; do let "x = (m-m1)*(m-M)*(m-m2)" let "y = (n-n1)*(n-N)*(n-n2)" if let "(x*x + (n-N)*(n-N)) * ((m-M)*(m-M) + y*y)"; then echo -n "0," else # neighbour echo -n "1," fi let "n=n+1" done echo -n " "; let "m=m+1" # ". " done echo '},' let "N=N+1" $EMPTYLINE done $EMPTYLINE let "M=M+1" done echo '}' echo -n 'o = { ' let "m=1" while let "m <= MM"; do let "n=1" while let "n <= NN"; do echo -n "1," let "n=n+1" done let "m=m+1" done echo " }" echo 'x = LinearSolve[a,o] ' exit 0