我正在处理以下功能:
function opemployment=eqns(unknown);
global kappa theta lgamma beta r delta s x b e gamma v;
varphi=unknown(1);
h=unknown(2);
opemployment(1)=(h^(gamma-1))*((1-kappa)*((lgamma*(varphi^beta))/(gamma*kappa*beta+1-kappa))*h^(gamma*beta-gamma)-(r+delta+s)*(s^(gamma-1))*x^(-gamma));
opemployment(2)=(1-kappa)*(b-e+(kappa/(1-kappa))*theta*v^(gamma-1));
并使用以下命令调用该函数:
close all; clear all;
global kappa theta lgamma beta r delta s x b e gamma v;
kappa = 0.1; theta = 0.5; lgamma = 0.3; beta = 0.5; r = 0.33; delta = 0.91; s = 0.4; x = 0.6; b = 0.4; e = 0.5; gamma = 0.5 ; v = 0.4;
while kappa < 1 && theta < 1 && lgamma < 1 && beta < 1 && r < 1 && delta < 1 && s < 1 && x < 1 && b < 1 && e < 1 && gamma < 1 && v < 1
guess = [0,1];
sol=fsolve('eqns',guess)
mat = [sol]
kappa=+0.1;
theta=+0.1;
lgamma=+0.1;
beta=+0.1;
r=+0.1;
delta=+0.1;
s=+0.1;
x=+0.1;
b=+0.1;
e=+0.1;
gamma=+0.1
v=+0.1;
end
为什么我会遇到无限循环?我想要实现的是运行fsolve一段时间,每次fsolve运行时将结果存储在一个单独的矩阵中作为一个新行,然后从中绘制一个图形(但是要添加这一行)。
提前致谢。