牛顿迭代时出现的问题如何解决?

function s=BroydenIterate(x,eps)
if nargin==1
eps=1.0e-6;
elseif nargin<1
error
return
end
%第一次迭代
x1=fx2(x);
b1=inv(dfx2(x));
p=-b1*x1';
x3=x'+p;
d=fx2(x3');
q=(d-x1)';
b1=b1+(q-b1*p)*p'/norm(p);
while (norm(p)>=eps) %循坏迭代
%b1=b1+b3;
x1=fx2(x3');
p=-inv(b1)*(x1)';
x3=x3+p;
q=((fx2(x3'))-x1);
b1=b1+(q-b1*p)*p'/norm(p);
end
s=x3;
return

路漫漫其修远兮,吾将上下而求索。