Почему заходит не в ту конструкцию?
решаю задачку из ВУЗа по численным методам, требуется вычислить интеграл по методу Симпсона, написав сценарий в Scilab. Как я понял суть метода: последний и первый элемент на промежутке интегрирования складываются с элементами под нечётным номером умноженным на 4 и с элементами под чётным номером умноженным на 2 с шагом h. Столкнулся с такой проблемой: написав программу почему-то при i = 2 программа заходит в конструкцию, куда по сути должны заходить нечётные элементы(i/2 <> 0). Входные данные: пределы интегрирования от -1 до 1, шаг 0,5, f(x)=(3*cos(x^2))/ln(x+5) Помогите решить проблему пожалуйста. Сам код сценария:
function ff=f(x)
ff=(3*cos(x*x))/log(x+5)
endfunction
a;b;h;i=0;integ=0;
while a<=b
if i == 0 | a == 1 then
integ = integ + f(a);
elseif (i/2) <> 0 then
integ = integ + 4*f(a);
elseif (i/2) == 0 & i <> 0 & a <> 1 then
integ =integ + 2*f(a);
end
z = [i,a,integ];
z
i=i+1;
a = a + h;
end
(h/3)*integ
Вывод:
z =
0. -1. 1.1692372
z =
1. -0.5 8.8995236
z =
2. 0. 16.355543
z =
3. 0.5 23.175875
z =
4. 1. 24.080521
ans =
4.0134201