用MATLAB实现二分法解一元方程

 时间:2026-02-14 10:42:56

1、新建m文件Erfenfa.m,输入如下的程序,并保存:

clear

jd=0.000001; %计算精度

i=0;  %i是为了防止嵌套调用次数超出堆栈空间

a=200;%[a,b]为迭代范围

b=550;  %可以先用画函数图的方法把迭代范围找到,以尽量缩小迭代范围

ErfenfaFun(a,b,jd,i); %调用函数ErfenfaFun解方程

2、新建m文件ErfenfaFun.m,输入如下程序,并保存:

function out=ErfenfaFun(a,b,jd,i)

%函数的调用形式 ErfenfaFun(a,b,jd,i)

%用二分法解出方程pfun的数值解,求解范围为[a,b],精度为jd,i是为了防止嵌套调用次数超出堆栈空间

if(i==499||pfun(a)*pfun(b)>0) %防止函数嵌套调用次数超出堆栈空间

    disp('给出的范围无法迭代出结果')

    return

end

c=(a+b)/2;

if(pfun(c)==0)

    disp('方程的解为:')

    disp(c)

    return

elseif(pfun(a)*pfun(c)<0)

    b=c;

elseif(pfun(c)*pfun(b)<0)

    a=c;

end

if(abs(a-b)<jd)

    disp('方程的解为:')

    disp(a)

    return

else

    i=i+1;

    ErfenfaFun(a,b,jd,i);

end

end

3、新建m文件pfun.m,输入如下程序,并保存:

function y=pfun(v)

%在这个函数程序中输入要解的函数体,可根据自己的需要输入相应的式子

z =0.78;

v0 = 1300;

t = 0.001;

y = (v0/v-1)*z/t-v0*log(v0/v);

end

4、运行Erfenfa.m文件,可在命令行窗口中看到方程的解。

用MATLAB实现二分法解一元方程

  • 大创流程是什么
  • 在分部积分法使用中,如何选取u和v?
  • MATLAB怎么安装
  • arcsinx的图像是什么
  • 实验报告里的实验分析怎么写
  • 热门搜索
    虎头蛇尾是什么意思 维生素b2的食物 钙片什么时间吃最好 pressure是什么意思 公虾米是什么歌 蹉跎岁月是什么意思 前胸后背疼是什么病 许多的反义词是什么 怎样腌制糖醋蒜 石敢当是什么意思