matlab简单函数迭代法,MATLAB简单迭代法

求debug此程序,不要新写,拜托详细写下错误处原因好学习,谢谢

%求解x^3-x^2-1=0在区间[1.4,1.5]的根;

%利用迭代公式x=sqrt(x^3-1),构建迭代函数x_nwo(n with one);

syms x;

x_nwo=sqrt(x.^3-1);

%p判定敛散性

x_derivative=diff(x_nwo);%求出迭代函数导数

%%这里需要一行程序声明这个函数

for x=1.4;0.01:1.5

if(abs(x_derivative))<0;

disp('迭代函数在隔根区间上不收敛');

break;

else if(abs(x_derivative))==0;

disp('迭代函数在隔根区间上不收敛');

break;

else continue

end

disp('敛散性检查完毕,迭代函数在隔根区间内对任意初值收敛');

%构建迭代算法

x(n)=1.4;%取迭代初值为1

x(n+1)=x_nwo(x(n));%第一次迭代的x(n+1)值

while(x(n+1)-x(n))>=(0.5*10^(-4));%判定迭代误差是否达到要求

x(n)=x(n+1);

x(n+1)=x_nwo(x(n+1));

end

disp('解得x=%f\n',x(n+1));

%求解x^3-x^2-1=0在区间[1.4,1.5]的根;

%利用迭代公式x=sqrt(x^3-1),构建迭代函数x_nwo(n with one);

syms x;

x_nwo=(x.^2+1).^(1/3);

%p判定敛散性

x_derivative=diff(x_nwo);%求出迭代函数导数

for x=[1.4:0.01:1.5];

if abs(subs(x_derivative))>=1;

disp('迭代函数在隔根区间上不收敛');

break;

else if x==1.5;

disp('敛散性检查完毕,迭代函数在隔根区间内对任意初值收敛');

end

end

end