Я изучаю 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