1#!/bin/bash 2 3typeset -i m2 m1 M n2 n1 N m n 4typeset -i MM=5 NN=5 5 6case $# in 7 0) : 8 ;; 9 1) MM=$1; NN=$1 10 ;; 11 2) MM=$1; NN=$2 12 ;; 13 *) echo 1>&2 "Usage: $0 [m [n]]" 14 ;; 15esac 16 17EMPTYLINE=: # echo 18echo 'a = { ' # mathematica 19 20let "M=1" # for (M=1; M<=MM; M++) 21while let "M <= MM"; do 22 let "N=1" # for (N=1; N<=NN; N++) 23 while let "N <= NN"; do 24 25 let "m1 = M - 1" 26 let "m2 = M + 1" 27 let "n1 = N - 1" 28 let "n2 = N + 1" 29 30 31 echo -n '{ ' # math 32 let "m=1" # for(m=1; m<=MM; m++) 33 while let "m <= MM"; do 34 let "n=1" # for(n=1; n<=NN; n++) 35 while let "n <= NN"; do 36 37 let "x = (m-m1)*(m-M)*(m-m2)" 38 let "y = (n-n1)*(n-N)*(n-n2)" 39 40 if let "(x*x + (n-N)*(n-N)) * ((m-M)*(m-M) + y*y)"; then 41 echo -n "0," 42 else # neighbour 43 echo -n "1," 44 fi 45 46 let "n=n+1" 47 done 48 echo -n " "; let "m=m+1" # ". " 49 done 50 echo '},' 51 52 53 let "N=N+1" 54 $EMPTYLINE 55 done 56 $EMPTYLINE 57 let "M=M+1" 58done 59 60echo '}' 61 62 63 64echo -n 'o = { ' 65let "m=1" 66while let "m <= MM"; do 67 let "n=1" 68 while let "n <= NN"; do 69 echo -n "1," 70 let "n=n+1" 71 done 72 let "m=m+1" 73done 74echo " }" 75 76 77echo 'x = LinearSolve[a,o] ' 78 79exit 0 80 81 82