Есть две строки, где вы используете 0 для индексации, чего вы не можете в Matlab:
r(i,0) = (1/2)*r(i-1,0) + (sum1)*h;
и
r(i,j) = r(i,j-1) + (r(i,j-1) - r(i-1,j-1))/((4^j) - 1);
когда j == 1 или i == 1.
Я предлагаю вам запустить циклы, начиная с 2, и заменить показатели i и j на (i-1) и (j-1) соответственно.
В качестве отступления: вы можете написать цикл
for k = 1:2:2^(i)
sum1 = sum1 + f(a + k*h);
end
а
k = 1:2:2^i;
tmp = f(a + k*h);
sum1 = sum(tmp);
если вы напишите f_of_x как
sin(x)./x