뉴턴 반복 방법:
함수[x0,n]=뉴턴(fx,dfx,x0,tol,N)
% 뉴턴 반복 방법
% 첫 번째 매개변수 fx는 변수 x에 대해 원하는 함수 표현식입니다.
% 두 번째 매개변수 dfx는 fx의 1차 미분입니다.
% x0은 반복 초기값입니다.
% tol은 반복 오류 제한입니다.
% N 최대 반복 횟수.
x=x0;f0=평가(fx);df0=평가(dfx);
n=0;
disp('[ n xn xn+1 delta ]');
n
x1=x0-f0/df0;
x=x1;f1=평가(fx);df1=평가(dfx);
delta=abs(x0-x1);
% X=[n,x0,x1,델타];
disp(X) %는 중간 결과를 표시하는 데 사용됩니다
델타
fprintf('반복 계산 성공')
반품
그밖에
n=n+1;
x0=x1;f0=f1;df0=df1;
끝
끝
n==N+1인 경우
fprintf('반복 계산 실패')
끝
이를 기반으로 나머지 두 개도 약간 수정될 수 있습니다.
정식 버전 제공:
% 뉴턴의 비선형 방정식 풀이 방법
함수 main()
clc 모두 지우기;
f = @(x)log(x+sin(x)) % 테스트 함수
df = @(x)(1+cos(x))/(x+sin(x)) % 미분 함수
x0 = 0.1; % 반복 초기값
x = TestNewton(f, df, x0) % 뉴턴의 방법
함수 x = TestNewton(fname, dfname, x0, e, N)
% 목적: 비선형 방정식 f(x)=0을 풀기 위한 뉴턴 반복 방법
% fname 및 dfname은 각각 M 함수 핸들 또는 f(x) 및 해당 파생 함수의 내장 함수 표현을 나타냅니다.
% x0은 반복 초기 값, e는 정확도(기본값 1e-7)
% x는 수치해를 반환하고 계산 과정을 표시합니다. 발산을 방지하기 위해 반복 횟수 N의 상한을 설정합니다(기본값은 500회)
% 입력 매개변수
나긴 인 경우
N = 500;
끝
나긴 인 경우
e = 1e-7;
끝
x = x0% 초기값
x0 = x+2*e % float
;k = 0; % 걸음수
fprintf('x[%d]=%12.9fn', k, x) % 인쇄 정보
while abs(x0-x)>e & k
k = k+1; % 걸음 수 기록
x0 = x; % 업데이트 x(k)
x = x0 - feval(fname,x0)/feval(dfname,x0) % 업데이트 x(k+1)
fprintf('x[%d]=%12.9fn', k, x) % 인쇄 정보
끝
k == N
이면fprintf('최대 반복 횟수에 도달했습니다.') % 반복 종료
끝
결과:
위 내용은 MATLAB의 비선형 방정식의 반복법 구현 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!