많은 다른 매개 변수 (이 매개 변수는 미분 방정식의 계수)에 대해 ode45를 사용하여 ODE 시스템을 해결하고 있으며 솔루션의 크기가 더 작은 매개 변수를 찾고 싶습니다. 주어진 값보다 크지 않다. 수 나는 시스템 및 정지 추가 단계에 대한 해결을 해결하면서 (이러한 매개 변수 중 일부에 대한) 솔루션이 그 (주어진) 값 보다 큰 얻는 경우 자동으로 "검색"을, ode45에 조건을 설정하는 방법MATLAB ode45 결과에 대한 조건 설정 (실행 중일 때)
?
1 월에 다음과 같은 조건을 입력 함수의 정의에 넣어서 int로 제안했습니다. 나는 이것을 시도했지만 작동하지 않는다. 몇 가지 단계를 거친 후에 (그리고 조건이 맞지는 않지만) 결과가 일정하게 유지되면서 반복이 끝나고 곧 종료된다. (잘못된 출력)
(QM, U, V, 등이다 상수와 X가 4 열)
[T,X]=ode45(@acceleration,tspan,x0);
function xprime=acceleration(T,X)
size_X=length(X);
xprime=zeros (4,1);
if X(size_X,1)>threshold
xprime(1)=0;
xprime(2)=0;
xprime(3)=0;
xprime(4)=0;
else
xprime(1)=X(3);
xprime(2)=X(4);
xprime(3)=X(1)*X(4)^2 - 2*qm*(U+V*(cos(w*T)))*F1(num,X(1),X(2));
xprime(4)= -2*X(3)*X(4)/X(1) - qm*((U+V*(cos(w*T)))/(X(1)))*F2(num,X(1),X(2));
end
end
- 위의 코드의 문제점은 무엇입니까?
- 누군가가 모니터링 기능을 ode45에 연결하도록 제안했습니다. (here). 누구든지이 작업을 수행하는 방법을 알고 있습니까? 감사합니다
도움 주셔서 감사합니다. scicomp.stackexchange에서이 질문을하기 전에 누군가가 ode45에 모니터링 기능을 부착 할 것을 제안했습니다. 여기 [link] (http://scicomp.stackexchange.com/questions/5383/setting-a-condition-on-matlab-ode45-output?noredirect=1#comment10331_5383). 어떻게해야할까요? –
나는 당신의 제안을 시험해 보았다. 하지만 작동하지 않습니다. (위에서 언급했듯이) 그 문제는 무엇입니까? –
동작이 예상대로입니다. 어쩌면 당신의 스위칭 상태가 옳지 않을 수도 있습니다. 네 번째 구성 요소를 확인 하시겠습니까? size_X가 원하는대로 작동하는지 확인해보십시오. – Jan