solve a complex second order differential equation

 Respuesta aceptada

Bjorn Gustavsson
Bjorn Gustavsson el 20 de Oct. de 2021
Editada: Bjorn Gustavsson el 20 de Oct. de 2021
The first step is to convert your second-order ODE to two coupled first-order ODEs:
Then you should write that ODE-system as a matlab-function:
function [dphidt_domegadt] = yourODEs(t,phi_w)
phi = phi_w(1);
w = phi_w(2);
dphidt = w;
if t == 0 % Here I assume that domegadt/t goes to zero as t -> 0+, perhaps there are solutions for other finite values of that ratio...
domegadt = phi^3;
else
domegadt = -2/t*dphidt - phi^3;
end
dphidt_domegadt = [dphidt;
domegadt];
This should be possible to integrate with ode45:
phi0w0 = [1 0];
t_span = [0 exp(2)]; % some limits of yours
[t,phi_w] = ode45(@(t,phi_w) yourODEs(t,phi_w),t_span,phi0w0);
HTH

9 comentarios

I am afraid I can't run this code?
My bad, forgot to combine the derivatives. Done now.
However, you seriously need to consider the division-by-zero issue, as hinted at in the code and outlined by Walter in his answer.
嘉杰 程
嘉杰 程 el 21 de Oct. de 2021
Editada: 嘉杰 程 el 21 de Oct. de 2021
I have a further question, if I have a parameter t, the eqs goes like: ,
I want to solve it when t varies from certain scale, when , I want to plot relation, given too, could you help me switch the code for it? thx
(or can we just use integral to solve this problem?)
That only has a solution when t = 1.
嘉杰 程
嘉杰 程 el 21 de Oct. de 2021
Editada: 嘉杰 程 el 21 de Oct. de 2021
What I want to plot is lane-emden eqs, refer to Lane-Emden Differential Equation -- from Wolfram MathWorld
but I can't do like that when n=3.
implies that is a contant independent of η . further tells us that which tells us that . When then because is indepdent of . This carries over to as we know the must be 0, and tells us that y must be 0 except perhaps when is infinite.
But your talk about which is irrelevant, as you have no other places with
I have a suspicion that you intended to imply that ϕ is a family of functions in variable t but your notation is wrong for that.
I do not see any resemblence between the forms posted in https://www.mathworks.com/matlabcentral/answers/1567938-solve-a-complex-second-order-differential-equation#comment_1793988 and the link to tbe Lane-Emden Differential Equation
every t determine certain curvature of phi and eta, when eta=0, phi(eta)=1, phi'(eta)=0, that's one side, another side is determined by t
actually this is only a specific function when n=3

Iniciar sesión para comentar.

Más respuestas (1)

Walter Roberson
Walter Roberson el 20 de Oct. de 2021
You cannot use any numeric solver for that. You have initial conditions at η = 0, but at 0 you have a division by 0 which gets you a numeric infinity. That numeric infinity is multiplied by the boundary condition of 0, but numeric infinity times numeric 0 gives you NaN, not 0.
If you work symbolically you might think that the infinity and the 0 cancel out, but that only works if the φ' approaches 0 faster than 1/η approaches infinity, which is something that we do not immediately know to be true.

3 comentarios

So is there any suggestion?
If I let to be a quite small number?
That is not enough. The ratio of 1/t*dphi/dt has to behave well for t = 0.

Iniciar sesión para comentar.

Categorías

Más información sobre Programming en Centro de ayuda y File Exchange.

Productos

Versión

R2021b

Etiquetas

Preguntada:

el 20 de Oct. de 2021

Comentada:

el 22 de Oct. de 2021

Community Treasure Hunt

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

Start Hunting!

Translated by