我正在学习matlab,我在代码上遇到了一些问题。
首先,我创建了f1.m:
function y = f1(x)
y = exp(x) - pi;
end
然后,我构建了一个代码,通过平分线方法找到根:
function [root, err, n] = bissect(f, a, b, errMax)
m = (a+b)/2;
err = (b-a)/2;
n = 0;
while err > errMax
if f(a)*f(m) > 0
a = m;
else
b = m;
end
m = (a+b)/2;
err = (b-a)/2;
n = n + 1;
end
root = m;
end
但是,当我跑步时
>> [r,err,n] = bissect(@f1, 1, 2, 0.1);
它返回:
警告:下标索引必须为整数值。
在C:\ matlabR12 \ work \ Codigo \ bissect.m中的第12行
???索引超出矩阵尺寸。
==> C:\ matlabR12 \ work \ Codigo \ bissect.m中的错误
第12行==>如果f(a)* f(m)> 0
我在做什么错? 我正在使用Matlab R12