How to correct them errors ?
Hi ! I've to type a code for a math project with SageMath but I don't know really how it works because I don't learnt to use it. So I already typed this (with the help of another people) and it returns them errors :/ Sorry for the indentation but on this website it's hard to put properly the code.
Code
# y[0] = X : – B - nuX - (lmd)cX
# y[1] = Y : (lmd)cX - (v + nu)Y
# y[2] = Z : (1 - p)vY - nuZ
# y[3] = A : pvY - (d + nu)A
# y[4] = lmd : ((beta)Y / (X + Y + Z))
# params[0] = nu : natural death rate == 0.03125
# params[1] = d : AIDS death rates == 1
# params[2] = B : immigration rate people likely == 13333.3
# params[3] = v : conversion rate HIV-> AIDS == 0.2
# params[4] = c : number of sexual partners == 4
# params[5] = p : infectious HIV-positive proportion == 0.3
# params[6] = beta : transmission probability == 0.014
# t : temps
# ----------
@interact
def interactive_function(nu = slider(0.01, 0.1, 0.005, default=0.03125),
d = slider(0, 1, 0.05, default=1),
B = slider(500, 30000, 250, default=13333),
v = slider(0, 1, 0.05, default=0.2),
c = slider(0, 50, 1, default=4),
p = slider(0, 1, 0.05, default=0.3),
beta = slider(0, 1, 0.002, default=0.014),):
def f_1(t,y,params) :
return [ -params[2]-params[0]*y[0]-y[4]*params[4]*y[0] , y[4]*params[4]*y[0]-(params[3]+params[0])*y[1], (1-params[5])*params[3]*y[1]-params[0]*y[2], params[5]*params[3]*y[1]-(params[1]+params[0])*y[3], (params[6]*y[1])/(y[0]+y[1]+y[2]) ]
T = ode_solver()
T.function = f_1
T.algorithm="rk8pd"
T.ode_solve( y_0=[lmd,0,1-lmd,0] , t_span=[0,150] , params=[nu,d,B,v,c,p,beta] , num_points=1000)
f = T.solution
X = [(x[0],x[1][0]) for x in f]
Y = [(x[0],x[1][1]) for x in f]
Z = [(x[0],x[1][2]) for x in f]
A = [(x[0],x[1][3]) for x in f]
lmd = [(x[0],x[1][4]) for x in f]
P1 = line(X, rgbcolor='green')
P2 = line(Y, rgbcolor='pink')
P3 = line(Z, rgbcolor='red')
P4 = line(A, rgbcolor='brown')
P5 = line(lmd, rgbcolor='green')
show(P1+P2+P3+P4+P5)
Errors
Interact state: {'c': 4, 'B': 51, 'd': 20, 'p': 6, 'beta': 7, 'v': 4, 'nu': 4}
---------------------------------------------------------------------------
UnboundLocalError Traceback (most recent call last)
<ipython-input-1-9ebe0a9051da> in <module>()
20 c = slider(Integer(0), Integer(50), Integer(1), default=Integer(4)),
21 p = slider(Integer(0), Integer(1), RealNumber('0.05'), default=RealNumber('0.3')),
---> 22 beta = slider(Integer(0), Integer(1), RealNumber('0.002'), default=RealNumber('0.014')),):
23
24 def f_1(t,y,params) :
/home/sc_serv/sagecell/misc.pyc in my_wrap(*args, **kwargs)
153 if len(kwargs)==0 and len(args)==1 and callable(func):
154 # call without parentheses
--> 155 return func(*args)
156 else:
157 ...
To display blocks of code, either indent them with 4 spaces, or select the corresponding lines and click the "code" button (the icon with '101 010').
Can you edit your question to do that?
Never mind, I did it.