早教吧 育儿知识 作业答案 考试题库 百科 知识分享

这个程序哪里出错了呢用二分法求解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);whileerr>epsa0=a;b0=b;x1=(a0+b0)/2;iff(x1)==0x1;returnendelseiff(x1)>0a1=a0;b1=x1;elsea1=x1;b1=b0;breakerr=(b1-a1)/2;k=k

题目详情
这个程序哪里出错了呢 用二分法求解
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
若满意请采纳! ^.^
看了 这个程序哪里出错了呢用二分法...的网友还看了以下: