Info

此问题已关闭。 请重新打开它进行编辑或回答。

Query regarding solving differential equation

1 次查看(过去 30 天)
I'm trying to solve equation of a mass damper system shown in the image. The x (LHS) is the unknown displacement which is to be solved from the equation.I know y and dy/dx values at each instant of time (obtained from experiments). While solving using ode45 I'm not able to update the value of y and dy/dx for each time interval. How else can I solve the equation to get value of x. I used central difference scheme but the answer is diverging from the expected values drastically, when marched in time. Thank you in advance.

回答(2 个)

sloppydisk
sloppydisk 2018-5-24
I'm guessing you are trying to use ode45 with variable timestep, make sure to pass y and dy/dx as an interpolation function such that it is defined for any point in time. For example like this:
yInterp = @(thisTime) interp1(t, y, thisTime);

Torsten
Torsten 2018-5-24
编辑:Torsten 2018-5-24
The example
ODE with Time-Dependent Terms
under
https://de.mathworks.com/help/matlab/ref/ode45.html
shows how to solve your problem using ODE45.
Your y and dy/dt should take the role of f and g in the example.
Best wishes
Torsten.

此问题已关闭。

Community Treasure Hunt

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

Start Hunting!

Translated by