broyden.m

来自「内模控制器(IMC)工具箱。包括参数整定、PID控制器参数转换等」· M 代码 · 共 26 行

M
26
字号
function [xx, it] = broyden(x, f, n, tol)
fx = zeros(n,1);
it = 0;
xx = x;
B = eye(n);
fx = feval(f, xx);
while norm(fx) > tol
   it = it + 1;
   h = - B*fx;
   lambda = 1;
   xx = xx + lambda*h;
   fprintf('Iteration %d: approx root = [%f,%f]\n', it, xx(1), xx(2));
	oldfx = fx;
   fx = feval(f, xx);
   z = fx - oldfx;
   oldB = B;
   ozh = oldB*z - h;
   hB = h'*oldB;
   for i = 1:n
      for j = 1:n
         M(i,j) = ozh(i)*hB(j);
      end;
   end;
   B = oldB - M./(h'*oldB*z)
end;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?