ODE solver problem with input
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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));
0 commentaires
Réponses (1)
Torsten
le 2 Sep 2019
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
0 commentaires
Voir également
Catégories
En savoir plus sur Ordinary Differential Equations dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!