我在Matlab中一直遇到这个错误:
尝试访问r(0,0); 索引必须是正整数或逻辑值。
我使用
我认为问题是该语句不合逻辑,因为我将其变成正数,但仍然得到相同的错误。有人有什么想法吗?
尝试访问r(0,0); 索引必须是正整数或逻辑值。
我使用
Romberg(1.3, 2.19,8)
运行它。我认为问题是该语句不合逻辑,因为我将其变成正数,但仍然得到相同的错误。有人有什么想法吗?
function Romberg(a, b, n)
h = b - a;
r = zeros(n,n);
for i = 1:n
h = h/2;
sum1 = 0;
for k = 1:2:2^(i)
sum1 = sum1 + f(a + k*h);
end
r(i,0) = (1/2)*r(i-1,0) + (sum1)*h;
for j = 1:i
r(i,j) = r(i,j-1) + (r(i,j-1) - r(i-1,j-1))/((4^j) - 1);
end
end
disp(r);
end
function f_of_x = f(x)
f_of_x = sin(x)/x;
end
a
可能为负数,您可能希望将f(x)
定义为f_of_x = sin(x)./x; f_of_x(isnan(f_of_x)) = 1;
或者sinc(x/pi)
也可以。 - mtrw