第1个回答 2019-01-10
%simpson.m
function
f=simpson(a,b,n)
h=(b-a)/n;
x=linspace(a,b,2*n+1);
y=feval(@fun,x);%一定用这种形式而不是y=feval(fun,x),谢谢啦
f=h/6*(y(1)+y(2*n+1)+2*sum(y(3:2:2*n-1))+4*sum(y(2:2:2*n)));
%fun.m
function
y=fun(x)
y=4./(1+x.^2);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
改成这样可以,直接保存为一个m文件,输入量中没必要搞个函数fun。
>>
simpson(1,10,10)
ans
=
2.7432e+000