Undefined function or variable 'x'. Where the error are?
29 views (last 30 days)
Show older comments
Katarina Santiago
on 16 Dec 2017
Answered: Star Strider
on 16 Dec 2017
Hi,
The matlab point this error: Error in crime_back_forw11_12 (line 93) n22 = -m-beta*((lambda1(j)-h2*n11)-(lambda2(j)-h2*n12))-alpha*(0.5*(x1(j)+x1(j-1)))*(u1(j))*((lambda1(j)-h2*n11)-(lambda2(j)-h2*n12))+alpha*(0.5*(x1(j)+x(j-1)))*((lambda1(j)-h2*n11)-(lambda2(j)-h2*n12))+(u2(j))*gama*(lambda2(j)-h2*n12-lambda3(j)-h2*n13); Undefined function or variable 'x' >> My algorithm is: function y = crime_back_forw11_12
test = -1;
tf= 3; mu = 0.001; M = 999; t = linspace(0,1,M+1); h = 1/M; h2 = h/2;
beta=0.1; alpha=0.7; gama=0.03; delta=0.7; epsilon=0.3; m=100; n=100; p=50; d=25;
x1= zeros(1,M+1); x2= zeros(1,M+1); x3= zeros(1,M+1);
u1= zeros(1,M+1); u2= zeros(1,M+1); u3= zeros(1,M+1);
lambda1 = zeros(1,M+1); lambda2 = zeros(1,M+1); lambda3 = zeros(1,M+1);
x1(1) = 0.0555; x2(1) = 0.0003; x3(1) = 0.0004;
while(test < 0)
oldu1 = u1;
oldu2 = u2;
oldu3 = u3;
oldx1 = x1;
oldx2 = x2;
oldx3 = x3;
oldlambda1 = lambda1;
oldlambda2 = lambda2;
oldlambda3 = lambda3;
for i = 1:M
m11 = beta*x2(i)-alpha*x1(i)*x2(i)*(1-u1(i))+u3(i)*epsilon*x3(i);
m12 = -beta*x2(i)+alpha*x1(i)*x2(i)*(1-u1(i))-u2(i)*gama*x2(i)+(1-u3(i))*delta*x3(i);
m13 = u2(i)*gama*x2(i)-(1-u3(i))*delta*x3(i)-u3(i)*epsilon*x3(i);
m21 = beta*(x2(i)+h2*m12)-alpha*(x1(i)+h2*m11)*(x2(i)+h2*m12)*(1-0.5*(u1(i)+u1(i+1)))+0.5*(u3(i)+u3(i+1))*epsilon*(x3(i)+h2*m13);
m22 = -beta*(x2(i)+h2*m12)+alpha*(x1(i)+h2*m11)*(x2(i)+h2*m12)*(1-0.5*(u1(i)-u1(i+1))-0.5*(u2(i)-u2(i+1))*gama*(x2(i)+h2*m12)+(1-0.5*(u3(i)-u3(i+1)))*delta*(x3(i)+h2*m13));
m23 = 0.5*(u2(i)-u2(i+1))*gama*(x2(i)+h2*m12)-(1-0.5*(u3(i)+u3(i+1))*delta*(x3(i)+h2*m13)-(u3(i)+u3(i+1))*epsilon*(x3(i)+h2*m13));
m31 = beta*(x2(i)+h2*m22)-alpha*(x1(i)+h2*m21)*(x2(i)+h2*m22)*(1-0.5*(u1(i)+u1(i+1)))+0.5*(u3(i)+u3(i+1))*epsilon*(x3(i)+h2*m23);
m32 = -beta*(x2(i)+h2*m22)+alpha*(x1(i)+h2*m21)*(x2(i)+h2*m22)*(1-0.5*(u1(i)-u1(i+1))-0.5*(u2(i)-u2(i+1))*gama*(x2(i)+h2*m22)+(1-0.5*(u3(i)-u3(i+1)))*delta*(x3(i)+h2*m23));
m33 = 0.5*(u2(i)-u2(i+1))*gama*(x2(i)+h2*m22)-(1-0.5*(u3(i)+u3(i+1))*delta*(x3(i)+h2*m23)-(u3(i)+u3(i+1))*epsilon*(x3(i)+h2*m23));
m41 = beta*(x2(i)+h2*m32)-alpha*(x1(i)+h2*m31)*(x2(i)+h2*m32)*(1-u1(i+1))+u3(i+1)*epsilon*(x3(i)+h2*m33);
m42 = -beta*(x2(i)+h2*m32)+alpha*(x1(i)+h2*m31)*(x2(i)+h2*m32)*(1-u1(i+1))-u2(i+1)*gama*(x2(i)+h2*m32)+(1- u3(i+1))*delta*(x3(i)+h2*m33);
m43 = u2(i+1)*gama*(x2(i)+h2*m32)-(1-(u3(i+1)))*delta*(x3(i)+h2*m33)-u3(i+1)*epsilon*(x3(i)+h2*m33);
x1(i+1) = x1(i) + (h/6)*(m11 + 2*m21 + 2*m31 + m41);
x2(i+1) = x2(i) + (h/6)*(m12 + 2*m22 + 2*m32 + m42);
x3(i+1) = x3(i) + (h/6)*(m13 + 2*m23 + 2*m33 + m43);
end
for i = 1:M
j = M + 2 - i;
n11 = alpha*x2(j)*(1-u1(j))*(lambda1(j)-lambda2(j));
n12 = -m-beta*(lambda1(j)-lambda2(j))-alpha*x1(j)*u1(j)*(lambda1(j)-lambda2(j))+alpha*x1(j)*(lambda1(j)-lambda2(j))+gama*u2(j)*(lambda2(j)-lambda3(j));
n13 = u3(j)*epsilon*(lambda3(j)-lambda1(j))+(1-u3(j))*delta*(-lambda2(j)+lambda3(j));
n21 = alpha*(0.5*(x2(j)+x2(j-1)))*(1-u1(j))*((lambda1(j)-h2*n11)-(lambda2(j)-h2*n11));
n22 = -m-beta*((lambda1(j)-h2*n11)-(lambda2(j)-h2*n12))-alpha*(0.5*(x1(j)+x1(j-1)))*(u1(j))*((lambda1(j)-h2*n11)-(lambda2(j)-h2*n12))+alpha*(0.5*(x1(j)+x(j-1)))*((lambda1(j)-h2*n11)-(lambda2(j)-h2*n12))+(u2(j))*gama*(lambda2(j)-h2*n12-lambda3(j)-h2*n13);
n23 = u3(j)*epsilon*((lambda3(j)-h2*n13)-(lambda1(j)-h2*n11))+(1-(u3(j)))*delta*((-lambda2(j)-h2*n12)+(lambda3(j)-h2*n13));
n31 = alpha*0.5*(x2(j)+x2(j-1))*(1-u1(j))*((lambda1(j)-h2*n21)-(lambda2(j)-h2*n21));
n32 = -m-beta*((lambda1(j)-h2*n21)-(lambda2(j)-h2*n22))-alpha*0.5*(x1(j)+x1(j-1))*(u1(j))*((lambda1(j)-h2*n21)-(lambda2(j)-h2*n22))+alpha*0.5*(x1(j)+x(j-1))*((lambda1(j)-h2*n21)-(lambda2(j)-h2*n22))+(u2(j))*gama*(lambda2(j)-h2*n22-lambda3(j)-h2*n23);
n33 = u3(j)*epsilon*((lambda3(j)-h2*n23)-(lambda1(j)-h2*n21))+(1-(u3(j)))*delta*((-lambda2(j)-h2*n22)+(lambda3(j)-h2*n23));
n41 = alpha*(x2(j-1))*(1-u1(j))*((lambda1(j)-h2*n31)-(lambda2(j)-h2*n31));
n42 = -m-beta*((lambda1(j)-h2*n31)-(lambda2(j)-h2*n32))-alpha*(x1(j-1))*(u1(j))*((lambda1(j)-h2*n31)-(lambda2(j)-h2*n32))+alpha*(x1(j-1))*((lambda1(j)-h2*n31)-(lambda2(j)-h2*n32))+(u2(j))*gama*(lambda2(j)-h2*n32-lambda3(j)-h2*n33);
n43 = u3(j)*epsilon*((lambda3(j)-h2*n33)-(lambda1(j)-h2*n31))+(1-(u3(j)))*delta*((-lambda2(j)-h2*n32)+(lambda3(j)-h2*n33));
lambda1(j-1) = lambda1(j) - h/6*(n11 + 2*n21 + 2*n31 + n41);
lambda2(j-1) = lambda2(j) - h/6*(n12 + 2*n22 + 2*n32 + n42);
lambda3(j-1) = lambda3(j) - h/6*(n13 + 2*n23 + 2*n33 + n43);
0 Comments
Accepted Answer
Star Strider
on 16 Dec 2017
Here:
n22 = -m-beta*((lambda1(j)-h2*n11)-(lambda2(j)-h2*n12))-alpha*(0.5*(x1(j)+x1(j-1)))*(u1(j))*((lambda1(j)-h2*n11)-(lambda2(j)-h2*n12))+alpha*(0.5*(x1(j)+x(j-1)))*((lambda1(j)-h2*n11)-(lambda2(j)-h2*n12))+(u2(j))*gama*(lambda2(j)-h2*n12-lambda3(j)-h2*n13);
↑
It needs to be ‘x1’, or ‘x2’ or one of the others.
0 Comments
More Answers (0)
See Also
Categories
Find more on Transportation Engineering in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!