⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bisecmethod.m

📁 数值计算实践是我们必备的一门学科!这是我在学习之余利用MATLAB编写的程序
💻 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 + -