Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
| Download
Views: 1794
Image: ubuntu2004
1
def generator():
2
t,y = var("t y")
3
yp = var("yp", latex_name="y'")
4
5
terms = [
6
randrange(1,6)*choice([-1,1])*t^randrange(2,5),
7
randrange(1,6)*choice([-1,1])*y^randrange(2,5),
8
randrange(1,6)*choice([-1,1])*t*y,
9
randrange(1,6)*choice([-1,1])*t*y^2,
10
randrange(1,6)*choice([-1,1])*t^2*y,
11
randrange(1,6)*choice([-1,1])*t^2*y^2
12
]
13
shuffle(terms)
14
f = sum(terms[:3])
15
# pick initial values
16
ivs = [-1,1]
17
shuffle(ivs)
18
t0,y0=ivs
19
f0 = f(t=t0,y=y0)
20
exact_ode = shuffled_equation(
21
terms[0].diff(t),
22
terms[1].diff(t),
23
terms[2].diff(t),
24
terms[0].diff(y)*yp,
25
terms[1].diff(y)*yp,
26
terms[2].diff(y)*yp,
27
)
28
nonexact_ode = shuffled_equation(
29
terms[0].diff(t),
30
terms[2].diff(t),
31
terms[4].diff(t),
32
terms[1].diff(y)*yp,
33
terms[3].diff(y)*yp,
34
terms[5].diff(y)*yp,
35
)
36
odes = [
37
exact_ode,
38
nonexact_ode,
39
]
40
shuffle(odes)
41
42
return {
43
"odes": odes,
44
"exact_ode": exact_ode,
45
"t0": t0,
46
"y0": y0,
47
"solution": (f==f0),
48
}
49
50