用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文件,可在命令行窗口中看到方程的解。