Matlab 辛普森&x27;s 3/8规则错误

Matlab 辛普森&x27;s 3/8规则错误,matlab,Matlab,在这段代码中,我只是尝试使用辛普森的3/8规则,但当我尝试测试它时。我得到这个错误: %Simpson's 3/8 rule b=3; a=0; x=1; y(x) = (exp(x)*sin(x)) /( 1 + x^2); I=((b-a)/8)*(y(a)+3*y((2*a+b)/3)+3*((a+2*b)/3)+y(b)); disp(I); 那么我该怎么做才能解决这个问题呢?从现在开始谢谢。如果您试图定义一个函数y(x),那么您需要创建一个匿名函数: Attempted to ac

在这段代码中,我只是尝试使用辛普森的3/8规则,但当我尝试测试它时。我得到这个错误:

%Simpson's 3/8 rule
b=3;
a=0;
x=1;
y(x) = (exp(x)*sin(x)) /( 1 + x^2); 
I=((b-a)/8)*(y(a)+3*y((2*a+b)/3)+3*((a+2*b)/3)+y(b));
disp(I);

那么我该怎么做才能解决这个问题呢?从现在开始谢谢。

如果您试图定义一个函数
y(x)
,那么您需要创建一个匿名函数:

Attempted to access y(0); index must be a positive integer or
logical.

Error in simpson38 (line 5)
I=((b-a)/8)*(y(a)+3*y((2*a+b)/3)+3*((a+2*b)/3)+y(b));

在您的代码中,
y(x)=…
其中
x=1
只设置
y
的元素1,因此创建一个标量
y

I=((b-a)/8)*(y(a)+3*y((2*a+b)/3)+3*y((a+2*b)/3)+y(b));你在第三学期缺了一个y。这可能只是对你的问题的编辑。谢谢,我更正了。但这无助于解决这个问题。
y = @(x) (exp(x)*sin(x)) / (1 + x^2);