> 其他 >
这个程序哪里出错了呢 用二分法求解
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
人气:414 ℃ 时间:2020-05-08 16:04:07
解答
语序有点乱套了.还有 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
若满意请采纳! ^.^
推荐
猜你喜欢
© 2024 79432.Com All Rights Reserved.
电脑版|手机版