資源簡介
數值分析的二分法的實現,自己隨便寫的,大家交流交流。有不對的請指出來,謝謝。
代碼片段和文件信息
function?[anfxi]=erfenfa(fa0b0typen)
%f為要求解的函數
%n為循環次數
%a0為起始區間的左端點
%b0為起始區間的右端點
%type為使計算停止的方法,type=1時為通過因變量的比較,type=2是為通過自變量的比較
%e為精度
%ans使f(x)為0的點,即答案
if??nargin==3
?????type=1;%默認方法為方法1
?????n=4;%精確位數
?????eps=0.0001;????%默認精度為0.0001?
elseif?nargin==4
????n=4;
????eps=0.0001;????%默認精度為0.0001
end????????????????
eps=0.1^n;
digits(n+1);
i=0;
Y=inf;?%令Y等于無窮大,以便在第一步時候下面的while可以運行?
X=inf;?%令X等于無窮大,以便在第一步時候下面的while可以運行?
Ya0=(subs(sym(f)findsym(sym(f))a0));
Yb0=(subs(sym(f)findsym(sym(f))b0));??%計算起始端點的函數值
if(Ya0==0)???????????%如果端點對應的函數值為零,則該點就為函數的零解
????an=a0;
elseif(Yb0==0)
????an=b0;
elseif(Ya0*Yb0<0)???????%根據二分法的條件:端點的函數值必須異號
????X0=(
評論
共有 條評論