📄 bisecmethod.m
字号:
function bisecMethod(f_name,a,b)
fprintf('二分法求非线性方程得根\n\n');
tolerance=1e-6; it_limit=30;
fprintf(' It. a c b fa=f(a) ');
fprintf(' fb=f(b) abs(fb-fa)\n');
it=0;
Y_a=feval(f_name,a);Y_b=feval(f_name,b);
if (Y_a*Y_b>0)
fprintf('\n\n停止,因为f(a)f(b)>0\n');
fprintf('\n重新给出端点a或b.\n');
else
while 1
it=it+1;
c=(a+b)/2;Y_c=feval(f_name,c);
fprintf('%3.0f%10.6f%10.6f',it,a,c);
fprintf('%10.6f %10.6f %10.6f%12.3e\n',b,Y_a,Y_b,abs(Y_b-Y_a));
%fprintf('%12.3e\n',abs(Y_b-Y_a))
if (abs(b-a)<=tolerance)
fprintf('结果满足允许误差tolerance=1e-6.\n');break
end
if(it>it_limit)
fprintf('迭代超过限定次数.\n');break
end
if (Y_a*Y_c<=0)b=c;Y_b=Y_c;
else a=c;Y_a=Y_c;
end
end
fprintf('最终结果:x1=%12.6f\n',c);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -