当前位置:酷酷问答>百科知识>用MATLAB实现二分法解一元方程

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

2024-11-26 21:05:12 编辑:zane 浏览量:586

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

的有关信息介绍如下:

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

使用数学软件MATLAB编程,实现二分法解方程(一元方程)。

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

clear

jd=0.000001; %计算精度

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

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

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

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

新建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)

disp('方程的解为:')

disp(a)

return

else

i=i+1;

ErfenfaFun(a,b,jd,i);

end

end

新建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

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

版权声明:文章由 酷酷问答 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.kukuwd.com/article/140727.html
热门文章