%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));那我该怎么做才能解决这个问题?从现在开始谢谢你。
发布于 2013-12-18 05:26:22
如果您试图定义一个函数y(x),则需要创建一个匿名函数:
y = @(x) (exp(x)*sin(x)) / (1 + x^2); 在您的代码中,y(x) = ...中x=1只设置y的元素1,从而创建了标量y。
https://stackoverflow.com/questions/20649880
复制相似问题