yms-kan 0.0.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- yms_kan/KANLayer.py +364 -0
- yms_kan/LBFGS.py +492 -0
- yms_kan/MLP.py +361 -0
- yms_kan/MultKAN.py +3085 -0
- yms_kan/Symbolic_KANLayer.py +270 -0
- yms_kan/__init__.py +4 -0
- yms_kan/compiler.py +498 -0
- yms_kan/experiment.py +50 -0
- yms_kan/feynman.py +739 -0
- yms_kan/hypothesis.py +695 -0
- yms_kan/spline.py +144 -0
- yms_kan/tool.py +304 -0
- yms_kan/train_eval_utils.py +175 -0
- yms_kan/utils.py +661 -0
- yms_kan/version.py +1 -0
- yms_kan-0.0.1.dist-info/METADATA +11 -0
- yms_kan-0.0.1.dist-info/RECORD +20 -0
- yms_kan-0.0.1.dist-info/WHEEL +5 -0
- yms_kan-0.0.1.dist-info/licenses/LICENSE +21 -0
- yms_kan-0.0.1.dist-info/top_level.txt +1 -0
yms_kan/feynman.py
ADDED
@@ -0,0 +1,739 @@
|
|
1
|
+
from sympy import *
|
2
|
+
import torch
|
3
|
+
|
4
|
+
|
5
|
+
def get_feynman_dataset(name):
|
6
|
+
|
7
|
+
global symbols
|
8
|
+
|
9
|
+
tpi = torch.tensor(torch.pi)
|
10
|
+
|
11
|
+
if name == 'test':
|
12
|
+
symbol = x, y = symbols('x, y')
|
13
|
+
expr = (x+y) * sin(exp(2*y))
|
14
|
+
f = lambda x: (x[:,[0]] + x[:,[1]])*torch.sin(torch.exp(2*x[:,[1]]))
|
15
|
+
ranges = [-1,1]
|
16
|
+
|
17
|
+
if name == 'I.6.20a' or name == 1:
|
18
|
+
symbol = theta = symbols('theta')
|
19
|
+
symbol = [symbol]
|
20
|
+
expr = exp(-theta**2/2)/sqrt(2*pi)
|
21
|
+
f = lambda x: torch.exp(-x[:,[0]]**2/2)/torch.sqrt(2*tpi)
|
22
|
+
ranges = [[-3,3]]
|
23
|
+
|
24
|
+
if name == 'I.6.20' or name == 2:
|
25
|
+
symbol = theta, sigma = symbols('theta sigma')
|
26
|
+
expr = exp(-theta**2/(2*sigma**2))/sqrt(2*pi*sigma**2)
|
27
|
+
f = lambda x: torch.exp(-x[:,[0]]**2/(2*x[:,[1]]**2))/torch.sqrt(2*tpi*x[:,[1]]**2)
|
28
|
+
ranges = [[-1,1],[0.5,2]]
|
29
|
+
|
30
|
+
if name == 'I.6.20b' or name == 3:
|
31
|
+
symbol = theta, theta1, sigma = symbols('theta theta1 sigma')
|
32
|
+
expr = exp(-(theta-theta1)**2/(2*sigma**2))/sqrt(2*pi*sigma**2)
|
33
|
+
f = lambda x: torch.exp(-(x[:,[0]]-x[:,[1]])**2/(2*x[:,[2]]**2))/torch.sqrt(2*tpi*x[:,[2]]**2)
|
34
|
+
ranges = [[-1.5,1.5],[-1.5,1.5],[0.5,2]]
|
35
|
+
|
36
|
+
if name == 'I.8.4' or name == 4:
|
37
|
+
symbol = x1, x2, y1, y2 = symbols('x1 x2 y1 y2')
|
38
|
+
expr = sqrt((x2-x1)**2+(y2-y1)**2)
|
39
|
+
f = lambda x: torch.sqrt((x[:,[1]]-x[:,[0]])**2+(x[:,[3]]-x[:,[2]])**2)
|
40
|
+
ranges = [[-1,1],[-1,1],[-1,1],[-1,1]]
|
41
|
+
|
42
|
+
if name == 'I.9.18' or name == 5:
|
43
|
+
symbol = G, m1, m2, x1, x2, y1, y2, z1, z2 = symbols('G m1 m2 x1 x2 y1 y2 z1 z2')
|
44
|
+
expr = G*m1*m2/((x2-x1)**2+(y2-y1)**2+(z2-z1)**2)
|
45
|
+
f = lambda x: x[:,[0]]*x[:,[1]]*x[:,[2]]/((x[:,[3]]-x[:,[4]])**2+(x[:,[5]]-x[:,[6]])**2+(x[:,[7]]-x[:,[8]])**2)
|
46
|
+
ranges = [[-1,1],[-1,1],[-1,1],[-1,-0.5],[0.5,1],[-1,-0.5],[0.5,1],[-1,-0.5],[0.5,1]]
|
47
|
+
|
48
|
+
if name == 'I.10.7' or name == 6:
|
49
|
+
symbol = m0, v, c = symbols('m0 v c')
|
50
|
+
expr = m0/sqrt(1-v**2/c**2)
|
51
|
+
f = lambda x: x[:,[0]]/torch.sqrt(1-x[:,[1]]**2/x[:,[2]]**2)
|
52
|
+
ranges = [[0,1],[0,1],[1,2]]
|
53
|
+
|
54
|
+
if name == 'I.11.19' or name == 7:
|
55
|
+
symbol = x1, y1, x2, y2, x3, y3 = symbols('x1 y1 x2 y2 x3 y3')
|
56
|
+
expr = x1*y1 + x2*y2 + x3*y3
|
57
|
+
f = lambda x: x[:,[0]]*x[:,[1]] + x[:,[2]]*x[:,[3]] + x[:,[4]]*x[:,[5]]
|
58
|
+
ranges = [-1,1]
|
59
|
+
|
60
|
+
if name == 'I.12.1' or name == 8:
|
61
|
+
symbol = mu, Nn = symbols('mu N_n')
|
62
|
+
expr = mu * Nn
|
63
|
+
f = lambda x: x[:,[0]]*x[:,[1]]
|
64
|
+
ranges = [-1,1]
|
65
|
+
|
66
|
+
if name == 'I.12.2' or name == 9:
|
67
|
+
symbol = q1, q2, eps, r = symbols('q1 q2 epsilon r')
|
68
|
+
expr = q1*q2/(4*pi*eps*r**2)
|
69
|
+
f = lambda x: x[:,[0]]*x[:,[1]]/(4*tpi*x[:,[2]]*x[:,[3]]**2)
|
70
|
+
ranges = [[-1,1],[-1,1],[0.5,2],[0.5,2]]
|
71
|
+
|
72
|
+
if name == 'I.12.4' or name == 10:
|
73
|
+
symbol = q1, eps, r = symbols('q1 epsilon r')
|
74
|
+
expr = q1/(4*pi*eps*r**2)
|
75
|
+
f = lambda x: x[:,[0]]/(4*tpi*x[:,[1]]*x[:,[2]]**2)
|
76
|
+
ranges = [[-1,1],[0.5,2],[0.5,2]]
|
77
|
+
|
78
|
+
if name == 'I.12.5' or name == 11:
|
79
|
+
symbol = q2, Ef = symbols('q2, E_f')
|
80
|
+
expr = q2*Ef
|
81
|
+
f = lambda x: x[:,[0]]*x[:,[1]]
|
82
|
+
ranges = [-1,1]
|
83
|
+
|
84
|
+
if name == 'I.12.11' or name == 12:
|
85
|
+
symbol = q, Ef, B, v, theta = symbols('q E_f B v theta')
|
86
|
+
expr = q*(Ef + B*v*sin(theta))
|
87
|
+
f = lambda x: x[:,[0]]*(x[:,[1]]+x[:,[2]]*x[:,[3]]*torch.sin(x[:,[4]]))
|
88
|
+
ranges = [[-1,1],[-1,1],[-1,1],[-1,1],[0,2*tpi]]
|
89
|
+
|
90
|
+
if name == 'I.13.4' or name == 13:
|
91
|
+
symbol = m, v, u, w = symbols('m u v w')
|
92
|
+
expr = 1/2*m*(v**2+u**2+w**2)
|
93
|
+
f = lambda x: 1/2*x[:,[0]]*(x[:,[1]]**2+x[:,[2]]**2+x[:,[3]]**2)
|
94
|
+
ranges = [[-1,1],[-1,1],[-1,1],[-1,1]]
|
95
|
+
|
96
|
+
if name == 'I.13.12' or name == 14:
|
97
|
+
symbol = G, m1, m2, r1, r2 = symbols('G m1 m2 r1 r2')
|
98
|
+
expr = G*m1*m2*(1/r2-1/r1)
|
99
|
+
f = lambda x: x[:,[0]]*x[:,[1]]*x[:,[2]]*(1/x[:,[4]]-1/x[:,[3]])
|
100
|
+
ranges = [[0,1],[0,1],[0,1],[0.5,2],[0.5,2]]
|
101
|
+
|
102
|
+
if name == 'I.14.3' or name == 15:
|
103
|
+
symbol = m, g, z = symbols('m g z')
|
104
|
+
expr = m*g*z
|
105
|
+
f = lambda x: x[:,[0]]*x[:,[1]]*x[:,[2]]
|
106
|
+
ranges = [[0,1],[0,1],[-1,1]]
|
107
|
+
|
108
|
+
if name == 'I.14.4' or name == 16:
|
109
|
+
symbol = ks, x = symbols('k_s x')
|
110
|
+
expr = 1/2*ks*x**2
|
111
|
+
f = lambda x: 1/2*x[:,[0]]*x[:,[1]]**2
|
112
|
+
ranges = [[0,1],[-1,1]]
|
113
|
+
|
114
|
+
if name == 'I.15.3x' or name == 17:
|
115
|
+
symbol = x, u, t, c = symbols('x u t c')
|
116
|
+
expr = (x-u*t)/sqrt(1-u**2/c**2)
|
117
|
+
f = lambda x: (x[:,[0]] - x[:,[1]]*x[:,[2]])/torch.sqrt(1-x[:,[1]]**2/x[:,[3]]**2)
|
118
|
+
ranges = [[-1,1],[-1,1],[-1,1],[1,2]]
|
119
|
+
|
120
|
+
if name == 'I.15.3t' or name == 18:
|
121
|
+
symbol = t, u, x, c = symbols('t u x c')
|
122
|
+
expr = (t-u*x/c**2)/sqrt(1-u**2/c**2)
|
123
|
+
f = lambda x: (x[:,[0]] - x[:,[1]]*x[:,[2]]/x[:,[3]]**2)/torch.sqrt(1-x[:,[1]]**2/x[:,[3]]**2)
|
124
|
+
ranges = [[-1,1],[-1,1],[-1,1],[1,2]]
|
125
|
+
|
126
|
+
if name == 'I.15.10' or name == 19:
|
127
|
+
symbol = m0, v, c = symbols('m0 v c')
|
128
|
+
expr = m0*v/sqrt(1-v**2/c**2)
|
129
|
+
f = lambda x: x[:,[0]]*x[:,[1]]/torch.sqrt(1-x[:,[1]]**2/x[:,[2]]**2)
|
130
|
+
ranges = [[-1,1],[-0.9,0.9],[1.1,2]]
|
131
|
+
|
132
|
+
if name == 'I.16.6' or name == 20:
|
133
|
+
symbol = u, v, c = symbols('u v c')
|
134
|
+
expr = (u+v)/(1+u*v/c**2)
|
135
|
+
f = lambda x: x[:,[0]]*x[:,[1]]/(1+x[:,[0]]*x[:,[1]]/x[:,[2]]**2)
|
136
|
+
ranges = [[-0.8,0.8],[-0.8,0.8],[1,2]]
|
137
|
+
|
138
|
+
if name == 'I.18.4' or name == 21:
|
139
|
+
symbol = m1, r1, m2, r2 = symbols('m1 r1 m2 r2')
|
140
|
+
expr = (m1*r1+m2*r2)/(m1+m2)
|
141
|
+
f = lambda x: (x[:,[0]]*x[:,[1]]+x[:,[2]]*x[:,[3]])/(x[:,[0]]+x[:,[2]])
|
142
|
+
ranges = [[0.5,1],[-1,1],[0.5,1],[-1,1]]
|
143
|
+
|
144
|
+
if name == 'I.18.4' or name == 22:
|
145
|
+
symbol = r, F, theta = symbols('r F theta')
|
146
|
+
expr = r*F*sin(theta)
|
147
|
+
f = lambda x: x[:,[0]]*x[:,[1]]*torch.sin(x[:,[2]])
|
148
|
+
ranges = [[-1,1],[-1,1],[0,2*tpi]]
|
149
|
+
|
150
|
+
if name == 'I.18.16' or name == 23:
|
151
|
+
symbol = m, r, v, theta = symbols('m r v theta')
|
152
|
+
expr = m*r*v*sin(theta)
|
153
|
+
f = lambda x: x[:,[0]]*x[:,[1]]*x[:,[2]]*torch.sin(x[:,[3]])
|
154
|
+
ranges = [[-1,1],[-1,1],[-1,1],[0,2*tpi]]
|
155
|
+
|
156
|
+
if name == 'I.24.6' or name == 24:
|
157
|
+
symbol = m, omega, omega0, x = symbols('m omega omega_0 x')
|
158
|
+
expr = 1/4*m*(omega**2+omega0**2)*x**2
|
159
|
+
f = lambda x: 1/4*x[:,[0]]*(x[:,[1]]**2+x[:,[2]]**2)*x[:,[3]]**2
|
160
|
+
ranges = [[0,1],[-1,1],[-1,1],[-1,1]]
|
161
|
+
|
162
|
+
if name == 'I.25.13' or name == 25:
|
163
|
+
symbol = q, C = symbols('q C')
|
164
|
+
expr = q/C
|
165
|
+
f = lambda x: x[:,[0]]/x[:,[1]]
|
166
|
+
ranges = [[-1,1],[0.5,2]]
|
167
|
+
|
168
|
+
if name == 'I.26.2' or name == 26:
|
169
|
+
symbol = n, theta2 = symbols('n theta2')
|
170
|
+
expr = asin(n*sin(theta2))
|
171
|
+
f = lambda x: torch.arcsin(x[:,[0]]*torch.sin(x[:,[1]]))
|
172
|
+
ranges = [[0,0.99],[0,2*tpi]]
|
173
|
+
|
174
|
+
if name == 'I.27.6' or name == 27:
|
175
|
+
symbol = d1, d2, n = symbols('d1 d2 n')
|
176
|
+
expr = 1/(1/d1+n/d2)
|
177
|
+
f = lambda x: 1/(1/x[:,[0]]+x[:,[2]]/x[:,[1]])
|
178
|
+
ranges = [[0.5,2],[1,2],[0.5,2]]
|
179
|
+
|
180
|
+
if name == 'I.29.4' or name == 28:
|
181
|
+
symbol = omega, c = symbols('omega c')
|
182
|
+
expr = omega/c
|
183
|
+
f = lambda x: x[:,[0]]/x[:,[1]]
|
184
|
+
ranges = [[0,1],[0.5,2]]
|
185
|
+
|
186
|
+
if name == 'I.29.16' or name == 29:
|
187
|
+
symbol = x1, x2, theta1, theta2 = symbols('x1 x2 theta1 theta2')
|
188
|
+
expr = sqrt(x1**2+x2**2-2*x1*x2*cos(theta1-theta2))
|
189
|
+
f = lambda x: torch.sqrt(x[:,[0]]**2+x[:,[1]]**2-2*x[:,[0]]*x[:,[1]]*torch.cos(x[:,[2]]-x[:,[3]]))
|
190
|
+
ranges = [[-1,1],[-1,1],[0,2*tpi],[0,2*tpi]]
|
191
|
+
|
192
|
+
if name == 'I.30.3' or name == 30:
|
193
|
+
symbol = I0, n, theta = symbols('I_0 n theta')
|
194
|
+
expr = I0 * sin(n*theta/2)**2 / sin(theta/2) ** 2
|
195
|
+
f = lambda x: x[:,[0]] * torch.sin(x[:,[1]]*x[:,[2]]/2)**2 / torch.sin(x[:,[2]]/2)**2
|
196
|
+
ranges = [[0,1],[0,4],[0.4*tpi,1.6*tpi]]
|
197
|
+
|
198
|
+
if name == 'I.30.5' or name == 31:
|
199
|
+
symbol = lamb, n, d = symbols('lambda n d')
|
200
|
+
expr = asin(lamb/(n*d))
|
201
|
+
f = lambda x: torch.arcsin(x[:,[0]]/(x[:,[1]]*x[:,[2]]))
|
202
|
+
ranges = [[-1,1],[1,1.5],[1,1.5]]
|
203
|
+
|
204
|
+
if name == 'I.32.5' or name == 32:
|
205
|
+
symbol = q, a, eps, c = symbols('q a epsilon c')
|
206
|
+
expr = q**2*a**2/(eps*c**3)
|
207
|
+
f = lambda x: x[:,[0]]**2*x[:,[1]]**2/(x[:,[2]]*x[:,[3]]**3)
|
208
|
+
ranges = [[-1,1],[-1,1],[0.5,2],[0.5,2]]
|
209
|
+
|
210
|
+
if name == 'I.32.17' or name == 33:
|
211
|
+
symbol = eps, c, Ef, r, omega, omega0 = symbols('epsilon c E_f r omega omega_0')
|
212
|
+
expr = nsimplify((1/2*eps*c*Ef**2)*(8*pi*r**2/3)*(omega**4/(omega**2-omega0**2)**2))
|
213
|
+
f = lambda x: (1/2*x[:,[0]]*x[:,[1]]*x[:,[2]]**2)*(8*tpi*x[:,[3]]**2/3)*(x[:,[4]]**4/(x[:,[4]]**2-x[:,[5]]**2)**2)
|
214
|
+
ranges = [[0,1],[0,1],[-1,1],[0,1],[0,1],[1,2]]
|
215
|
+
|
216
|
+
if name == 'I.34.8' or name == 34:
|
217
|
+
symbol = q, V, B, p = symbols('q V B p')
|
218
|
+
expr = q*V*B/p
|
219
|
+
f = lambda x: x[:,[0]]*x[:,[1]]*x[:,[2]]/x[:,[3]]
|
220
|
+
ranges = [[-1,1],[-1,1],[-1,1],[0.5,2]]
|
221
|
+
|
222
|
+
if name == 'I.34.10' or name == 35:
|
223
|
+
symbol = omega0, v, c = symbols('omega_0 v c')
|
224
|
+
expr = omega0/(1-v/c)
|
225
|
+
f = lambda x: x[:,[0]]/(1-x[:,[1]]/x[:,[2]])
|
226
|
+
ranges = [[0,1],[0,0.9],[1.1,2]]
|
227
|
+
|
228
|
+
if name == 'I.34.14' or name == 36:
|
229
|
+
symbol = omega0, v, c = symbols('omega_0 v c')
|
230
|
+
expr = omega0 * (1+v/c)/sqrt(1-v**2/c**2)
|
231
|
+
f = lambda x: x[:,[0]]*(1+x[:,[1]]/x[:,[2]])/torch.sqrt(1-x[:,[1]]**2/x[:,[2]]**2)
|
232
|
+
ranges = [[0,1],[-0.9,0.9],[1.1,2]]
|
233
|
+
|
234
|
+
if name == 'I.34.27' or name == 37:
|
235
|
+
symbol = hbar, omega = symbols('hbar omega')
|
236
|
+
expr = hbar * omega
|
237
|
+
f = lambda x: x[:,[0]]*x[:,[1]]
|
238
|
+
ranges = [[-1,1],[-1,1]]
|
239
|
+
|
240
|
+
if name == 'I.37.4' or name == 38:
|
241
|
+
symbol = I1, I2, delta = symbols('I_1 I_2 delta')
|
242
|
+
expr = I1 + I2 + 2*sqrt(I1*I2)*cos(delta)
|
243
|
+
f = lambda x: x[:,[0]] + x[:,[1]] + 2*torch.sqrt(x[:,[0]]*x[:,[1]])*torch.cos(x[:,[2]])
|
244
|
+
ranges = [[0.1,1],[0.1,1],[0,2*tpi]]
|
245
|
+
|
246
|
+
if name == 'I.38.12' or name == 39:
|
247
|
+
symbol = eps, hbar, m, q = symbols('epsilon hbar m q')
|
248
|
+
expr = 4*pi*eps*hbar**2/(m*q**2)
|
249
|
+
f = lambda x: 4*tpi*x[:,[0]]*x[:,[1]]**2/(x[:,[2]]*x[:,[3]]**2)
|
250
|
+
ranges = [[0,1],[0,1],[0.5,2],[0.5,2]]
|
251
|
+
|
252
|
+
if name == 'I.39.10' or name == 40:
|
253
|
+
symbol = pF, V = symbols('p_F V')
|
254
|
+
expr = 3/2 * pF * V
|
255
|
+
f = lambda x: 3/2 * x[:,[0]] * x[:,[1]]
|
256
|
+
ranges = [[0,1],[0,1]]
|
257
|
+
|
258
|
+
if name == 'I.39.11' or name == 41:
|
259
|
+
symbol = gamma, pF, V = symbols('gamma p_F V')
|
260
|
+
expr = pF * V/(gamma - 1)
|
261
|
+
f = lambda x: 1/(x[:,[0]]-1) * x[:,[1]] * x[:,[2]]
|
262
|
+
ranges = [[1.5,3],[0,1],[0,1]]
|
263
|
+
|
264
|
+
if name == 'I.39.22' or name == 42:
|
265
|
+
symbol = n, kb, T, V = symbols('n k_b T V')
|
266
|
+
expr = n*kb*T/V
|
267
|
+
f = lambda x: x[:,[0]]*x[:,[1]]*x[:,[2]]/x[:,[3]]
|
268
|
+
ranges = [[0,1],[0,1],[0,1],[0.5,2]]
|
269
|
+
|
270
|
+
if name == 'I.40.1' or name == 43:
|
271
|
+
symbol = n0, m, g, x, kb, T = symbols('n_0 m g x k_b T')
|
272
|
+
expr = n0 * exp(-m*g*x/(kb*T))
|
273
|
+
f = lambda x: x[:,[0]] * torch.exp(-x[:,[1]]*x[:,[2]]*x[:,[3]]/(x[:,[4]]*x[:,[5]]))
|
274
|
+
ranges = [[0,1],[-1,1],[-1,1],[-1,1],[1,2],[1,2]]
|
275
|
+
|
276
|
+
if name == 'I.41.16' or name == 44:
|
277
|
+
symbol = hbar, omega, c, kb, T = symbols('hbar omega c k_b T')
|
278
|
+
expr = hbar * omega**3/(pi**2*c**2*(exp(hbar*omega/(kb*T))-1))
|
279
|
+
f = lambda x: x[:,[0]]*x[:,[1]]**3/(tpi**2*x[:,[2]]**2*(torch.exp(x[:,[0]]*x[:,[1]]/(x[:,[3]]*x[:,[4]]))-1))
|
280
|
+
ranges = [[0.5,1],[0.5,1],[0.5,2],[0.5,2],[0.5,2]]
|
281
|
+
|
282
|
+
if name == 'I.43.16' or name == 45:
|
283
|
+
symbol = mu, q, Ve, d = symbols('mu q V_e d')
|
284
|
+
expr = mu*q*Ve/d
|
285
|
+
f = lambda x: x[:,[0]]*x[:,[1]]*x[:,[2]]/x[:,[3]]
|
286
|
+
ranges = [[0,1],[0,1],[0,1],[0.5,2]]
|
287
|
+
|
288
|
+
if name == 'I.43.31' or name == 46:
|
289
|
+
symbol = mu, kb, T = symbols('mu k_b T')
|
290
|
+
expr = mu*kb*T
|
291
|
+
f = lambda x: x[:,[0]]*x[:,[1]]*x[:,[2]]
|
292
|
+
ranges = [[0,1],[0,1],[0,1]]
|
293
|
+
|
294
|
+
if name == 'I.43.43' or name == 47:
|
295
|
+
symbol = gamma, kb, v, A = symbols('gamma k_b v A')
|
296
|
+
expr = kb*v/A/(gamma-1)
|
297
|
+
f = lambda x: 1/(x[:,[0]]-1)*x[:,[1]]*x[:,[2]]/x[:,[3]]
|
298
|
+
ranges = [[1.5,3],[0,1],[0,1],[0.5,2]]
|
299
|
+
|
300
|
+
if name == 'I.44.4' or name == 48:
|
301
|
+
symbol = n, kb, T, V1, V2 = symbols('n k_b T V_1 V_2')
|
302
|
+
expr = n*kb*T*log(V2/V1)
|
303
|
+
f = lambda x: x[:,[0]]*x[:,[1]]*x[:,[2]]*torch.log(x[:,[4]]/x[:,[3]])
|
304
|
+
ranges = [[0,1],[0,1],[0,1],[0.5,2],[0.5,2]]
|
305
|
+
|
306
|
+
if name == 'I.47.23' or name == 49:
|
307
|
+
symbol = gamma, p, rho = symbols('gamma p rho')
|
308
|
+
expr = sqrt(gamma*p/rho)
|
309
|
+
f = lambda x: torch.sqrt(x[:,[0]]*x[:,[1]]/x[:,[2]])
|
310
|
+
ranges = [[0.1,1],[0.1,1],[0.5,2]]
|
311
|
+
|
312
|
+
if name == 'I.48.20' or name == 50:
|
313
|
+
symbol = m, v, c = symbols('m v c')
|
314
|
+
expr = m*c**2/sqrt(1-v**2/c**2)
|
315
|
+
f = lambda x: x[:,[0]]*x[:,[2]]**2/torch.sqrt(1-x[:,[1]]**2/x[:,[2]]**2)
|
316
|
+
ranges = [[0,1],[-0.9,0.9],[1.1,2]]
|
317
|
+
|
318
|
+
if name == 'I.50.26' or name == 51:
|
319
|
+
symbol = x1, alpha, omega, t = symbols('x_1 alpha omega t')
|
320
|
+
expr = x1*(cos(omega*t)+alpha*cos(omega*t)**2)
|
321
|
+
f = lambda x: x[:,[0]]*(torch.cos(x[:,[2]]*x[:,[3]])+x[:,[1]]*torch.cos(x[:,[2]]*x[:,[3]])**2)
|
322
|
+
ranges = [[0,1],[0,1],[0,2*tpi],[0,1]]
|
323
|
+
|
324
|
+
if name == 'II.2.42' or name == 52:
|
325
|
+
symbol = kappa, T1, T2, A, d = symbols('kappa T_1 T_2 A d')
|
326
|
+
expr = kappa*(T2-T1)*A/d
|
327
|
+
f = lambda x: x[:,[0]]*(x[:,[2]]-x[:,[1]])*x[:,[3]]/x[:,[4]]
|
328
|
+
ranges = [[0,1],[0,1],[0,1],[0,1],[0.5,2]]
|
329
|
+
|
330
|
+
if name == 'II.3.24' or name == 53:
|
331
|
+
symbol = P, r = symbols('P r')
|
332
|
+
expr = P/(4*pi*r**2)
|
333
|
+
f = lambda x: x[:,[0]]/(4*tpi*x[:,[1]]**2)
|
334
|
+
ranges = [[0,1],[0.5,2]]
|
335
|
+
|
336
|
+
if name == 'II.4.23' or name == 54:
|
337
|
+
symbol = q, eps, r = symbols('q epsilon r')
|
338
|
+
expr = q/(4*pi*eps*r)
|
339
|
+
f = lambda x: x[:,[0]]/(4*tpi*x[:,[1]]*x[:,[2]])
|
340
|
+
ranges = [[0,1],[0.5,2],[0.5,2]]
|
341
|
+
|
342
|
+
if name == 'II.6.11' or name == 55:
|
343
|
+
symbol = eps, pd, theta, r = symbols('epsilon p_d theta r')
|
344
|
+
expr = 1/(4*pi*eps)*pd*cos(theta)/r**2
|
345
|
+
f = lambda x: 1/(4*tpi*x[:,[0]])*x[:,[1]]*torch.cos(x[:,[2]])/x[:,[3]]**2
|
346
|
+
ranges = [[0.5,2],[0,1],[0,2*tpi],[0.5,2]]
|
347
|
+
|
348
|
+
if name == 'II.6.15a' or name == 56:
|
349
|
+
symbol = eps, pd, z, x, y, r = symbols('epsilon p_d z x y r')
|
350
|
+
expr = 3/(4*pi*eps)*pd*z/r**5*sqrt(x**2+y**2)
|
351
|
+
f = lambda x: 3/(4*tpi*x[:,[0]])*x[:,[1]]*x[:,[2]]/x[:,[5]]**5*torch.sqrt(x[:,[3]]**2+x[:,[4]]**2)
|
352
|
+
ranges = [[0.5,2],[0,1],[0,1],[0,1],[0,1],[0.5,2]]
|
353
|
+
|
354
|
+
if name == 'II.6.15b' or name == 57:
|
355
|
+
symbol = eps, pd, r, theta = symbols('epsilon p_d r theta')
|
356
|
+
expr = 3/(4*pi*eps)*pd/r**3*cos(theta)*sin(theta)
|
357
|
+
f = lambda x: 3/(4*tpi*x[:,[0]])*x[:,[1]]/x[:,[2]]**3*torch.cos(x[:,[3]])*torch.sin(x[:,[3]])
|
358
|
+
ranges = [[0.5,2],[0,1],[0.5,2],[0,2*tpi]]
|
359
|
+
|
360
|
+
if name == 'II.8.7' or name == 58:
|
361
|
+
symbol = q, eps, d = symbols('q epsilon d')
|
362
|
+
expr = 3/5*q**2/(4*pi*eps*d)
|
363
|
+
f = lambda x: 3/5*x[:,[0]]**2/(4*tpi*x[:,[1]]*x[:,[2]])
|
364
|
+
ranges = [[0,1],[0.5,2],[0.5,2]]
|
365
|
+
|
366
|
+
if name == 'II.8.31' or name == 59:
|
367
|
+
symbol = eps, Ef = symbols('epsilon E_f')
|
368
|
+
expr = 1/2*eps*Ef**2
|
369
|
+
f = lambda x: 1/2*x[:,[0]]*x[:,[1]]**2
|
370
|
+
ranges = [[0,1],[0,1]]
|
371
|
+
|
372
|
+
if name == 'I.10.9' or name == 60:
|
373
|
+
symbol = sigma, eps, chi = symbols('sigma epsilon chi')
|
374
|
+
expr = sigma/eps/(1+chi)
|
375
|
+
f = lambda x: x[:,[0]]/x[:,[1]]/(1+x[:,[2]])
|
376
|
+
ranges = [[0,1],[0.5,2],[0,1]]
|
377
|
+
|
378
|
+
if name == 'II.11.3' or name == 61:
|
379
|
+
symbol = q, Ef, m, omega0, omega = symbols('q E_f m omega_o omega')
|
380
|
+
expr = q*Ef/(m*(omega0**2-omega**2))
|
381
|
+
f = lambda x: x[:,[0]]*x[:,[1]]/(x[:,[2]]*(x[:,[3]]**2-x[:,[4]]**2))
|
382
|
+
ranges = [[0,1],[0,1],[0.5,2],[1.5,3],[0,1]]
|
383
|
+
|
384
|
+
if name == 'II.11.17' or name == 62:
|
385
|
+
symbol = n0, pd, Ef, theta, kb, T = symbols('n_0 p_d E_f theta k_b T')
|
386
|
+
expr = n0*(1+pd*Ef*cos(theta)/(kb*T))
|
387
|
+
f = lambda x: x[:,[0]]*(1+x[:,[1]]*x[:,[2]]*torch.cos(x[:,[3]])/(x[:,[4]]*x[:,[5]]))
|
388
|
+
ranges = [[0,1],[-1,1],[-1,1],[0,2*tpi],[0.5,2],[0.5,2]]
|
389
|
+
|
390
|
+
|
391
|
+
if name == 'II.11.20' or name == 63:
|
392
|
+
symbol = n, pd, Ef, kb, T = symbols('n p_d E_f k_b T')
|
393
|
+
expr = n*pd**2*Ef/(3*kb*T)
|
394
|
+
f = lambda x: x[:,[0]]*x[:,[1]]**2*x[:,[2]]/(3*x[:,[3]]*x[:,[4]])
|
395
|
+
ranges = [[0,1],[0,1],[0,1],[0.5,2],[0.5,2]]
|
396
|
+
|
397
|
+
if name == 'II.11.27' or name == 64:
|
398
|
+
symbol = n, alpha, eps, Ef = symbols('n alpha epsilon E_f')
|
399
|
+
expr = n*alpha/(1-n*alpha/3)*eps*Ef
|
400
|
+
f = lambda x: x[:,[0]]*x[:,[1]]/(1-x[:,[0]]*x[:,[1]]/3)*x[:,[2]]*x[:,[3]]
|
401
|
+
ranges = [[0,1],[0,2],[0,1],[0,1]]
|
402
|
+
|
403
|
+
if name == 'II.11.28' or name == 65:
|
404
|
+
symbol = n, alpha = symbols('n alpha')
|
405
|
+
expr = 1 + n*alpha/(1-n*alpha/3)
|
406
|
+
f = lambda x: 1 + x[:,[0]]*x[:,[1]]/(1-x[:,[0]]*x[:,[1]]/3)
|
407
|
+
ranges = [[0,1],[0,2]]
|
408
|
+
|
409
|
+
if name == 'II.13.17' or name == 66:
|
410
|
+
symbol = eps, c, l, r = symbols('epsilon c l r')
|
411
|
+
expr = 1/(4*pi*eps*c**2)*(2*l/r)
|
412
|
+
f = lambda x: 1/(4*tpi*x[:,[0]]*x[:,[1]]**2)*(2*x[:,[2]]/x[:,[3]])
|
413
|
+
ranges = [[0.5,2],[0.5,2],[0,1],[0.5,2]]
|
414
|
+
|
415
|
+
if name == 'II.13.23' or name == 67:
|
416
|
+
symbol = rho, v, c = symbols('rho v c')
|
417
|
+
expr = rho/sqrt(1-v**2/c**2)
|
418
|
+
f = lambda x: x[:,[0]]/torch.sqrt(1-x[:,[1]]**2/x[:,[2]]**2)
|
419
|
+
ranges = [[0,1],[0,1],[1,2]]
|
420
|
+
|
421
|
+
if name == 'II.13.34' or name == 68:
|
422
|
+
symbol = rho, v, c = symbols('rho v c')
|
423
|
+
expr = rho*v/sqrt(1-v**2/c**2)
|
424
|
+
f = lambda x: x[:,[0]]*x[:,[1]]/torch.sqrt(1-x[:,[1]]**2/x[:,[2]]**2)
|
425
|
+
ranges = [[0,1],[0,1],[1,2]]
|
426
|
+
|
427
|
+
if name == 'II.15.4' or name == 69:
|
428
|
+
symbol = muM, B, theta = symbols('mu_M B theta')
|
429
|
+
expr = - muM * B * cos(theta)
|
430
|
+
f = lambda x: - x[:,[0]]*x[:,[1]]*torch.cos(x[:,[2]])
|
431
|
+
ranges = [[0,1],[0,1],[0,2*tpi]]
|
432
|
+
|
433
|
+
if name == 'II.15.5' or name == 70:
|
434
|
+
symbol = pd, Ef, theta = symbols('p_d E_f theta')
|
435
|
+
expr = - pd * Ef * cos(theta)
|
436
|
+
f = lambda x: - x[:,[0]]*x[:,[1]]*torch.cos(x[:,[2]])
|
437
|
+
ranges = [[0,1],[0,1],[0,2*tpi]]
|
438
|
+
|
439
|
+
if name == 'II.21.32' or name == 71:
|
440
|
+
symbol = q, eps, r, v, c = symbols('q epsilon r v c')
|
441
|
+
expr = q/(4*pi*eps*r*(1-v/c))
|
442
|
+
f = lambda x: x[:,[0]]/(4*tpi*x[:,[1]]*x[:,[2]]*(1-x[:,[3]]/x[:,[4]]))
|
443
|
+
ranges = [[0,1],[0.5,2],[0.5,2],[0,1],[1,2]]
|
444
|
+
|
445
|
+
if name == 'II.24.17' or name == 72:
|
446
|
+
symbol = omega, c, d = symbols('omega c d')
|
447
|
+
expr = sqrt(omega**2/c**2-pi**2/d**2)
|
448
|
+
f = lambda x: torch.sqrt(x[:,[0]]**2/x[:,[1]]**2-tpi**2/x[:,[2]]**2)
|
449
|
+
ranges = [[1,1.5],[0.75,1],[1*tpi,1.5*tpi]]
|
450
|
+
|
451
|
+
if name == 'II.27.16' or name == 73:
|
452
|
+
symbol = eps, c, Ef = symbols('epsilon c E_f')
|
453
|
+
expr = eps * c * Ef**2
|
454
|
+
f = lambda x: x[:,[0]]*x[:,[1]]*x[:,[2]]**2
|
455
|
+
ranges = [[0,1],[0,1],[-1,1]]
|
456
|
+
|
457
|
+
if name == 'II.27.18' or name == 74:
|
458
|
+
symbol = eps, Ef = symbols('epsilon E_f')
|
459
|
+
expr = eps * Ef**2
|
460
|
+
f = lambda x: x[:,[0]]*x[:,[1]]**2
|
461
|
+
ranges = [[0,1],[-1,1]]
|
462
|
+
|
463
|
+
if name == 'II.34.2a' or name == 75:
|
464
|
+
symbol = q, v, r = symbols('q v r')
|
465
|
+
expr = q*v/(2*pi*r)
|
466
|
+
f = lambda x: x[:,[0]]*x[:,[1]]/(2*tpi*x[:,[2]])
|
467
|
+
ranges = [[0,1],[0,1],[0.5,2]]
|
468
|
+
|
469
|
+
if name == 'II.34.2' or name == 76:
|
470
|
+
symbol = q, v, r = symbols('q v r')
|
471
|
+
expr = q*v*r/2
|
472
|
+
f = lambda x: x[:,[0]]*x[:,[1]]*x[:,[2]]/2
|
473
|
+
ranges = [[0,1],[0,1],[0,1]]
|
474
|
+
|
475
|
+
if name == 'II.34.11' or name == 77:
|
476
|
+
symbol = g, q, B, m = symbols('g q B m')
|
477
|
+
expr = g*q*B/(2*m)
|
478
|
+
f = lambda x: x[:,[0]]*x[:,[1]]*x[:,[2]]/(2*x[:,[3]])
|
479
|
+
ranges = [[0,1],[0,1],[0,1],[0.5,2]]
|
480
|
+
|
481
|
+
if name == 'II.34.29a' or name == 78:
|
482
|
+
symbol = q, h, m = symbols('q h m')
|
483
|
+
expr = q*h/(4*pi*m)
|
484
|
+
f = lambda x: x[:,[0]]*x[:,[1]]/(4*tpi*x[:,[2]])
|
485
|
+
ranges = [[0,1],[0,1],[0.5,2]]
|
486
|
+
|
487
|
+
if name == 'II.34.29b' or name == 79:
|
488
|
+
symbol = g, mu, B, J, hbar = symbols('g mu B J hbar')
|
489
|
+
expr = g*mu*B*J/hbar
|
490
|
+
f = lambda x: x[:,[0]]*x[:,[1]]*x[:,[2]]*x[:,[3]]/x[:,[4]]
|
491
|
+
ranges = [[0,1],[0,1],[0,1],[0,1],[0.5,2]]
|
492
|
+
|
493
|
+
if name == 'II.35.18' or name == 80:
|
494
|
+
symbol = n0, mu, B, kb, T = symbols('n0 mu B k_b T')
|
495
|
+
expr = n0/(exp(mu*B/(kb*T))+exp(-mu*B/(kb*T)))
|
496
|
+
f = lambda x: x[:,[0]]/(torch.exp(x[:,[1]]*x[:,[2]]/(x[:,[3]]*x[:,[4]]))+torch.exp(-x[:,[1]]*x[:,[2]]/(x[:,[3]]*x[:,[4]])))
|
497
|
+
ranges = [[0,1],[0,1],[0,1],[0.5,2],[0.5,2]]
|
498
|
+
|
499
|
+
if name == 'II.35.21' or name == 81:
|
500
|
+
symbol = n, mu, B, kb, T = symbols('n mu B k_b T')
|
501
|
+
expr = n*mu*tanh(mu*B/(kb*T))
|
502
|
+
f = lambda x: x[:,[0]]*x[:,[1]]*torch.tanh(x[:,[1]]*x[:,[2]]/(x[:,[3]]*x[:,[4]]))
|
503
|
+
ranges = [[0,1],[0,1],[0,1],[0.5,2],[0.5,2]]
|
504
|
+
|
505
|
+
if name == 'II.36.38' or name == 82:
|
506
|
+
symbol = mu, B, kb, T, alpha, M, eps, c = symbols('mu B k_b T alpha M epsilon c')
|
507
|
+
expr = mu*B/(kb*T) + mu*alpha*M/(eps*c**2*kb*T)
|
508
|
+
f = lambda x: x[:,[0]]*x[:,[1]]/(x[:,[2]]*x[:,[3]]) + x[:,[0]]*x[:,[4]]*x[:,[5]]/(x[:,[6]]*x[:,[7]]**2*x[:,[2]]*x[:,[3]])
|
509
|
+
ranges = [[0,1],[0,1],[0.5,2],[0.5,2],[0,1],[0,1],[0.5,2],[0.5,2]]
|
510
|
+
|
511
|
+
if name == 'II.37.1' or name == 83:
|
512
|
+
symbol = mu, chi, B = symbols('mu chi B')
|
513
|
+
expr = mu*(1+chi)*B
|
514
|
+
f = lambda x: x[:,[0]]*(1+x[:,[1]])*x[:,[2]]
|
515
|
+
ranges = [[0,1],[0,1],[0,1]]
|
516
|
+
|
517
|
+
if name == 'II.38.3' or name == 84:
|
518
|
+
symbol = Y, A, x, d = symbols('Y A x d')
|
519
|
+
expr = Y*A*x/d
|
520
|
+
f = lambda x: x[:,[0]]*x[:,[1]]*x[:,[2]]/x[:,[3]]
|
521
|
+
ranges = [[0,1],[0,1],[0,1],[0.5,2]]
|
522
|
+
|
523
|
+
if name == 'II.38.14' or name == 85:
|
524
|
+
symbol = Y, sigma = symbols('Y sigma')
|
525
|
+
expr = Y/(2*(1+sigma))
|
526
|
+
f = lambda x: x[:,[0]]/(2*(1+x[:,[1]]))
|
527
|
+
ranges = [[0,1],[0,1]]
|
528
|
+
|
529
|
+
if name == 'III.4.32' or name == 86:
|
530
|
+
symbol = hbar, omega, kb, T = symbols('hbar omega k_b T')
|
531
|
+
expr = 1/(exp(hbar*omega/(kb*T))-1)
|
532
|
+
f = lambda x: 1/(torch.exp(x[:,[0]]*x[:,[1]]/(x[:,[2]]*x[:,[3]]))-1)
|
533
|
+
ranges = [[0.5,1],[0.5,1],[0.5,2],[0.5,2]]
|
534
|
+
|
535
|
+
if name == 'III.4.33' or name == 87:
|
536
|
+
symbol = hbar, omega, kb, T = symbols('hbar omega k_b T')
|
537
|
+
expr = hbar*omega/(exp(hbar*omega/(kb*T))-1)
|
538
|
+
f = lambda x: x[:,[0]]*x[:,[1]]/(torch.exp(x[:,[0]]*x[:,[1]]/(x[:,[2]]*x[:,[3]]))-1)
|
539
|
+
ranges = [[0,1],[0,1],[0.5,2],[0.5,2]]
|
540
|
+
|
541
|
+
if name == 'III.7.38' or name == 88:
|
542
|
+
symbol = mu, B, hbar = symbols('mu B hbar')
|
543
|
+
expr = 2*mu*B/hbar
|
544
|
+
f = lambda x: 2*x[:,[0]]*x[:,[1]]/x[:,[2]]
|
545
|
+
ranges = [[0,1],[0,1],[0.5,2]]
|
546
|
+
|
547
|
+
if name == 'III.8.54' or name == 89:
|
548
|
+
symbol = E, t, hbar = symbols('E t hbar')
|
549
|
+
expr = sin(E*t/hbar)**2
|
550
|
+
f = lambda x: torch.sin(x[:,[0]]*x[:,[1]]/x[:,[2]])**2
|
551
|
+
ranges = [[0,2*tpi],[0,1],[0.5,2]]
|
552
|
+
|
553
|
+
if name == 'III.9.52' or name == 90:
|
554
|
+
symbol = pd, Ef, t, hbar, omega, omega0 = symbols('p_d E_f t hbar omega omega_0')
|
555
|
+
expr = pd*Ef*t/hbar*sin((omega-omega0)*t/2)**2/((omega-omega0)*t/2)**2
|
556
|
+
f = lambda x: x[:,[0]]*x[:,[1]]*x[:,[2]]/x[:,[3]]*torch.sin((x[:,[4]]-x[:,[5]])*x[:,[2]]/2)**2/((x[:,[4]]-x[:,[5]])*x[:,[2]]/2)**2
|
557
|
+
ranges = [[0,1],[0,1],[0,1],[0.5,2],[0,tpi],[0,tpi]]
|
558
|
+
|
559
|
+
if name == 'III.10.19' or name == 91:
|
560
|
+
symbol = mu, Bx, By, Bz = symbols('mu B_x B_y B_z')
|
561
|
+
expr = mu*sqrt(Bx**2+By**2+Bz**2)
|
562
|
+
f = lambda x: x[:,[0]]*torch.sqrt(x[:,[1]]**2+x[:,[2]]**2+x[:,[3]]**2)
|
563
|
+
ranges = [[0,1],[0,1],[0,1],[0,1]]
|
564
|
+
|
565
|
+
if name == 'III.12.43' or name == 92:
|
566
|
+
symbol = n, hbar = symbols('n hbar')
|
567
|
+
expr = n * hbar
|
568
|
+
f = lambda x: x[:,[0]]*x[:,[1]]
|
569
|
+
ranges = [[0,1],[0,1]]
|
570
|
+
|
571
|
+
if name == 'III.13.18' or name == 93:
|
572
|
+
symbol = E, d, k, hbar = symbols('E d k hbar')
|
573
|
+
expr = 2*E*d**2*k/hbar
|
574
|
+
f = lambda x: 2*x[:,[0]]*x[:,[1]]**2*x[:,[2]]/x[:,[3]]
|
575
|
+
ranges = [[0,1],[0,1],[0,1],[0.5,2]]
|
576
|
+
|
577
|
+
if name == 'III.14.14' or name == 94:
|
578
|
+
symbol = I0, q, Ve, kb, T = symbols('I_0 q V_e k_b T')
|
579
|
+
expr = I0 * (exp(q*Ve/(kb*T))-1)
|
580
|
+
f = lambda x: x[:,[0]]*(torch.exp(x[:,[1]]*x[:,[2]]/(x[:,[3]]*x[:,[4]]))-1)
|
581
|
+
ranges = [[0,1],[0,1],[0,1],[0.5,2],[0.5,2]]
|
582
|
+
|
583
|
+
if name == 'III.15.12' or name == 95:
|
584
|
+
symbol = U, k, d = symbols('U k d')
|
585
|
+
expr = 2*U*(1-cos(k*d))
|
586
|
+
f = lambda x: 2*x[:,[0]]*(1-torch.cos(x[:,[1]]*x[:,[2]]))
|
587
|
+
ranges = [[0,1],[0,2*tpi],[0,1]]
|
588
|
+
|
589
|
+
if name == 'III.15.14' or name == 96:
|
590
|
+
symbol = hbar, E, d = symbols('hbar E d')
|
591
|
+
expr = hbar**2/(2*E*d**2)
|
592
|
+
f = lambda x: x[:,[0]]**2/(2*x[:,[1]]*x[:,[2]]**2)
|
593
|
+
ranges = [[0,1],[0.5,2],[0.5,2]]
|
594
|
+
|
595
|
+
if name == 'III.15.27' or name == 97:
|
596
|
+
symbol = alpha, n, d = symbols('alpha n d')
|
597
|
+
expr = 2*pi*alpha/(n*d)
|
598
|
+
f = lambda x: 2*tpi*x[:,[0]]/(x[:,[1]]*x[:,[2]])
|
599
|
+
ranges = [[0,1],[0.5,2],[0.5,2]]
|
600
|
+
|
601
|
+
if name == 'III.17.37' or name == 98:
|
602
|
+
symbol = beta, alpha, theta = symbols('beta alpha theta')
|
603
|
+
expr = beta * (1+alpha*cos(theta))
|
604
|
+
f = lambda x: x[:,[0]]*(1+x[:,[1]]*torch.cos(x[:,[2]]))
|
605
|
+
ranges = [[0,1],[0,1],[0,2*tpi]]
|
606
|
+
|
607
|
+
if name == 'III.19.51' or name == 99:
|
608
|
+
symbol = m, q, eps, hbar, n = symbols('m q epsilon hbar n')
|
609
|
+
expr = - m * q**4/(2*(4*pi*eps)**2*hbar**2)*1/n**2
|
610
|
+
f = lambda x: - x[:,[0]]*x[:,[1]]**4/(2*(4*tpi*x[:,[2]])**2*x[:,[3]]**2)*1/x[:,[4]]**2
|
611
|
+
ranges = [[0,1],[0,1],[0.5,2],[0.5,2],[0.5,2]]
|
612
|
+
|
613
|
+
if name == 'III.21.20' or name == 100:
|
614
|
+
symbol = rho, q, A, m = symbols('rho q A m')
|
615
|
+
expr = - rho*q*A/m
|
616
|
+
f = lambda x: - x[:,[0]]*x[:,[1]]*x[:,[2]]/x[:,[3]]
|
617
|
+
ranges = [[0,1],[0,1],[0,1],[0.5,2]]
|
618
|
+
|
619
|
+
if name == 'Rutherforld scattering' or name == 101:
|
620
|
+
symbol = Z1, Z2, alpha, hbar, c, E, theta = symbols('Z_1 Z_2 alpha hbar c E theta')
|
621
|
+
expr = (Z1*Z2*alpha*hbar*c/(4*E*sin(theta/2)**2))**2
|
622
|
+
f = lambda x: (x[:,[0]]*x[:,[1]]*x[:,[2]]*x[:,[3]]*x[:,[4]]/(4*x[:,[5]]*torch.sin(x[:,[6]]/2)**2))**2
|
623
|
+
ranges = [[0,1],[0,1],[0,1],[0,1],[0,1],[0.5,2],[0.1*tpi,0.9*tpi]]
|
624
|
+
|
625
|
+
if name == 'Friedman equation' or name == 102:
|
626
|
+
symbol = G, rho, kf, c, af = symbols('G rho k_f c a_f')
|
627
|
+
expr = sqrt(8*pi*G/3*rho-kf*c**2/af**2)
|
628
|
+
f = lambda x: torch.sqrt(8*tpi*x[:,[0]]/3*x[:,[1]] - x[:,[2]]*x[:,[3]]**2/x[:,[4]]**2)
|
629
|
+
ranges = [[1,2],[1,2],[0,1],[0,1],[1,2]]
|
630
|
+
|
631
|
+
if name == 'Compton scattering' or name == 103:
|
632
|
+
symbol = E, m, c, theta = symbols('E m c theta')
|
633
|
+
expr = E/(1+E/(m*c**2)*(1-cos(theta)))
|
634
|
+
f = lambda x: x[:,[0]]/(1+x[:,[0]]/(x[:,[1]]*x[:,[2]]**2)*(1-torch.cos(x[:,[3]])))
|
635
|
+
ranges = [[0,1],[0.5,2],[0.5,2],[0,2*tpi]]
|
636
|
+
|
637
|
+
if name == 'Radiated gravitational wave power' or name == 104:
|
638
|
+
symbol = G, c, m1, m2, r = symbols('G c m_1 m_2 r')
|
639
|
+
expr = -32/5*G**4/c**5*(m1*m2)**2*(m1+m2)/r**5
|
640
|
+
f = lambda x: -32/5*x[:,[0]]**4/x[:,[1]]**5*(x[:,[2]]*x[:,[3]])**2*(x[:,[2]]+x[:,[3]])/x[:,[4]]**5
|
641
|
+
ranges = [[0,1],[0.5,2],[0,1],[0,1],[0.5,2]]
|
642
|
+
|
643
|
+
if name == 'Relativistic aberration' or name == 105:
|
644
|
+
symbol = theta2, v, c = symbols('theta_2 v c')
|
645
|
+
expr = acos((cos(theta2)-v/c)/(1-v/c*cos(theta2)))
|
646
|
+
f = lambda x: torch.arccos((torch.cos(x[:,[0]])-x[:,[1]]/x[:,[2]])/(1-x[:,[1]]/x[:,[2]]*torch.cos(x[:,[0]])))
|
647
|
+
ranges = [[0,tpi],[0,1],[1,2]]
|
648
|
+
|
649
|
+
if name == 'N-slit diffraction' or name == 106:
|
650
|
+
symbol = I0, alpha, delta, N = symbols('I_0 alpha delta N')
|
651
|
+
expr = I0 * (sin(alpha/2)/(alpha/2)*sin(N*delta/2)/sin(delta/2))**2
|
652
|
+
f = lambda x: x[:,[0]] * (torch.sin(x[:,[1]]/2)/(x[:,[1]]/2)*torch.sin(x[:,[3]]*x[:,[2]]/2)/torch.sin(x[:,[2]]/2))**2
|
653
|
+
ranges = [[0,1],[0.1*tpi,0.9*tpi],[0.1*tpi,0.9*tpi],[0.5,1]]
|
654
|
+
|
655
|
+
if name == 'Goldstein 3.16' or name == 107:
|
656
|
+
symbol = m, E, U, L, r = symbols('m E U L r')
|
657
|
+
expr = sqrt(2/m*(E-U-L**2/(2*m*r**2)))
|
658
|
+
f = lambda x: torch.sqrt(2/x[:,[0]]*(x[:,[1]]-x[:,[2]]-x[:,[3]]**2/(2*x[:,[0]]*x[:,[4]]**2)))
|
659
|
+
ranges = [[1,2],[2,3],[0,1],[0,1],[1,2]]
|
660
|
+
|
661
|
+
if name == 'Goldstein 3.55' or name == 108:
|
662
|
+
symbol = m, kG, L, E, theta1, theta2 = symbols('m k_G L E theta_1 theta_2')
|
663
|
+
expr = m*kG/L**2*(1+sqrt(1+2*E*L**2/(m*kG**2))*cos(theta1-theta2))
|
664
|
+
f = lambda x: x[:,[0]]*x[:,[1]]/x[:,[2]]**2*(1+torch.sqrt(1+2*x[:,[3]]*x[:,[2]]**2/(x[:,[0]]*x[:,[1]]**2))*torch.cos(x[:,[4]]-x[:,[5]]))
|
665
|
+
ranges = [[0.5,2],[0.5,2],[0.5,2],[0,1],[0,2*tpi],[0,2*tpi]]
|
666
|
+
|
667
|
+
if name == 'Goldstein 3.64 (ellipse)' or name == 109:
|
668
|
+
symbol = d, alpha, theta1, theta2 = symbols('d alpha theta_1 theta_2')
|
669
|
+
expr = d*(1-alpha**2)/(1+alpha*cos(theta2-theta1))
|
670
|
+
f = lambda x: x[:,[0]]*(1-x[:,[1]]**2)/(1+x[:,[1]]*torch.cos(x[:,[2]]-x[:,[3]]))
|
671
|
+
ranges = [[0,1],[0,0.9],[0,2*tpi],[0,2*tpi]]
|
672
|
+
|
673
|
+
if name == 'Goldstein 3.74 (Kepler)' or name == 110:
|
674
|
+
symbol = d, G, m1, m2 = symbols('d G m_1 m_2')
|
675
|
+
expr = 2*pi*d**(3/2)/sqrt(G*(m1+m2))
|
676
|
+
f = lambda x: 2*tpi*x[:,[0]]**(3/2)/torch.sqrt(x[:,[1]]*(x[:,[2]]+x[:,[3]]))
|
677
|
+
ranges = [[0,1],[0.5,2],[0.5,2],[0.5,2]]
|
678
|
+
|
679
|
+
if name == 'Goldstein 3.99' or name == 111:
|
680
|
+
symbol = eps, E, L, m, Z1, Z2, q = symbols('epsilon E L m Z_1 Z_2 q')
|
681
|
+
expr = sqrt(1+2*eps**2*E*L**2/(m*(Z1*Z2*q**2)**2))
|
682
|
+
f = lambda x: torch.sqrt(1+2*x[:,[0]]**2*x[:,[1]]*x[:,[2]]**2/(x[:,[3]]*(x[:,[4]]*x[:,[5]]*x[:,[6]]**2)**2))
|
683
|
+
ranges = [[0,1],[0,1],[0,1],[0.5,2],[0.5,2],[0.5,2],[0.5,2]]
|
684
|
+
|
685
|
+
if name == 'Goldstein 8.56' or name == 112:
|
686
|
+
symbol = p, q, A, c, m, Ve = symbols('p q A c m V_e')
|
687
|
+
expr = sqrt((p-q*A)**2*c**2+m**2*c**4) + q*Ve
|
688
|
+
f = lambda x: torch.sqrt((x[:,[0]]-x[:,[1]]*x[:,[2]])**2*x[:,[3]]**2+x[:,[4]]**2*x[:,[3]]**4) + x[:,[1]]*x[:,[5]]
|
689
|
+
ranges = [0,1]
|
690
|
+
|
691
|
+
if name == 'Goldstein 12.80' or name == 113:
|
692
|
+
symbol = m, p, omega, x, alpha, y = symbols('m p omega x alpha y')
|
693
|
+
expr = 1/(2*m)*(p**2+m**2*omega**2*x**2*(1+alpha*y/x))
|
694
|
+
f = lambda x: 1/(2*x[:,[0]]) * (x[:,[1]]**2+x[:,[0]]**2*x[:,[2]]**2*x[:,[3]]**2*(1+x[:,[4]]*x[:,[3]]/x[:,[5]]))
|
695
|
+
ranges = [[0.5,2],[0,1],[0,1],[0,1],[0,1],[0.5,2]]
|
696
|
+
|
697
|
+
if name == 'Jackson 2.11' or name == 114:
|
698
|
+
symbol = q, eps, y, Ve, d = symbols('q epsilon y V_e d')
|
699
|
+
expr = q/(4*pi*eps*y**2)*(4*pi*eps*Ve*d-q*d*y**3/(y**2-d**2)**2)
|
700
|
+
f = lambda x: x[:,[0]]/(4*tpi*x[:,[1]]*x[:,x[:,[2]]]**2)*(4*tpi*x[:,[1]]*x[:,[3]]*x[:,[4]]-x[:,[0]]*x[:,[4]]*x[:,[2]]**3/(x[:,[2]]**2-x[:,[4]]**2)**2)
|
701
|
+
ranges = [[0,1],[0.5,2],[1,2],[0,1],[0,1]]
|
702
|
+
|
703
|
+
if name == 'Jackson 3.45' or name == 115:
|
704
|
+
symbol = q, r, d, alpha = symbols('q r d alpha')
|
705
|
+
expr = q/sqrt(r**2+d**2-2*d*r*cos(alpha))
|
706
|
+
f = lambda x: x[:,[0]]/torch.sqrt(x[:,[1]]**2+x[:,[2]]**2-2*x[:,[1]]*x[:,[2]]*torch.cos(x[:,[3]]))
|
707
|
+
ranges = [[0,1],[0,1],[0,1],[0,2*tpi]]
|
708
|
+
|
709
|
+
if name == 'Jackson 4.60' or name == 116:
|
710
|
+
symbol = Ef, theta, alpha, d, r = symbols('E_f theta alpha d r')
|
711
|
+
expr = Ef * cos(theta) * ((alpha-1)/(alpha+2) * d**3/r**2 - r)
|
712
|
+
f = lambda x: x[:,[0]] * torch.cos(x[:,[1]]) * ((x[:,[2]]-1)/(x[:,[2]]+2) * x[:,[3]]**3/x[:,[4]]**2 - x[:,[4]])
|
713
|
+
ranges = [[0,1],[0,2*tpi],[0,2],[0,1],[0.5,2]]
|
714
|
+
|
715
|
+
if name == 'Jackson 11.38 (Doppler)' or name == 117:
|
716
|
+
symbol = omega, v, c, theta = symbols('omega v c theta')
|
717
|
+
expr = sqrt(1-v**2/c**2)/(1+v/c*cos(theta))*omega
|
718
|
+
f = lambda x: torch.sqrt(1-x[:,[1]]**2/x[:,[2]]**2)/(1+x[:,[1]]/x[:,[2]]*torch.cos(x[:,[3]]))*x[:,[0]]
|
719
|
+
ranges = [[0,1],[0,1],[1,2],[0,2*tpi]]
|
720
|
+
|
721
|
+
if name == 'Weinberg 15.2.1' or name == 118:
|
722
|
+
symbol = G, c, kf, af, H = symbols('G c k_f a_f H')
|
723
|
+
expr = 3/(8*pi*G)*(c**2*kf/af**2+H**2)
|
724
|
+
f = lambda x: 3/(8*tpi*x[:,[0]])*(x[:,[1]]**2*x[:,[2]]/x[:,[3]]**2+x[:,[4]]**2)
|
725
|
+
ranges = [[0.5,2],[0,1],[0,1],[0.5,2],[0,1]]
|
726
|
+
|
727
|
+
if name == 'Weinberg 15.2.2' or name == 119:
|
728
|
+
symbol = G, c, kf, af, H, alpha = symbols('G c k_f a_f H alpha')
|
729
|
+
expr = -1/(8*pi*G)*(c**4*kf/af**2+c**2*H**2*(1-2*alpha))
|
730
|
+
f = lambda x: -1/(8*tpi*x[:,[0]])*(x[:,[1]]**4*x[:,[2]]/x[:,[3]]**2 + x[:,[1]]**2*x[:,[4]]**2*(1-2*x[:,[5]]))
|
731
|
+
ranges = [[0.5,2],[0,1],[0,1],[0.5,2],[0,1],[0,1]]
|
732
|
+
|
733
|
+
if name == 'Schwarz 13.132 (Klein-Nishina)' or name == 120:
|
734
|
+
symbol = alpha, hbar, m, c, omega0, omega, theta = symbols('alpha hbar m c omega_0 omega theta')
|
735
|
+
expr = pi*alpha**2*hbar**2/m**2/c**2*(omega0/omega)**2*(omega0/omega+omega/omega0-sin(theta)**2)
|
736
|
+
f = lambda x: tpi*x[:,[0]]**2*x[:,[1]]**2/x[:,[2]]**2/x[:,[3]]**2*(x[:,[4]]/x[:,[5]])**2*(x[:,[4]]/x[:,[5]]+x[:,[5]]/x[:,[4]]-torch.sin(x[:,[6]])**2)
|
737
|
+
ranges = [[0,1],[0,1],[0.5,2],[0.5,2],[0.5,2],[0.5,2],[0,2*tpi]]
|
738
|
+
|
739
|
+
return symbol, expr, f, ranges
|