Итак, я пытаюсь закодировать функцию, которая реализует метод secant для функции (f), которая будет введена пользователем и добавит результат каждой итерации к вектор. Я получаю сообщение о том, что x не определено, что понятно, но я не уверен, как его определить. Я пытаюсь написать его таким образом, что аргумент f может быть функцией в терминах x, например. x^3 +12, в отличие от имени отдельного файла функции.Matlab - функция, определенная пользователем как аргумент функции
function [xans, xi, iter] = secant(f, x0, x1, tol)
k = 1;
a = x0;
b = x1;
c = f(b)*((b-a)/(f(b)-f(a)));
while abs(c) >= tol
xi(k) = b-c;
a = b
b = xi(k)
k = k+1;
end
disp(x)
disp(xi)
disp(iter)
Если не '@' появляются только тогда, когда функция вызывается? Я имею в виду '[xans, xi, k] = secant (@sin, x0, x1, tol);'. – pm89
Да, я думаю, что исходный синтаксис в вопросе правильный, но дескриптор функции должен быть отправлен в функцию 'secant'. – pm89
Я получаю неверную синтаксическую ошибку в @f сейчас и все еще получаю сообщение об ошибке «Неопределенная функция или переменная« x »при запуске программы. Чтобы уточнить, я хотел, чтобы функция f была функцией с точки зрения x, например. x^4 + 12x, а не имя функции. – ttl