Wie Newton-Raphson-Methode in matlab zu finden, eine Gleichung root?

Ich bin ein neuer Benutzer von MATLAB. Ich will um den Wert zu finden, dass macht f(x) = 0 mit der Newton-Raphson-Methode. Ich habe versucht, den code schreibt, aber es scheint, dass es schwierig zu implementieren Newton-Raphson-Methode. Dies ist, was ich habe, so weit:

function x = newton(x0, tolerance)
    tolerance = 1.e-10;
    format short e;
    Params = load('saved_data.mat');
    theta = pi/2;
    zeta = cos(theta);
    I = eye(Params.n,Params.n);
    Q = zeta*I-Params.p*Params.p';

    % T is a matrix(5,5)
    Mroot = Params.M.^(1/2);  %optimization
    T = Mroot*Q*Mroot;

    % Find the eigenvalues
    E = real(eig(T));

    % Find the negative eigenvalues
    % Find the smallest negative eigenvalue
    gamma = min(E);  

    % Now solve for lambda
    M_inv = inv(Params.M);  %optimization
    zm = Params.zm;

    x = x0;
    err = (x - xPrev)/x;

    while abs(err) > tolerance
        xPrev = x;
        x = xPrev - f(xPrev)./dfdx(xPrev);

        % stop criterion: (f(x) - 0) < tolerance
        err = f(x);
   end 

   % stop criterion: change of x < tolerance % err = x - xPrev;

end

Die oben beschriebene Funktion verwendet wird, etwa so:

% Calculate the functions
Winv = inv(M_inv+x.*Q);

f = @(x)( zm'*M_inv*Winv*M_inv*zm);

dfdx = @(x)(-zm'*M_inv*Winv*Q*M_inv*zm);

x0 = (-1/gamma)/2;

xRoot = newton(x0,1e-10);
Also, was ist th in Frage? Sie zeigen nur Ihren code...
Ich muss korrigieren Sie den code, damit es funktioniert.
Welche Art der Ausgabe sind Sie immer auf??? Was sind Ihre Funktionen scheinen nicht zu arbeiten, mit fzero()?
Es gibt die folgende Fehlermeldung :??? Error using ==> fzero-Funktion Werte im Intervall-Endpunkte müssen endlich sein und echte"".Ich denke, das ist, weil es komplexe Einträge in die Gleichung ein.
können Sie uns zeigen, was Params.n, Params.p, Params.M etc sind? Dann sind wir eher in der Lage sein, um Ihnen zu helfen debug-Ihr problem.

InformationsquelleAutor user1079331 | 2011-12-03

Schreibe einen Kommentar