각 단계에서 한정 분모의 값을 계산하는 루프를 작성하려고합니다. 함수 F는 매우 복잡합니다. 간단히 말하면, s = tn- (n/2)에서 s = tn + (n/2)까지 s와 관련하여 여러 용어를 통합합니다. 통합 후, F는 여전히 변수 t를가집니다. 따라서 F (s, t)는 "F = @t ..."에서 "int ("다음에 오는 용어의 큰 혼란입니다. 마지막 줄에서, F가 f (s, t)의 적분을 계산 한 후에 t = tn에서 F (t)를 계산하려고합니다.정의되지 않은 함수 또는 변수 's'를 회귀 적분 계산시 Matlab에서
그러나 이것을 실행하면 "정의되지 않은 함수 또는 변수 ' 의 '. "
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
I 라인을 제거하더라도"... 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
나는 그것을 제거하고 아무런 차이가 없었습니다. –