Solving a non linear ODE with unknown parameter
Ältere Kommentare anzeigen
Hello ! I am working on solving an ODE equation with an unknown kinetic parameter A. I have been using python and deep learning to solve the equation and also determine the value of A , however the loss function is always in the order of 10**4 and the paramter A is wrong , I tried with different hyperparamters but it´s not working. this is the ODE equation : dDP/dt=-k1*([DP]^2) and k1=k= Ae^(1/R(-E/(T+273))) , A is in the order of 10**8, I have DP(t) data.
I am stuck and I would like to know what´s the best way to solve this using matlab ? or is there any examples similar to my problem ?
Any help is highly appreciated !
Akzeptierte Antwort
Weitere Antworten (3)
Torsten
am 14 Apr. 2022
Your ODE for D_p gives
D_p = 1/(1/D_p0 + k1*(t-t0))
where D_p0 = D_p(t0).
Now you can apply "lsqcurvefit" to fit the unknown parameter A.
This governing equations are given and you have acquired the
data.


The objective is want to find A.
From the
data, you can possibly estimate for
. Next,
can be determined from the differential equation:
can be determined from the differential equation:
Now, if R, E and T are known, then
can be determined from the algebraic equation:

Please verify this.
If the
data is uniformly distributed, then you can use this method to estimate
.
.t = -pi:(2*pi/100):pi;
x = sin(t); % assume Dp is a sine wave
y = gradient(x)/(2*pi/100); % estimate dotDp, a cosine wave is expected
plot(t, x, 'linewidth', 1.5, t, y, 'linewidth', 1.5)
grid on
xlabel('t')
ylabel('x(t) and x''(t)')
legend('x(t) = sin(t)', 'x''(t) = cos(t)', 'location', 'northwest')

1 Kommentar
khaoula Oueslati
am 14 Apr. 2022
David Willingham
am 14 Apr. 2022
0 Stimmen
Hi,
Have you seen this example for solving ODE's using Deep Learning in MATLAB?
1 Kommentar
khaoula Oueslati
am 16 Apr. 2022
Kategorien
Mehr zu Problem-Based Nonlinear Optimization finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!