📄 用二分法求解g(x)=0的解法.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 + -