用matlab编写一个积分函数,但在命令窗口中调用出错。
程序代码如下,
先写一个M文件:
function s=simpr1(f,a,b,n)
h=(b-a)/(2*n);
s1=0;
s2=0;
for k=1:n
x=a+h*(2*k-1);
s1=s1+feval('f',x);
end
for k=1:(n-1)
x=a+h*2*k;
s2=s2+feval('f',x);
end
s=h*(feval('f',a)+feval('f',b)+4*s1+2*s2)/3;
end
保存在工作目录之后,在命令窗口输入
ans=simpr1('1/(1+x^2)',-1,1,10)
出现如下错误:
??? Error using ==> feval
Undefined function or method 'f' for input arguments of type 'double'.
Error in ==> simpr1 at 7
s1=s1+feval('f',x);
请问如何解决
还是不行,提示的错误是一样的,谢谢啦!麻烦再帮忙想想办法。
追答不会吧,我都调通的,feval(f,x)----不加' '的,你的版本是什么?
clear all;clc;
f=@(x)1./(1+x.^2);
s=simpr1(f,-1,1,10)
s =
1.5708