Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
| Download
Views: 1794
Image: ubuntu2004
1
def generator():
2
t = var("t")
3
c1 = var("c_1")
4
c2 = var("c_2")
5
k1 = var("k_1")
6
k2 = var("k_2")
7
d1,d2 = var("d1 d2")
8
if choice([True,False]):
9
x,xp,xpp = mi_vars("x","x'","x''")
10
y,yp,ypp = mi_vars("y","y'","y''")
11
else:
12
y,yp,ypp = mi_vars("x","x'","x''")
13
x,xp,xpp = mi_vars("y","y'","y''")
14
odes = []
15
16
# pick a,b for (D-a)^2y+b^2=y''-2ay'+a^2+b^2=0
17
a = randrange(1,6)*choice([-1,1])
18
b = randrange(1,6)
19
odes.append(shuffled_equation(xpp,-2*a*xp,(a^2+b^2)*x)*randrange(2,4))
20
xode_sol = (x==exp(a*t)*(d1*cos(b*t)+d2*sin(b*t)))
21
complex_sol = (x==c1*exp((a+b*i)*t)+c2*exp((a-b*i)*t))
22
23
# pick c for (D-a)^2y=0
24
c = randrange(1,11)*choice([-1,1])
25
odes.append(shuffled_equation(ypp,-2*c*yp,c^2*y)*randrange(2,4))
26
yode_sol = (y==k2*exp(c*t)+k1*t*exp(c*t))
27
28
shuffle(odes)
29
30
return {
31
"odes": odes,
32
"xode_sol": xode_sol,
33
"complex_sol": complex_sol,
34
"yode_sol": yode_sol,
35
}
36