主题:求助帮我改下错误的程序,急!谢谢
function predpreystoch(length, OldX, OldY, r1, b1, r2, b2)
X(1) = OldX;
Y(1) = OldY; T(1) = 0;
i = 1;
while (i < length)
B1 = r1 * X(i);
B2 = b2 * X(i) * Y(i);
D1= b1 * X(i) * Y(i);
D2= r2 * Y(i);
R = B1 + B2 + D1 + D2;
if (R == 0)
i = length;
break;
end;
y = rand;
S(i) = - log (y) / R;
y = rand;
if y <= (B1 / R)
X(i+1) = X(i) + 1;
Y(i+1) = Y(i);
elseif y <= ((B1 + D1) / R)
X(i+1) = X(i) - 1;
Y(i+1) = Y(i);
elseif y <= ((B1 + D1 + B2) / R)
Y(i+1) = Y(i) + 1;
X(i+1) = X(i);
else
Y(i+1) = Y(i) - 1;
X(i+1) = X(i); end;
T(i+1) = T(i) + S(i); i++;
end;
plot (0);
ylabel("Population Size");
xlabel("Time");
legend("off");
hold on;
plot( T , X, ’b;;’);
plot( T, Y, ’r;;’);
hold off;
错误的信息是
??? Strings passed to EVAL cannot contain function declarations.
X(1) = OldX;
Y(1) = OldY; T(1) = 0;
i = 1;
while (i < length)
B1 = r1 * X(i);
B2 = b2 * X(i) * Y(i);
D1= b1 * X(i) * Y(i);
D2= r2 * Y(i);
R = B1 + B2 + D1 + D2;
if (R == 0)
i = length;
break;
end;
y = rand;
S(i) = - log (y) / R;
y = rand;
if y <= (B1 / R)
X(i+1) = X(i) + 1;
Y(i+1) = Y(i);
elseif y <= ((B1 + D1) / R)
X(i+1) = X(i) - 1;
Y(i+1) = Y(i);
elseif y <= ((B1 + D1 + B2) / R)
Y(i+1) = Y(i) + 1;
X(i+1) = X(i);
else
Y(i+1) = Y(i) - 1;
X(i+1) = X(i); end;
T(i+1) = T(i) + S(i); i++;
end;
plot (0);
ylabel("Population Size");
xlabel("Time");
legend("off");
hold on;
plot( T , X, ’b;;’);
plot( T, Y, ’r;;’);
hold off;
错误的信息是
??? Strings passed to EVAL cannot contain function declarations.