所以我试图编写一个函数,将实施切线方法为函数(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] =正割(@sin,x0,x1,tol);'。 – pm89
是的,我认为问题中的原始语法是正确的,但函数句柄应发送到'secant'函数。 – pm89
我在@f现在收到无效的语法错误,并且在运行程序时仍然收到错误“未定义函数或变量'x'”。为了澄清,我希望f是x的一个函数,例如。 x^4 + 12x,而不是函数的名称。 – ttl