2014-10-09 73 views
0

我想使用quadgk積分1D函數,但是對於被積函數中包含的參數的不同值。是否有捷徑可尋?下面有希望說明我的問題: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 2014-10-09 16:27:05