wusemm 发表于 2009-7-2 20:11

simpson - Too many output arguments?

我有一个数值积分程序,可以进行计算,但是我想把该计算结果取出来赋值给另外一个变量出错
调用
f=@testfunc;
a=0;b=10; a=simpson(f,a,b,20);

error
Too many output arguments.

程序如下

function simpson(f,a,b,n)
% Compute the integral of a f from a to b using Simpson's
% composite rule. n must be even.
if n/2~=floor(n/2), disp(' n must be even');return; end
h=(b-a)/n; S=feval(f,a);

for i=1:n/2
   m=2*i-1; x=a+h*m; g=feval(f,x); S=S+4*g;
   m=2*i; x=a+h*m; g=feval(f,x);
   if(i==n/2), S=S+g; else S=S+2*g; end;
end
INT=h*S/3;
fprintf('\n         The integral of f(x) is =%16.8f\n',INT);
请问如何解决

[ 本帖最后由 ChaChing 于 2010-3-30 21:36 编辑 ]

berryhaw 发表于 2009-7-2 20:31

function out=simpson(f,a,b,n),楼主没有定义函数的输出变量:lol

wusemm 发表于 2009-7-2 21:26

感谢 berryhaw,问题已解决 另外请问

在我的程序运行过程中,会出现很多次f值,哪条语句有问题呢?
f =
   0
f =
    0.0446
f =
    0.0887
...

[ 本帖最后由 ChaChing 于 2010-3-30 21:38 编辑 ]

ChaChing 发表于 2009-7-4 21:35

回复 板凳 wusemm 的帖子

估计应该是testfunc输出的!
页: [1]
查看完整版本: simpson - Too many output arguments?