Numerically solve a 3rd order differential equation with 3 unknowns

4 ビュー (過去 30 日間)
Raffaele
Raffaele 2023 年 6 月 1 日
コメント済み: Torsten 2023 年 6 月 3 日
Hi, I have a 3rd order differential equation in y, with 3 unknowns a, b, c. To simplify imagine the equation is:
diff(y, t, 3) + a.*diff(y, t, 2) + b.*diff(y, t) + y.^(3/2) + c.*y == 0;
I know the discrete values of y and the time vector. I want to know tha values of a, b, c that solve this equation. Clearly there will be more combination of this values, but is there a way to solve it? (like with ode function or others).
One idea would be to express all the derivatives as function of y (like using finite differences) and then solve, is there a way to do it automatically on matlab?
  2 件のコメント
Sam Chak
Sam Chak 2023 年 6 月 1 日
Can you confirm if the data pair is absolutely governed by the dynamics?
Raffaele
Raffaele 2023 年 6 月 2 日
編集済み: Raffaele 2023 年 6 月 2 日
Actually the dynamic is more complicated, because there are also multiplications and divisions of the unknown parameters and also combination with other known parameters (like mass, spring stiffness, ecc.), like shown in my answer below. I just wrote that equation to simplify the presentation of the problem.

サインインしてコメントする。

採用された回答

Torsten
Torsten 2023 年 6 月 1 日
編集済み: Torsten 2023 年 6 月 1 日
Use "gradient" three times to get approximations for y', y'' and y''' in the points of your t-vector.
Let diff_y, diff_y2, diff_y3 be these approximations as column vectors of length n.
Now form a matrix A as
A = [diff_y2,diff_y,y]
and a column vector v as
v = [-y.^(3/2) - diff_y3]
Then approximations for a, b and c can be obtained using
sol = A\v
with
a = sol(1)
b = sol(2)
c = sol(3)
  12 件のコメント
Raffaele
Raffaele 2023 年 6 月 3 日
Thank you, so now I try to insert it in an lsqnonlin to find the best option for a, b, c
Torsten
Torsten 2023 年 6 月 3 日
For the lsqnonlin fitting procedure, you can try two ways:
The first is without using the ode integrator and generating y',y'' and y''' from your data by using the "gradient" function.
The second is with the ode integrator by integrating the differential equation for given parameters a, b and c and by comparing the result with your given data for y.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeNumeric Solvers についてさらに検索

製品


リリース

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by