Heim > Artikel > Computer-Tutorials > Detaillierte Erläuterung der Implementierungsmethode der iterativen Methode nichtlinearer Gleichungen in Matlab
Newton-Iterationsmethode:
Funktion[x0,n]=Newton(fx,dfx,x0,tol,N)
% Newton-Iterationsmethode
% Der erste Parameter fx ist der gewünschte Funktionsausdruck über die Variable x.
% Der zweite Parameter dfx ist die erste Ableitung von fx.
% x0 ist der Anfangswert der Iteration.
% Tol ist die Iterationsfehlergrenze.
% N Maximale Anzahl von Iterationen.
x=x0;f0=eval(fx);df0=eval(dfx);
n=0;
disp('[ n xn xn+1 delta ]');
während n
x1=x0-f0/df0;
x=x1;f1=eval(fx);df1=eval(dfx);
delta=abs(x0-x1);
% X=[n,x0,x1,delta];
disp(X); % wird verwendet, um Zwischenergebnisse anzuzeigen
wenn Delta fprintf('Iterationsberechnung erfolgreich') Rückkehr sonst n=n+1; x0=x1;f0=f1;df0=df1; Ende Ende wenn n==N+1 fprintf('Iterationsberechnung fehlgeschlagen') Ende Die anderen beiden können auf dieser Grundlage leicht modifiziert werden. Geben Sie eine Vollversion: % Newtons Methode zur Lösung nichtlinearer Gleichungen Funktion main() clc; alles löschen; f = @(x)log(x+sin(x)); % Testfunktion df = @(x)(1+cos(x))/(x+sin(x)); % Ableitungsfunktion x0 = 0,1; % Iterationsanfangswert x = TestNewton(f, df, x0) % Newtons Methode Funktion x = TestNewton(fname, dfname, x0, e, N) % Zweck: Newton-Iterationsmethode zur Lösung der nichtlinearen Gleichung f(x)=0 % fname und dfname repräsentieren jeweils das M-Funktionshandle oder den eingebetteten Funktionsausdruck von f(x) und seiner Ableitungsfunktion % x0 ist der Anfangswert der Iteration, e ist die Genauigkeit (Standardwert 1e-7) % x gibt die numerische Lösung zurück und zeigt den Berechnungsprozess an. Legen Sie die Obergrenze der Anzahl der Iterationen N fest, um Divergenz zu verhindern (Standard 500 Mal) % Eingabeparameter wenn Nargin
N = 500; Ende wenn Nargin
e = 1e-7; Ende x = x0; % Anfangswert x0 = x+2*e; % float k = 0; % Anzahl der Schritte fprintf('x[%d]=%12.9fn', k, x) % Druckinformationen while abs(x0-x)>e & k k = k+1; % notieren Sie die Anzahl der Schritte x0 = x; % Aktualisierung x(k) x = x0 - feval(fname,x0)/feval(dfname,x0); % update x(k+1) fprintf('x[%d]=%12.9fn', k, x) % Druckinformationen Ende wenn k == N fprintf('Die maximale Anzahl von Iterationen wurde erreicht'); % Iteration endet Ende Ergebnis: MATLAB-Programm zur Verwendung der Newton-Iteration zur Lösung nichtlinearer Gleichungen
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Implementierungsmethode der iterativen Methode nichtlinearer Gleichungen in Matlab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!