Can Fourier Series Simplify Solving Nonlinear ODEs with Oscillatory Inputs?

en51nm
Messages
1
Reaction score
0
Hi all,

I have a nonlinear ODE in the following form:

a x'' + b |x'|x' + c x' + d x = y

where x and y are functions of time and a,b,c and d are constants. As far as I can tell the only way to solve this is numerically, something I've managed to do successfully using a Rung-Kutta scheme. This however is a lengthy calculation, since the driving function (y) is oscillatory I am mostly interested in the phase and magnitude of the response I am looking for an alternative method.

I'm wondering if I can use a Fourier series to represent the driving function y and then calculate the resulting Fourier series for x (actually it is the x' term I am most interested in) using an FFT? But I'm not sure if this is possible due to the nonlinear term in x'.

Any help/suggestions would be greatly appreciated.
 
Physics news on Phys.org
en51nm said:
Hi all,

I have a nonlinear ODE in the following form:

a x'' + b |x'|x' + c x' + d x = y

where x and y are functions of time and a,b,c and d are constants. As far as I can tell the only way to solve this is numerically, something I've managed to do successfully using a Rung-Kutta scheme. This however is a lengthy calculation, since the driving function (y) is oscillatory I am mostly interested in the phase and magnitude of the response I am looking for an alternative method.

I'm wondering if I can use a Fourier series to represent the driving function y and then calculate the resulting Fourier series for x (actually it is the x' term I am most interested in) using an FFT? But I'm not sure if this is possible due to the nonlinear term in x'.

Any help/suggestions would be greatly appreciated.

This is more of a question than an answer. If x and y are both functions of time (i.e., x(t) and y(t)), then can we not pick any x(t) to solve for y(t)? For example, if x(t)=t^3 then:

x'(t) = 3t^2, x''(t) = 6t

Then let y(t) = t^4 + d t^3 + c t^2 + 6at + 9b, and you have an x(t) and y(t) such that a x''(t) + b |x'(t)|x'(t) + c x'(t) + d x(t) = y(t), but there are in fact an infinite number of (x(t),y(t)) pairs, so this solution is somewhat trivial.

Might you mean x is a function of y? Then: a x''(y) + b |x'(y)|x'(y) + c x'(y) + d x(y) = y

Or I'm just not understanding something. Let me know.
 
en51nm said:
Hi all,

I have a nonlinear ODE in the following form:

a x'' + b |x'|x' + c x' + d x = y

where x and y are functions of time and a,b,c and d are constants.
A driven spring mass damper system with linear and quadratic damping? Ouch.

As far as I can tell the only way to solve this is numerically, something I've managed to do successfully using a Rung-Kutta scheme. This however is a lengthy calculation, since the driving function (y) is oscillatory I am mostly interested in the phase and magnitude of the response I am looking for an alternative method.

I'm wondering if I can use a Fourier series to represent the driving function y and then calculate the resulting Fourier series for x (actually it is the x' term I am most interested in) using an FFT? But I'm not sure if this is possible due to the nonlinear term in x'.
That quadratic drag (worse than quadratic, there's an absolute value) is going to make a Fourier decomposition tough.

The damping is going to make this a stiff system, and the quadratic damping is going to make the stiffness rather interesting.

The key problem with a fixed step size integrator such as basic Runge Kutta is that the stiffness mandates that the step size be very small. It's going to take a long time to solve and will lose accuracy in the process.

Have you tried using adaptive techniques such as Runge Kutta Fehlberg, Cash-Karp, adaptive Adams Bashforth Moulton, Gauss Jackson?

Have you tried using adaptive integration techniques such as Kaps-Rentrop, various descendants of the Gear technique that are aimed specifically at stiff problems?
 
Back
Top