Итерационная функция, адаптированная к системам нелинейных уравнений в Matlab - PullRequest
0 голосов
/ 17 мая 2019

Я хотел бы изменить свой код для поиска корня таким образом, чтобы он мог также иметь систему линейных уравнений в качестве входных данных вместо функции управления фи.Я попробовал это с массивом функциональных дескрипторов ячеек, но это мне не очень помогло.Любая помощь / советы приветствуются.Код моей программы поиска корня выглядит следующим образом:

% INPUT
% phi iteration function (may be vector valued )
% x0 initial guess
% tol desired tolerance
% maxIt maximum number of iterations
%
 % OUTPUT
% x approximate solution
% success true means converged according to error estimator
% errEst error estimate per iteration
% xHist ( optional ) array with intermediate solutions
function [x, success , errEstvector , xvector ] = fpIterator (phi , x0 , tol , maxIt )

x=x0;
iterations=0;
errEst=tol+1;
errEstvector=[];
xvector=[];

while errEst >= tol
        xprev=x;
        x=phi(x);
        errEst=abs(x-xprev);
        iterations=iterations+1;
        errEstvector=[errEstvector errEst];
        xvector=[xvector x];
        if iterations == maxIt;
            break
        end
end
if errEst < tol
    success=1;
else
    success=0;
end
xvector;
errEstvector;  

fprintf('Iterations = %d \n',iterations)
fprintf('x = %d \n',x);
fprintf('succes = %d \n',success);

i=iterations;
C=(x-((1+sqrt(5))./2))./(xprev-((1+sqrt(5))./2))^2
p_k=log(errEstvector(i)./errEstvector(i-1))./log(errEstvector(i-1)./errEstvector(i-2))
end
...