mirror of https://github.com/n-hys/bash.git
82 lines
1.2 KiB
Bash
82 lines
1.2 KiB
Bash
#!/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
|
|
|
|
|