我正在尝试做某种二分法程序,通过绘制所有内容来展示我如何得到最终答案。你知道为什么在我的文件中我不能在另一个 m 文件中绘制函数的数据吗?有那个错误:
mainhazia 27 end 找不到“Roots”的精确(区分大小写)匹配项
最接近的匹配是:C:\Program Files\MATLAB\R2012b\toolbox\matlab\polyfun\roots.m 中的根
mainhazia (line 23) plot(Roots,f(Roots),'.') 中的错误;
我的代码:
主要的 :
f=@(x)x.^2-1;
XR=2;
xL=-2;
XL=xL ;
eps=0.001;
ezplot(f);
hold on ;
plot(XR,f(XR),'r*');
plot(xL,f(xL),'r*');
for df=xL:0.15:XR
if f(xL)*f(df)<= 0
xR=df;
BisectionM(f,xR,xL,eps);
plot(Roots,f(Roots),'.');
xL=df;
xR=XR;
end
end
二等分M:
function Roots = BisectionM(f,xR,xL,eps)
while abs(xR - xL) > eps
xM = (xR + xL) / 2;
if (f(xL))*(f(xM)) > 0
xL = xM;
plot(xL,f(xL),'*');
else
xR = xM;
plot(xR,f(xR),'*');
end
Roots = xM;
end
end
对不起我的英语,它不是我的母语。