%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);
在这段代码中我只是尝试使用Simpson的3/8规则但是当我尝试测试它时。我收到这个错误:
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));
那我该怎么做才能解决这个问题呢?谢谢你们。
答案 0 :(得分:3)
如果您尝试定义函数y(x)
,则需要创建匿名函数:
y = @(x) (exp(x)*sin(x)) / (1 + x^2);
在您的代码y(x) = ...
中x=1
只设置y
的元素1,从而创建标量y
。