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

📄 用二分法求解g(x)=0的解法.m

📁 拉格朗日插值多项式拟合,牛顿插值多项式,欧拉方程解偏微分方程,使用极限微分求解导数(微分),微分方程组的N=4龙格库塔解法,雅可比爹迭代法解方程AX=B,最小二乘多项式拟合,组合辛普生公式求解积分,用
💻 M
字号:
%用二分法求解方程g(x)=0的解
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%求解条件:g(x)=0在区间(a,b)上有唯一的解,且g(x)是连续的,g(a)与g(b)符合相反
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%-------------------------------------------
%先定义函数function y=g(x)
%          y=sin(x)-(x^2)/4;(改变y的函数表达式及为求解相应的函数)
%调用方法为【c,err,yc】=dichotomy('g',a,b,delta)            !注意函数是字符串调用
%-------------------------------------------
function[c,err,yc]=dichotomy(g,a,b,delta)
%-------------------------------------------
%input  -g,函数表达式,用字符表示调用函数feval(g,x)
%       -a
%       -b为函数二分法给定的区间
%       -delta 为横轴的给定误差
%-------------------------------------------
ya=feval(g,a);
yb=feval(g,b);
if ya*yb>0
    disp('区间给的数值不合要求,请重新定义')
    break
end
while ((b-a)>delta)
    c=(a+b)/2;
    yc=feval(g,c);
    if yc==0
        a=c;
        b=c;
    elseif yb*yc>0
        b=c;
        yb=yc;
    else
        a=c;
        ya=yc;
    end
end
    c=(a+b)/2;
    err=abs(b-a);
    yc=feval(g,c);
    
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -