我正在嘗試編寫一個循環來計算每個步驟中定積分的值。函數F非常複雜。簡單地說,它集成了一系列關於s的項,從s = tn-(n/2)到s = tn +(n/2)。整合後,F仍然有一個變量t。所以你可以說F(t)=積分(f(s,t)),其中f(s,t)是「int(」在行「F = @t ...」之後的大混亂項。在最後一行中,我想在F計算f(s,t)的積分後,在t = tn時計算F(t)。在計算卷積積分時,未定義的函數或變量's'
但是,運行此操作後,出現錯誤「Undefined function or variable' S'。」
function [ bigTheta_n ] = Untitled(bigTheta_o, bigOmega_o)
nt=5001; %since (50-0)/.01 = 5000
dt = .01; % =H
H=.01;
l=.05;
bigTheta_n = ones(nt,1);
bigTheta_n(1)=bigTheta_o; %theta_o
bigOmega_n = ones(nt,1);
bigOmega_n(1)=bigOmega_o; %omega_o
littleOmega_n = ones(nt,1);
epsilon=10^(-6);
eta = epsilon*10;
t_o=0;
function Keta = K(t)
Keta = (422.11/eta)*exp((5*(4*((t-tn)^2)/eta^2)-1)^(-1))
end
function F = F(t)
F = int(Keta(eta*t-s)*littleOmega_n,s,tn-(n/2),tn+(n/2))
end
for n=1:4999
tn=t_o+n*dt;
littleOmega_n(n) = bigOmega_n(n) - sin(bigTheta_n(n))*cos(2*pi*tn/epsilon)/(2*pi*l);
F = @(t) int(Keta(eta*t-s)*littleOmega_n,s,tn-(n/2),tn+(n/2));
bigTheta_n(n+1) = bigTheta_n(n) + H*F(tn)
end
end
即使我擺脫了線的‘F = @(T)...’,並替換爲以下(並將其置於其中凱塔= K(T)的定義)
function F = F(t, ti, tf)
F = int(Keta(eta*t-s)*littleOmega_n,s,ti,tf)
end
然後更換最終與
bigTheta_n(n+1) = bigTheta_n(n) + H*F(tn, tn-(n/2), tn+(n/2))
線
bigTheta_n(n+1) = bigTheta_n(n) + H*F(tn)
我仍然得到同樣的錯誤 「未定義的函數或變量的'。」
什麼是這行'sys s'? – JayInNyc 2014-09-01 02:34:49
我刪除它,並沒有什麼區別 – 2014-09-01 02:39:39