我在Matlab中實現一個函數有很大的困難,它調用了我在不同的.m文件中編程的其他函數。被卡住的部分是在另一個函數中輸入的不同值的總和,在另一個函數內還有一個和的部分。第一個和的下限是第二個和的上限。如何在Matlab中計算第二和的上限是第一和的下限的雙和?
我有了Hh(N,x)函數對於n工作正常輸入作爲一個向量,X輸入作爲一個標量。由於n的矢量化輸入,因此可以通過調用sum(Hh(0:n,x))快速計算In函數內Hi的和。
我想對In函數做同樣的事情,但是因爲in In現在範圍從0到k-1,而在外部函數k範圍從1到n,我不知道如何評估這個雙重和,其中內部總和的外部總和的下限作爲上限。我想盡可能有效地評估這個雙和,因爲後來我想用這些公式做很多模擬。現在我評價功能在N次,存儲在一個向量中的每個值,然後取之和,這是非常計算密集...
我對在功能Matlab代碼是:
function in = In(n,c,alphaa,betaa, delta)
ie = 0:n;
in = -(exp(alphaa*c)/alphaa)...
.*sum((betaa/alphaa).^(n-ie).*Hh(ie,betaa*c-delta))...
-(betaa/alphaa).^(n+1)
end
對於外部函數的Matlab代碼,讓我們把它叫做函數f現在是:
function f = F(n,a,mu,sigma,eta1,T)
for k = 1: n
vector(k) = In(k-1,a-mu*T,-eta1,-1/(sigma*sqrt(T)),-(sigma*eta1*sqrt(T)));
end
f = sum(vector);
end
我怎樣才能使n的輸入內。在矢量化,讓我不必單獨存儲所有輸入的n值都和然後計算總和,但直接爲輸入的vec計算總和tor n。
任何幫助表示讚賞,因爲我現在嚴重卡住了!先謝謝你!