这个程序哪里出错了呢 用二分法求解

问题描述:

这个程序哪里出错了呢 用二分法求解
f=inline('exp(-x)-sin(pi*x./2)');
a=0;b=1;
err=(b-a)/2; k=0;
eps=1/2^5;
y0=f(a);
while err>eps
a0=a;b0=b;
x1=(a0+b0)/2;
if f(x1)==0
x1;
return
end
else if f(x1)>0
a1=a0;b1=x1;
else
a1=x1;b1=b0;
break
err=(b1-a1)/2;
k=k+1;
a=a1;b=b1;
end
a,b
k
x=(a+b)/2

语序有点乱套了.还有 else if之间不能有空格.
下面是我做了点修改的代码
>> f=inline('exp(-x)-sin(pi*x/2)');
a=0;b=1;
err=(b-a)/2; k=0;
eps=1/2^10; %提高精确度 ^.^
y0=f(a);
while err>eps
a0=a;b0=b;
x1=(a0+b0)/2;
if f(x1)==0
x1
elseif f(x1)>0
a1=x1;b1=b0;
else
a1=a0;b1=x1;
end
err=(b1-a1)/2;
k=k+1;
a=a1;b=b1;
end
k
x=(a+b)/2
若满意请采纳! ^.^