Having a system of three state I put the odes in a function and the script to solve the given function I'm getting NaN for output of ode45

조회 수: 2 (최근 30일)
my function is
function xdot=func4(t,x)
A=[0 1 0;0 0 1;-1 -2 -3]
B=[0 0;0 1;1 0]
C1=[0 1]'
C2=[1 0 ;0 1]
C3=[1 0]'
s=C1*x(1)+C2*[x(2);x(3)]+C3*x(1)^(3/4)
u=[x(1);0]+[x(2)+x(3);-x(3)]-[0;3/5*x(2)*x(1)^-2/5]-[0 0.1;0.1 0]*s/norm(s)+[x(1);0]+[2*x(2)+2.9*x(3);-0.1*x(2)-x(3)]
xdot=A*x+B*u
end
and by using ode 45 it give me nan state plese help me
tspan=[0 8]
x0=[0;-0.15;0.1]
[t,x]=ode45('func4',tspan,x0)

채택된 답변

Walter Roberson
Walter Roberson 2018년 11월 30일
In your sub-expression
[0;3/5*x(2)*x(1)^-2/5]
you have the problem that x(1) can go to 0, leading to a division by 0.
x0=[0;-0.15;0.1]
... and x(1) being 0 is your initial condition so it is guaranteed to be a problem.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Ordinary Differential Equations에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by