Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
3774 views
ubuntu2004
1
def generator():
2
t = var("t")
3
c1 = var("c_1")
4
c2 = var("c_2")
5
i = var('i')
6
k1,k2,k3 = var("k_1 k_2 k_3")
7
y,yp,ypp,yppp = mi_vars("y","y'","y''","y'''")
8
odes = []
9
10
# pick a,b for (D-a)^2y+b^2=y''-2ay'+a^2+b^2=0
11
a = randrange(1,6)*choice([-1,1])
12
b = randrange(1,6)
13
ode = (shuffled_equation(ypp,-2*a*yp,(a^2+b^2)*y)*randrange(2,4))
14
ode_sol = (y==exp(a*t)*(k1*cos(b*t)+k2*sin(b*t)))
15
complex_sol = (y==c1*e^(a*t+b*i*t)+c2*e^(a*t-b*i*t))
16
odes.append({"ode":ode,"sol":ode_sol,"complex":complex_sol})
17
18
# pick c for (D-c)^2y=0
19
c = randrange(1,11)*choice([-1,1])
20
ode = (shuffled_equation(ypp,-2*c*yp,c^2*y)*randrange(2,4))
21
ode_sol = (y==k2*exp(c*t)+k1*t*exp(c*t))
22
odes.append({"ode":ode,"sol":ode_sol})
23
24
# pick a,b for D(D-a)(D-b)y=0
25
a = randrange(1,6)*choice([-1,1])
26
b=a
27
while b==a:
28
b = randrange(1,6)*choice([-1,1])
29
ode = (shuffled_equation(yppp,(-a-b)*ypp,a*b*yp)*randrange(2,4))
30
ode_sol = (y==k2*exp(a*t)+k1*exp(b*t)+k3)
31
odes.append({"ode":ode,"sol":ode_sol})
32
33
shuffle(odes)
34
35
return {
36
"odes": odes,
37
}
38