2017-12-22 12 views
1

저는 MATLAB에 상당히 익숙하며 ode45() 함수를 사용하여 두 함수를 통합하려고합니다. 내 코드 : TSIITFII 내 두 함수의 값을 포함하는 열 벡터 1x151입니다Ode45 in MATLAB

[w,x] = ode45(@(w,x) (TSII - TFII) * w , [0 2], 0); 

. w은 아직 가치가 없지만 길이가 1x151 인 열 벡터로 만들려고했는데 문제가 해결되지 않았습니다.

@(W,X)(TSII-TFII)*W returns a vector of length 151, but the length of initial conditions vector is 1 :

나는 다음과 같은 오류 메시지가 나타납니다.

@(W,X)(TSII-TFII)*W에 의해 반환 된 벡터와 초기 조건 벡터는 동일한 수의 요소를 가져야합니다.

초기 조건 벡터를 TSIITFII과 동일한 길이로 변경할 수 있습니까?

또는 15130 값을 만들기 위해 ode45() 내부 루프를 사용해야합니까?

답변

0

내가 조금 추측하지만 그것을 시도 줄입니다 :

ode45() 위치 x에서 함수 값을 보간하기 위해 익명 함수 @(w,x)을 부탁합니다. 쓰는 동안 TSII 및 TFII가 표 형식의 함수 값이면 예상 결과를 반환하지 않습니다.

TSII 대신 [interp1][1](TSII,x)과 같은 것을 사용해야합니다.

@(w,x) (interp1(TSII,x) - interp1(TFII,x)) .* w 

는 또한 요소 현명한 곱셈에 대한 .*주의 : 같은 함수가 보일 것입니다.

+0

이 질문/답변보기 : https://stackoverflow.com/q/19732442/2278029 – horchler