dsolve - Unable to find explicit solution

Hi there! I'm trying to solve differetial equation:
Unfortunately result of code:
gamma = 1.4
P0 = 1
Pe = 9.4
R = 0.168
syms S P(t)
eqn = diff(P,t) == (3/R)*S*(Pe-P0)*((P/P0)^(1/gamma))*(1-((P0/P)^(1/gamma))*((Pe-P)/(Pe-P0)))^(2/3);
dsolve(eqn)
is:
Warning: Unable to find explicit solution. Returning implicit solution instead.
> In dsolve (line 208)
In Untitled (line 7)
ans =
1
1/root(z^6 + z^5 + z^4 + z^3 + z^2 + (5*z)/47 + 5/47, z, 1)^7
solve(int(42^(2/3)/(P^(5/7)*(5*P^(2/7) - 47/P^(5/7) + 42)^(2/3)), P, 'IgnoreSpecialCases', true, 'IgnoreAnalyticConstraints', true) - 150*S*t - C11 == 0, P)
What i'm doing wrong?

 Respuesta aceptada

Walter Roberson
Walter Roberson el 7 de Mzo. de 2018

0 votos

Nothing. It just does not have a closed form solution that can reasonably be found.

Más respuestas (2)

Jakub Jedrzejczyk
Jakub Jedrzejczyk el 7 de Mzo. de 2018

0 votos

I want to fit this equation in experimental data. Is it possible to do it by means of Levenberg-Marquardt method?

8 comentarios

Walter Roberson
Walter Roberson el 7 de Mzo. de 2018
What is the goal of the fitting? To find S, which appears as a linear constant on the right hand side?
Walter Roberson
Walter Roberson el 7 de Mzo. de 2018
Is P0 intended to represent P(0) ?
Jakub Jedrzejczyk
Jakub Jedrzejczyk el 7 de Mzo. de 2018
Editada: Jakub Jedrzejczyk el 7 de Mzo. de 2018
Exactly, S is laminar burning velocity and I must to find it through fitting this equation to experiment data which is the pressure-time curve. P0 is the initial pressure and is idependent to P(0). Pe, Rvessel, and gamma together with P0 represents known parameters.
Torsten
Torsten el 8 de Mzo. de 2018
Editada: Torsten el 8 de Mzo. de 2018
Use ODE45 to solve your ODE in the region of interest for t for an S-value of S=1. If the solution is P1, then the solution for general S is P=S*P1. Thus you have to solve the linear system P1*S=P_experimental for S which gives S=P1\P_experimental. No optimizer needed.
Best wishes
Torsten.
I tried to do what you said but with no result. Maybe you could tell me how to rewrite my code.. Thank you for your help
tspan = [0 0.1];
R = 0.168 % meters
P0 = 1 % bar
Pe = 9.7 % bar
gamma = 1.4
S = 1 % meters per second
y0 = 0;
[t,y] = ode45(@(t,y) (3/R)*S*(Pe-P0)*((y/P0)^(1/gamma))*(1-((P0/y)^(1/gamma))*((Pe-y)/(Pe-P0)))^(2/3), tspan, y0);
[t,y]
P_extrap = interp1(y(1,:), t, times_data_measured_at);
S_estimated = P_extrap \ measured_P;
Can someone solve this:
>> syms y(t);
dsolve('Dy=sin(t)*cos(t)+2-(y*cos(t))')
ans =
C5*exp(-sin(t)) + exp(-sin(t))*int((exp(sin(t))*(sin(2*t) + 4))/2, t, 'IgnoreAnalyticConstraints', true)
Walter Roberson
Walter Roberson el 25 de En. de 2020
That is the solution. Most integrals do not have closed form solutions.

Iniciar sesión para comentar.

Om Yadav
Om Yadav el 24 de Abr. de 2020

0 votos

We got it very well that closed formula for my problem does not exist. The question is, how to get a numerical solution using dsolve?

Preguntada:

el 7 de Mzo. de 2018

Respondida:

el 24 de Abr. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by