Не могу передать функцию в качестве аргумента Matlab - PullRequest
0 голосов
/ 25 мая 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...