ODE solver problem with input

조회 수: 2 (최근 30일)
Sebastian Marth
Sebastian Marth 2019년 8월 31일
답변: Torsten 2019년 9월 2일
I'm new to matlab so please be lenient :)
So I'm trying to solve a differential equation with the ode45 solver. The problem is the differential equation contains a function which is dependent by the differential equation itself.
I'm trying to calculate the air-density in dependence of the height. The heigth ist the solution of the differential equation.
I hope my problem is understandable.
function ypunktpunkt = Flug_DGL(t,y)
function rohx = Dichte(y)
if y(1) <= 11000
T(y(1)) = 15.04-0.00649*y
p(y(1)) = 101.29*((T(y(1))+273.1)/288.08)^5.256
elseif y(1) > 11000 & y(1) <= 25000
T(y(1)) = -56.46
p(y(1)) = 22.65*exp(1.73-0.000157*y(1))
else y(1) > 25000
T(y(1)) = -131.21+0.00299*y(1)
p(y(1)) = 2.488*((T(y(1))+273.1)/216.6)^(-11.388)
end
rohx(y(1)) = p(y(1))/(0.2896*(T(y(1))+273.1))
end
u = 1500;
m_null = 10000;
m_punkt = 120;
alpa = 45;
R = 8000;
cw = 0.7;
A_front = 8;
roh=Dichte(y)
g_null = 9.81;
ypunktpunkt = [y(2) ; u*sin(alpa)*m_punkt/(m_null-m_punkt*t)-R^2*g_null/(R+y(1))^2-y(2)^2*roh*cw*A_front/2];
end
[t,y] = ode45('Flug_DGL',[1,300],[0;0]);
plot(t,y(:,1));

답변 (1개)

Torsten
Torsten 2019년 9월 2일
function main
[t,y] = ode45(@Flug_DGL,[1,300],[0;0]);
plot(t,y(:,1));
end
function ypunktpunkt = Flug_DGL(t,y)
u = 1500;
m_null = 10000;
m_punkt = 120;
alpa = 45;
R = 8000;
cw = 0.7;
A_front = 8;
roh = Dichte(y)
g_null = 9.81;
ypunktpunkt = [y(2) ; u*sind(alpa)*m_punkt/(m_null-m_punkt*t)-R^2*g_null/(R+y(1))^2-y(2)^2*roh*cw*A_front/2];
end
function rohx = Dichte(y)
if y(1) <= 11000
T = 15.04-0.00649*y(1);
p = 101.29*((T+273.1)/288.08)^5.256;
elseif y(1) > 11000 & y(1) <= 25000
T = -56.46;
p = 22.65*exp(1.73-0.000157*y(1));
else y(1) > 25000
T = -131.21+0.00299*y(1);
p = 2.488*((T+273.1)/216.6)^(-11.388);
end
rohx = p/(0.2896*(T+273.1))
end

카테고리

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