I don't understand what is going wrong with my code!!, I get error of a matrix singular

function dy = rocketequat( t,y )
%UNTITLED6 Summary of this function goes here
g=9.81; % constant of gravity m/s^2
Ve=2800;%celerity of inject gas m/s
m0=500000;%initial mass =500000kg
dmdt=-2300;%kg/s
dy(1)= -g*sin(y(2)) - Ve * dmdt/( m0 - dmdt*t );%dy(1)=dvdt acceleration
dy(2)= ( g/y(1) )*cos( y(2) ); %dy(2)=dbetadt variation in angle of inclination
end
%in a script i wrote
[t,y]=ode23s(@rocketequat,[0 160],[0 pi/2]);
% i gut this message:
In rocket (line 1)
Warning: Matrix is singular, close to singular or badly scaled. Results may be inaccurate. RCOND = NaN.

답변 (1개)

Stephan
Stephan 2018년 12월 30일
편집: Stephan 2018년 12월 30일
Hi,
you do a divide by zero at the initial point - use another x0 for y(1) - for example try:
[t,y]=ode45(@rocketequat,[0 160],[0.0001 pi/2]);
plot(t,y(:,1),t,y(:,2))
function dy = rocketequat(t,y)
%UNTITLED6 Summary of this function goes here
g=9.81; % constant of gravity m/s^2
Ve=2800;%celerity of inject gas m/s
m0=500000;%initial mass =500000kg
dmdt=-2300;%kg/s
dy(1)= -g.*sin(y(2)) - Ve .* dmdt./( m0 - dmdt*t );%dy(1)=dvdt acceleration
dy(2)= ( g./y(1) ).*cos( y(2) ); %dy(2)=dbetadt variation in angle of inclination
dy=dy';
end
gives:
There is also no need for the useage of a stiff solver - ode45 will do the job.
Best regards
Stephan

댓글 수: 7

i think this is not the resultats that i wanted hhh
anyway .thanks m.stephen .
Stephan
Stephan 2018년 12월 30일
편집: Stephan 2018년 12월 30일
i think, then there is an issue in your equations. Your question was why you get this warnings/errors - that is what i answered to. I did not change your equations - so this is not part of my answer, due to it is not part of your question.
you re right ;dy(1) should be egal to :
-g.*sin(y(2)) + Ve .* dmdt./( m0 - dmdt*t )
thinks for your efforts m.stephen

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Particle & Nuclear Physics에 대해 자세히 알아보기

질문:

2018년 12월 30일

댓글:

2019년 1월 2일

Community Treasure Hunt

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

Start Hunting!

Translated by