solve 3rd order differential equation
6 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Dear Matlab Users,
I am struggling for solving a complicated 3rd order differential equation. Kindly suggest some guidelines for solving following differential equation with inintial conditions, h=0.1, h' = 0.3, h'' = 1. I refer ode45, solvng differential equation pages, here I am not able to convert this equation in the form of h'''+h''+h'+h = f(r).

Thank you.
Yashika
0 commentaires
Réponse acceptée
Ameer Hamza
le 13 Sep 2020
If you have the symbolic toolbox, then you can use odeToVectorField to convert your ODE into the standard form of H' = f(r, H) needed for ode45. For example
syms h(r)
term1 = (diff(h, r, 2) + 1/r*diff(h, r, 1) + 1/r*diff(h, r, 1)^3)/(1 + diff(h, r, 1)^2)^(3/2);
rhs = 2*r - r^2*h^3*diff(term1, r, 1);
lhs = h/r + diff(h, r, 1);
eq = lhs == rhs;
V = odeToVectorField(eq);
odefun = matlabFunction(V, 'Vars', {'r', 'Y'}); % Y denotes h here.
IC = [0.1; 0.3; 1];
rspan = [0 10];
[r_sol, h_sol] = ode45(odefun, rspan, IC);
However, there seems to be a singularity in the ODE, or there is a typing mistake, the ode45 gives NaN output.
2 commentaires
Plus de réponses (0)
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!