二分法matlab程序问题

function[x_star,index,k]=bisect1(fun,a,b,ep)ifnargin<4ep=10^-5;endfa=feval(fun,a);fb=... function [x_star,index,k]=bisect1(fun,a,b,ep)
if nargin<4 ep=10^-5;end
fa=feval(fun,a);fb=feval(fun,b);
if fa*fb>0
x_star=[fa,fb];k=0;index=0;
return;
end
k=1;
while abs(b-a)/2>ep

x=(a+b)/2;fx=feval(fun,x);
if fx*fa<0
b=x;fb=fx;
else
a=x;fa=fx;
end
k=k+1;
end
x_star=(a+b)/2;index=1;
运行结果输出k总是等于1,实在不知道怎么改了,求大神改一下
展开
 我来答
窥窥爱絮色125
2014-05-16 · 超过59用户采纳过TA的回答
知道答主
回答量:124
采纳率:0%
帮助的人:139万
展开全部
function test
a=1;b=2;tol=1e-4;N=10000;
k=0;fa=f(a);
for k=1:N
p=(a+b)/2; fp=f(p);
if( fp==0 || (b-a)/2<tol)
break
end
if fa*fp<0 b=p; else a=p; end
end
disp(k)
disp(p)
function ydot=f(x)
% 内嵌函数,matlab7.0及以上版本支持
ydot=x^3+2*x^2-7;
end
end
打字不易,如满意,望采纳。
追问
我只是想改我的代码而已,你给我新的代码也没用啊
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式