2014-08-30 69 views
0

我試圖創建一個等於卷積積分的函數F(t),然後通過取值F(t)來計算theta_n(n + 1) TN)。但是,對於類型爲「char」的輸入參數,我收到錯誤「Undefined function'F'」。有什麼問題?類型爲'char'的輸入參數的未定義函數'F'

function [ theta ] = Untitled(theta_o,omega_o) 
nt=5001; %since (50-0)/.01 = 5000 
dt = .01; % =H 
H=.01; 

theta_n = ones(nt,1); 
theta_n(1)=0; %theta_o 
omega_n = ones(nt,1); 
omega_n(1)=-0.4; %omega_o 
epsilon=10^(-6); 
eta = epsilon*10; 
t_o=0; 

for n=1:4999 
    tn=t_o+n*dt; 
    F := int((422.11/eta)*exp((5*(4*((eta*t-s-tn)^2)/eta^2)-1)^(-1))*omega, s,tn- (n/2),tn+(n/2)) 
    theta_n(n+1) = theta_n(n) + h*F(tn); 
end 

end 
+1

':='是無效的matlab語法。不知道你打算實施什麼。 – Daniel 2014-08-30 21:59:35

+0

您是否正在查看本頁['int']的版本(http://www.mathworks.com/help/symbolic/mupad_ref/int.html)?閱讀該頁面頂部的通知。您正在尋找符號工具箱中['sym/int'](http://www.mathworks.com/help/symbolic/int.html)的文檔,它實際上是相同的,但直接在Matlab中工作。然而,我不確定sym/int會像你期望的那樣返回一個symfun。 – horchler 2014-08-30 22:06:41

+0

我正在嘗試編寫一個循環來計算每一步中定積分的值。函數F非常複雜。簡單地說,它集成了一系列關於s的項,從s = tn-(n/2)到s = tn +(n/2)。整合後,F仍然有一個變量t。所以你可以說F(t)=積分(f(s,t)),其中f(s,t)是「int(」後面的大亂子,在for循環的最後一行,我想在F計算f(s,t)的積分之後,在t = tn處評估F(t) – 2014-08-31 22:00:29

回答

0

F = @(tn) ...;怎麼樣?

也許你在這段代碼中混淆了一些其他的東西,例如Hh等等......

相關問題