[编程开发] 帮忙看看MATLAB里面自定义函数到底怎么调用?? 数值分析里面一个问题: function s=traprl(f,

[编程开发] 帮忙看看MATLAB里面自定义函数到底怎么调用??
数值分析里面一个问题:

function s=traprl(f,a,b,M)
h=(b-a)/M;
s=0;
for k=1:(M-1)
x=a+h*k;
s=s+feval(f,x);
end
s=h*(feval(f,a)+feval(f,b))/2+h*s;
% Detailed explanation goes here

end

输入
>> syms x
>> sum=traprl(x^2*exp(-2),0,4,10)

提示为
??? Error using ==> feval
Argument must contain a string or function_handle.
Error in ==> traprl at 6
s=s+feval(f,x);

到底怎么错哪了?

traprl()函数没有错误。错误就在于自定义函数缺少句柄函数符号。

正确的写法为

sum=traprl(x^2*exp(-2),0,4,10)

修改后运行结果

sum =    2.9016

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-27
调用traprl时,应该用句柄指定函数@(x)x^2*exp(-2),而不是直接输入函数表达式。
sum=traprl(@(x)x^2*exp(-2),0,4,10)本回答被提问者采纳
第2个回答  2011-05-30
同学,你是哪个单位的?
竟和我在相同的时间做同样的题,还犯相同的错误!