30 |
|
|
31 |
from Tkinter import * |
from Tkinter import * |
32 |
|
|
33 |
length= 150 |
length= 75 |
34 |
epsilon = 0.0001 |
epsilon = 0.0001 |
35 |
|
|
36 |
# print l |
# print l |
39 |
return (xright-xleft) * .5 * (rleft + rright) |
return (xright-xleft) * .5 * (rleft + rright) |
40 |
|
|
41 |
def L(xleft, xright, rleft, rright): |
def L(xleft, xright, rleft, rright): |
42 |
return sqrt((xright-xleft)**2 + yweight**2 * (rright-rleft)**2) |
return sqrt(((xright-xleft)**2) * xweight ** 2 + (rright-rleft)**2) |
43 |
|
|
44 |
def U(xleft, xright, rleft, rright): |
def U(xleft, xright, rleft, rright): |
45 |
|
|
100 |
for a in (0, 1): |
for a in (0, 1): |
101 |
x = s |
x = s |
102 |
y = r * a |
y = r * a |
103 |
z = 0 * r |
z = 0 * r + ind |
104 |
for i in range(0, s.shape[0]): |
for i in range(0, s.shape[0]): |
105 |
geomview.write("%s %s %s\n" % (x[i], y[i], z[i])) |
geomview.write("%s %s %s\n" % (x[i], y[i], z[i])) |
106 |
geomview.write("})\n") |
geomview.write("})\n") |
122 |
self.mom += g |
self.mom += g |
123 |
l = add.reduce(self.mom*self.mom) |
l = add.reduce(self.mom*self.mom) |
124 |
self.x += -self.step / sqrt(l) * self.mom |
self.x += -self.step / sqrt(l) * self.mom |
125 |
self.x = maximum(self.x, 0) |
# self.x = maximum(self.x, 0) |
126 |
self.mom *= self.brake |
self.mom *= self.brake |
127 |
|
|
128 |
sur = [] |
sur = [] |
129 |
for i in range(1, 2): |
for l in (1, 2, 3, 4): |
|
l = 2**i |
|
130 |
tl = l * length |
tl = l * length |
131 |
print "TL",tl |
print "TL",tl |
132 |
x = zeros(2*tl, Float) |
x = zeros(2*tl, Float) |
133 |
x[0:tl] = arange(tl) * 1.0 / tl * l |
x[0:tl] = arange(tl) * 1.0 / tl * l |
134 |
x[tl] = 0.5 |
x[tl] = 2 |
135 |
x[-1] = 0.5 |
x[-1] = 2 |
136 |
mi = MomGrad(minfunc, x) |
mi = MomGrad(minfunc, x) |
137 |
sur.append(mi) |
sur.append(mi) |
138 |
|
|
149 |
Frame.__init__(self, master) |
Frame.__init__(self, master) |
150 |
self.pack(expand=1, fill="both") |
self.pack(expand=1, fill="both") |
151 |
Button(self, text="Start", command = self.idle).pack() |
Button(self, text="Start", command = self.idle).pack() |
152 |
slider(self, "areaweight", DoubleVar(), 1, 0, 2); |
slider(self, "areaweight", DoubleVar(), 1, 0, 10); |
153 |
slider(self, "yweight", DoubleVar(), 1, 0, 2); |
slider(self, "xweight", DoubleVar(), 1, 0, 10); |
154 |
|
|
155 |
def idle(self): |
def idle(self): |
156 |
print "Start idle" |
print "Start idle" |
157 |
global areaweight |
global areaweight |
158 |
global yweight |
global xweight |
159 |
for i in range(0, len(sur)): |
for i in range(0, len(sur)): |
160 |
areaweight = ui.areaweight.get() |
areaweight = ui.areaweight.get() |
161 |
yweight = ui.yweight.get() |
xweight = ui.xweight.get() |
162 |
for rou in range(0,100): sur[i].round() |
for rou in range(0,100): sur[i].round() |
163 |
print "Pot:",sur[i].u |
print "Pot:",sur[i].u |
164 |
wmesh(i, sur[i].x[0:sur[i].x.shape[0]/2], sur[i].x[sur[i].x.shape[0]/2:]) |
wmesh(i, sur[i].x[0:sur[i].x.shape[0]/2], sur[i].x[sur[i].x.shape[0]/2:]) |