clear
%%%% 输入函数
f=input('请输入需要求解函数>>','s')
%%%求解f(x)的导数
df=diff(f);
%%%改进常数或重根数
miu=2;
%%%初始值x0
x0=input('input initial value x0>>');
k=0;%迭代次数
max=100;%最大迭代次数
R=eval(subs(f,'x0','x'));%求解f(x0),以确定初值x0时否就是解
while (abs(R)>1e-8)
x1=x0-miu*eval(subs(f,'x0','x'))/eval(subs(df,'x0','x'));
R=x1-x0;
x0=x1;
k=k+1;
if (eval(subs(f,'x0','x'))<1e-10);
break
end
if k>max;%如果迭代次数大于给定值,认为迭代不收敛,重新输入初值
ss=input('maybe result is error,choose a new x0,y/n?>>','s');
if strcmp(ss,'y')
x0=input('input initial value x0>>');
k=0;
else
break
end
end
end
k;%给出迭代次数
x=x0;%给出解