2014-11-09 5 views
1

) ode45 함수에 변수 입력을 보내는 데 문제가 있습니다.변수 입력 (ode 45, MATLAB

이 코드가 있습니다

function T_pdot=f_massa_log(t,T,u) 
    T_dot=(1-u)*T*log10(1/T); 
end 

을 그리고로 전화 :

[t,T_dot]=ode45(@f_massa_log,[0 50],0.01,odeset,u); 

u이 일정 할 때,이 잘 작동하지만 함수의 변화로 지금은 u를 보낼 필요 시간, 그리고 작동하지 않습니다.

누군가 도움을 줄 수 있습니까? 감사

+0

이 코드는 실행되지 않고'f_massa_log'에'T_pdot'을 정의하지 않고'T_dot' 만 정의하지만 통합 결과와 같은 이름입니다! 해결하려는 방정식이나 다른 정보를 알려주십시오. – David

+0

나는 이것을 풀고 싶다. T_dot = (1-u) * T * log10 (1/T) T와 u 시간이 바뀌다 – Hugo

답변

1

난 당신이 알려진 기능 tu 주어진 t의 측면에서 T에 대한 해결하기 위해 노력하고 있다고 가정합니다. 당신은 단순히 파생 기능이 작업을 수행 할 수 있습니다

function T_pdot=f_massa_log(t,T,u) 
    u=sin(t); %// for example 
    T_dot=(1-u)*T*log10(1/T); 
end 

하고 이전처럼 ode45를 호출합니다.

+0

문제가 해결되었다. – Hugo