X0=linspace(-.3,.3,10);
[T,X] = ode45(@difflossy,[0 10],X0);
plot(T,X,'-');
function dX = difflossy(T,X)
if X<-1
dX=0;
else
dX= X.*(1-X);
end
end
위의 코드는 비선형 미분 방정식을 푸는 코드입니다. 미분 방정식은 시간의 이동 특이점으로 나타납니다. 경고가 표시됩니다. 경고 : 오류가 t=1.466319e+00.
입니다. tspan이 [0 1]로 축소되면 그래프가 나타납니다. 그러나 나는 오랫동안 무슨 일이 일어나고 있는지를 알아야합니다. 나는 if와 for 루프가 X의 값이 1보다 작 으면 dX = 0
과 같은 조건을 부과한다고 생각한다. 그러나 내가 같은 것을 구현 한 방식은 다소 잘못되었습니다. 제발 도와주세요MATLAB에서 특이점 다루기
아마도 다른 해결사를 시도해보십시오. 자세한 내용은 문서의 [ODE 해결사 선택] (https://uk.mathworks.com/help/matlab/math/choose-anode-solver.html)을 참조하십시오. – am304
문제의 성격에 영향을 미치지 않으므로 'X <-1'는 배열'X'를 정확히 계산합니까? – LutzL