实验目的
编程实现以下算法:
二分法、Newton迭代法、弦截法求方程根的程序。
二分法对y=x^3-x-1在[1,2]上求解
sy4_1.m
clear;
clc;
c=1;
d=2;
i=0;
while (d-c)>=1e-5
i=i+1;
x=0.5*(c+d);
if x^3-x-1>0
d=x;
elseif x^3-x-1<0
c=x;
else
break;
end
end
X=fzero('x^3-x-1',1)
x
i
二分法求解结果,X是精确解,x是求得的数值解,i是迭代次数
牛顿迭代法对y=x^3-x-1在[1,2]上求解
sy4_2.m
clear;
clc;
x0=1;
N=20;
k=1;
X=fzero('x^3-x-1',1)
while k<N
if 3*x0^2-1==0
disp('奇异');
break;
end
x1=x0-(x0^3-x0-1)/(3*x0^2-1);
if abs(x1-x0)<1e-5
x1
break;
else
k=k+1;
x0=x1;
end
end
k
牛顿迭代法求解结果,X是精确解,x1是求得的数值解,k是迭代次数
弦截法对y=x^3-x-1在[1,2]上求解
sy4_3.m
clear;
clc;
x0=1;
N=20;
k=1;
x1=x0+0.1;
X=fzero('x^3-x-1',1)
while k<N
if 3*x1^2-1==0
disp('奇异');
break;
end
x2=x1-(x1^3-x1-1)/(((x1^3-x1-1)-(x0^3-x0-1))/(x1-x0));
if abs(x2-x1)<1e-5
x2
break;
else
k=k+1;
x1=x2;
end
end
k
弦截法求解结果,X是精确解,x2是求得的数值解,k是迭代次数