Line | |
---|
1 | #!/bin/bash
|
---|
2 |
|
---|
3 | typeset -i m2 m1 M n2 n1 N m n
|
---|
4 | typeset -i MM=5 NN=5
|
---|
5 |
|
---|
6 | case $# 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 | ;;
|
---|
15 | esac
|
---|
16 |
|
---|
17 | EMPTYLINE=: # echo
|
---|
18 | echo 'a = { ' # mathematica
|
---|
19 |
|
---|
20 | let "M=1" # for (M=1; M<=MM; M++)
|
---|
21 | while 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"
|
---|
58 | done
|
---|
59 |
|
---|
60 | echo '}'
|
---|
61 |
|
---|
62 |
|
---|
63 |
|
---|
64 | echo -n 'o = { '
|
---|
65 | let "m=1"
|
---|
66 | while 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"
|
---|
73 | done
|
---|
74 | echo " }"
|
---|
75 |
|
---|
76 |
|
---|
77 | echo 'x = LinearSolve[a,o] '
|
---|
78 |
|
---|
79 | exit 0
|
---|
80 |
|
---|
81 |
|
---|
Note:
See
TracBrowser
for help on using the repository browser.