2015-09-15 3 views
0

Я пытаюсь построить петлю для определенного интеграла от 0 к y с шагом 0.1 для y=0 к y=20 и получить значение для каждой итерации цикла (изменения y) на диаграмме.Встроенные петлю для определенного интеграла

int(2.906663106*x*(1/(1+1.38*x^4))^.4311594203 - 3.458929096*x^5/((1/(1+1.38*x^4))^.5688405797*(1+1.38*x^4)^2)) 

ответ

1

Вы можете использовать integral функцию Matlab и запустить это внутри для цикла

val = zeros(1,201); 

y_step = 0.1; 
y_max = 20; 

count = 1; 

for yy = 0:y_step:y_max 

    fun = @(x) (2.906663106 .* x .* (1 ./ (1 + 1.38 .* x.^4)).^0.4311594203 - 3.458929096 .* x.^5 ./ ((1 ./ (1 + 1.38 .* x.^4)).^0.5688405797 .* (1 + 1.38 .* x.^4).^2)); 
    intgrl = integral(fun, 0, yy); 

    val(count) = intgrl; 
    count = count + 1; 
end 

figure 
plot(val) 

Вы будете иметь каждое значение интеграла в диапазоне [0, yy] во время цикла, сохраненного в val.

Редактировать: Отредактированный ответ из-за более детального вопроса в комментарии.

+0

Спасибо за ответ. Я упомянул, что определенный интеграл находится между 0 и y (интервал равен [0, y]), когда y меняется в каждом цикле, а не x –

+0

iha ve попытался запустить обновленный код и это сообщение об ошибке popped up Ошибка с помощью subsindex Функция «subsindex» не определена для значений класса «function_handle». Ошибка в circ3 (строка 11) intgrl = интеграл (fun, 0, yy); –

+0

Попробуйте установить все операторы интегральной функции в. * И ./ (я также изменил ее и в ответе). – bastelflp

Смежные вопросы