function [Xoutput,Error] = Newton_Raphson(A, B, C)
figure(2)
hold on
title("process curve ")
xdata=-30:1:30%plot data
x=xdata;
fx=A.*x.*x+B.*x+C
plot(x,fx)
plot([-30,30],[0,0])
%
X_n1=0;
X_n0=20;%设置初始值
NUMiteration=10
% finalABS=0
for i=1:NUMiteration
X_n1=X_n0-(A*X_n0*X_n0+B*X_n0+C)/(2*A*X_n0+B);
% finalABS=abs(A*X_n1*X_n1+B*X_n1+C)
% finalABS2=abs(A*X_n1*X_n1+B*X_n1+C)
if( abs(X_n1-X_n0)<0.001) %收敛条件%( finalABS<0.01 && finalABS2<0 && abs(X_n1-X_n0)<0.01 ) %收敛条件
Xoutput=X_n1;
Xoutput_y=A*Xoutput*Xoutput+B*Xoutput+C;
Error=0;
break;
else
Error=1;
end
X_n0= X_n1;
end
figure(2)
plot(Xoutput,Xoutput_y,'o')
end
Newton_Raphson迭代法 matlab
于 2023-02-17 16:37:40 首次发布