MATLAB:fsolve函数

时间:2014-11-29 18:42:10

标签: matlab optimization nonlinear-functions

我正在尝试使用'fsolve'进行练习,并且还没有完全弄清楚下面的代码是怎么回事。任何人都可以对此有所了解吗?

function N=productivity1(N,Ac,Aw)
global Thetac Thetaw tau a b
N=[N(1),N(2)];
N=[N(1)-(Thetac/a)^(1/b)*(1+tau)*Ac; 
  N(2)-(Thetaw/a)^(1/b)*(1+tau)*Aw;
  N(1)+N(2)-1]; %this meant to be a constraint...
end

N0=[0.7,0.3]; %initial guess for x
option=optimset('Display','iter');
result=fsolve(@(N)productivity1(N,Ac0,Aw0),N0,option);

以下是详细信息:

Ac=2
Aw=20

Ac和Aw应取N(1)+ N(2)= 1的值,Ac和Aw的起始值不固定

固定参数值

Thetac=0.6
Thetaw=0.6
tau=0.07
a=0.01
b=0.8

无论上述参数的值如何,输出都与初始值的矢量相同。这是我面临的问题。

1 个答案:

答案 0 :(得分:0)

您需要根据描述fsolve(http://nl.mathworks.com/help/optim/ug/fsolve.html)退出条件的返回值exitflag在函数productivity1中添加诊断。