使用具有另一个函数作为参数的函数:

  • 本文关键字:函数 参数 另一个 matlab
  • 更新时间 :
  • 英文 :


我想用梯形积分方法将 x^2 从 2 积分到 4。为此,我定义了一个函数trap,它接受 4 个参数:

function y = trap( fn, a, b, h )
n = (b-a)/h;
x = a + [1:n-1]*h;
y = h/2*(feval(fn, a) + feval(fn, b) + 2*sum(feval(fn,x)));

和功能f

function y= f(x)
y=x^2
end

现在,通过执行trap(f,2,4,0.1),我得到以下错误:

Not enough input arguments.
Error in f (line 2)
y=x^2

该错误的根源是什么?

你必须使用函数句柄@f调用trap,而不是f

trap(@f,2,4,0.1)
function y = trap( fn, a, b, h )
n = (b-a)/h;
x = a + [1:n-1]*h;
y = h/2*(fn(a) + fn(b) + 2*sum(fn(x)));
end
function y= f(x)
y = x.^2;
end

正如预期的那样,

ans =
18.67

此外,您还需要在f(x)中进行逐元素乘法来计算y = x.^2

而且feval是没有必要的。可以直接调用fn(a)来计算函数。

相关内容

  • 没有找到相关文章

最新更新