clear
clc
syms x
f=inline('x^3+10*x-20');
x0=input('請輸入x0=')
x1=input('請輸入x1=')
x2=input('請輸入x2=')
epsilon=input('請輸入誤差限epsilon=')
N=20;
n=2;
for n=3:N
h1=x1-x0;
h2=x2-x1;
d1=(feval(f,x1)-feval(f,x0))/h1;
d2=(feval(f,x2)-feval(f,x1))/h2;
a=(d1-d2)/(h2+h1);
b=d2+h2*a;
c=feval(f,x2);
t=x2-(2*c*sign(b))/(abs(b)+sqrt(b^2-4*a*c));
s=feval(f,t);
if abs(s)<epsilon
break
else
x0=x1;
x1=x2;
x2=t;
end
end
X=t
n
3.命令行窗口
請輸入x0=1.5
x0 =
1.5000
請輸入x1=1.75
x1 =
1.7500
請輸入x2=2
x2 =
2
請輸入誤差限epsilon=1e-6
epsilon =
1.0000e-06
X =
1.5946
n =
7
%%
%created by TGU cuienen1912