2014-10-09 2 views
0

Я хочу интегрировать 1D-функцию с использованием quadgk, но для другого значения параметра, содержащегося внутри подынтегрального выражения. Есть простой способ сделать это? Ниже мы надеемся, иллюстрирует мою проблему:Интегрируйте функцию двух переменных только по одной переменной в matlab

function [out] = integrand(x,t) 
#Calculations 
end 


t = linspace(0,1,10); 
q = quadgk(@integrand,0,Inf, OPT_PARAM = t); #Apply quadgk on integrand for each value in t 

plot(t, q) # q is a function of t 

ответ

1

Вы можете сделать это с for цикла?

function [out] = integrand(x,t) 
%Calculations 
end 

t = linspace(0,1,10); 
q = zeros(size(t)); % pre-allocate q 
for k=1:length(t) 
    q(k) = quadgk(@(x)integrand(x,t(k)),0,Inf); %Apply quadgk on integrand for each value in t 
end 

plot(t, q) % q is a function of t 

Подробнее о параметризации функций на http://www.mathworks.co.uk/help/matlab/math/parameterizing-functions.html.

+0

Спасибо, что работает отлично! – Jack

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