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?

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 7 Mär. 2018

0 Stimmen

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

Weitere Antworten (2)

Jakub Jedrzejczyk
Jakub Jedrzejczyk am 7 Mär. 2018

0 Stimmen

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

8 Kommentare

Walter Roberson
Walter Roberson am 7 Mär. 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 am 7 Mär. 2018
Is P0 intended to represent P(0) ?
Jakub Jedrzejczyk
Jakub Jedrzejczyk am 7 Mär. 2018
Bearbeitet: Jakub Jedrzejczyk am 7 Mär. 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 am 8 Mär. 2018
Bearbeitet: Torsten am 8 Mär. 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 am 25 Jan. 2020
That is the solution. Most integrals do not have closed form solutions.

Melden Sie sich an, um zu kommentieren.

Om Yadav
Om Yadav am 24 Apr. 2020

0 Stimmen

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?

Community Treasure Hunt

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

Start Hunting!

Translated by