本質(zhì)是通過不斷進(jìn)行區(qū)間壓縮來獲取函數(shù)零點(diǎn)。
二分法的終止條件:區(qū)間長度小于等于精度要求。
流程:文章來源:http://www.zghlxwxcb.cn/news/detail-744966.html
x=linspace(0,15);
y=(x-1).*(x-3).*(x-9).*(x-12);
plot(x,y);%畫函數(shù)圖像
%將坐標(biāo)軸平移到原點(diǎn)
ax = gca;
ax.XAxisLocation = 'origin';
ax.YAxisLocation = 'origin';
%將坐標(biāo)軸平移到原點(diǎn)
xlabel('x');
ylabel('y');
syms X Y;
Y=@(X) (X-1).*(X-3).*(X-9).*(X-12);
a=2;b=6;e=0.01;%確定區(qū)間及收斂精度
sign=1;%循環(huán)進(jìn)行標(biāo)志
tic
while(sign==1)
c=(a+b)/2;
if(Y(c)==0)%零點(diǎn)即為c
fprintf('零點(diǎn)精確解為%f\n',c);
else
if(Y(a)*Y(c)<0)%零點(diǎn)在[a,c]之間
b=c;
else %零點(diǎn)在[c,b]之間
a=c;
end
end
if(abs(b-a)<=e|Y(c)==0)
sign=0;
fprintf('二分法求得零點(diǎn)解為%f\n',c);
else
sign=1;
end
end
toc
零點(diǎn)精確解為3.000000
二分法求得零點(diǎn)解為3.000000
時(shí)間已過 0.005635 秒。
如下圖所示:文章來源地址http://www.zghlxwxcb.cn/news/detail-744966.html
到了這里,關(guān)于二分法MATLAB代碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!