Fast solving method for Lorenz oscillator
A rapid numerical solving method of a Lorenz attractor kinetic system is characterized by comprising the following specific steps:
step one, executing two parallel calculation steps 1a and 1b on a previous recursion value of an equation variable of a Lorenz attractor kinetic system, respectively obtaining a next recursion value of the equation variable, and then executing an average calculation step 1c to obtain a next recursion value 1 of the equation variable;
step two, executing two parallel computing steps 2a and 2b on the previous recursion value of the Lorenz attractor kinetic system equation variable, respectively obtaining the recursion intermediate value of the equation variable, and then executing an average computing step 2c to obtain the recursion intermediate value of the equation variable; then, executing two parallel calculation steps 2d and 2e on the recursion intermediate value of the equation variable obtained in the step 2c, respectively obtaining the next recursion value of the equation variable, and then executing an average calculation step 2f to obtain the next recursion value 2 of the equation variable;
and step three, substituting the next recursion value 1 of the equation variable obtained in the step one and the next recursion value 2 of the corresponding equation variable obtained in the step two into a formula for calculation, and finally obtaining the next recursion value of the equation variable.
2. The method for fast numerical solution of a Lorenz attractor kinetic system according to claim 1, wherein the Lorenz attractor kinetic system equation is specifically as follows:
in the formula (1), x, y and z represent the variables of the equation,respectively, the first derivative of the equation variable, and σ, r, b represent the system parameters of the constant.
3. The method for fast numerical solution of Lorenz attractor kinetic system of claim 1, wherein,
in step one, step one is divided into three substeps 1a, 1b, 1c, wherein,
in step 1a, for the Lorenz attractor kinetic system equation, the previous recursion value of the equation variable is usedThe solution is carried out in the formula (2) to obtain the next recursion valueThe formula (2) is shown as follows:
in step 1b, the previous recursion value of Lorenz attractor kinetic system equation variable is set The solution is carried out in the formula (3) to obtain the next recursion value of the equation variableThe formula (3) is shown as follows:
in equations (2) and (3), the superscript n of the variable denotes the nth data of the variable, and the subscript 1 of the variable denotes the first step of the recursion process; the superscript n +1 of the variable denotes the n +1 th data of the variable, and the subscript 1 of the variable denotes the first step of the recursion process; h represents a recurrence step length H; in addition, steps 1a and 1b are separately computed in parallel;
in step 1c, averaging the next recursion values of the variables solved in step 1a and step 1b to obtain the next recursion value 1 of the equation variable.
4. The method for fast numerical solution of Lorenz attractor kinetic system of claim 1, wherein,
in step two, step two is divided into six sub-steps 2a, 2b, 2c, 2d, 2e and 2f, wherein,
in step 2a, the previous recursion value of Lorenz attractor kinetic system equation variable is set The equation variable recursion intermediate value is obtained by solving the equation variable in the formula (4)
The formula (4) is shown as follows:
in step 2b, the previous recursion value of Lorenz attractor kinetic system equation variable is set Substituting formula (5) to solve to obtain equation variable recursion intermediate valueThe formula (5) is shown as follows:
in equations (4) and (5), the superscript n of the variable denotes the nth data of the variable, and the subscript 2 of the variable denotes the second step of the recursion process; the superscript n +1/2 of the variable denotes the n +1/2 th intermediate variable data of the variable, the subscript 2 of the variable denotes the second step of the recursion process; h represents a recurrence step H/2;
in addition, the steps 2a and 2b are independently calculated in parallel;
in the step 2c, averaging the equation variable recurrence intermediate values solved in the steps 2a and 2b to obtain an equation variable recurrence intermediate value;
in step 2d, the intermediate variable data values determined in step 2c are usedSubstituting formula (6) to solve to obtain the next recursion value of equation variableThe formula (6) is shown as follows:
in step 2e, the intermediate variable data values determined in step 2c are usedSubstituting formula (7) to solve to obtain the next recursion value of equation variableThe formula (7) is shown as follows:
in equations (6) and (7), the superscript n +1 of the variable denotes the n +1 th data of the variable, and the subscript 2 of the variable denotes the second step of the recursion process; the superscript n +1/2 of the variable denotes the n +1/2 th intermediate variable data of the variable, the subscript 2 of the variable denotes the second step of the recursion process; h represents a recurrence step H/2;
in addition, steps 2d, 2e are separately calculated in parallel;
in step 2f, the corresponding variable values found in substeps 2d, 2e are averaged to obtain the next recursion value 2 of the equation variable.
5. The method for fast numerical solution of Lorenz attractor kinetic system of claim 1, wherein,
in the third step, substituting the next recursion value 1 of the equation variable obtained in the first step and the next recursion value 2 of the corresponding equation variable obtained in the second step into a formula (8) for calculation to obtain the next recursion value of the equation variable;
the formula (8) is shown as follows,
and the calculation result of the step three is the next recursion value of the equation variable.
Background
The Lorenz vibrator is an important chaotic vibrator, and is widely applied to the engineering field, such as documents of 'pipeline ultrasonic guided wave detection based on Lyapunov index of Lorenz system', 'unknown frequency weak signal detection based on Lorenz chaotic synchronous system', 'weak harmonic signal detection based on Lorenz system', and the like.
When applying a Lorenz vibrator, an efficient numerical solution must be performed. Since the Lorenz equation is a non-rigid equation, the solution is usually performed by using an explicit lattice stoke method, and particularly, the fixed-step four-order lattice stoke method has the advantages of high precision and small operand, so that the method is the preferred numerical solution method. However, when solving a data point, the fixed-step four-step longge stoke method needs to solve the differential equation 4 times, that is, the solution of N data points needs to solve the differential equation 4N times, and it can be seen that the operation speed of the method is improved. Therefore, it is of practical significance to study numerical solving methods.
Disclosure of Invention
Aiming at the problems, the invention provides a numerical calculation method based on a semi-implicit method, which can reduce the operation time of a fixed-step-length four-order Runge Kutta method applied in the solving of Lorenz vibrators by one fourth.
The technical scheme of the invention is as follows: the fast numerical solving method of the Lorenz attractor kinetic system comprises the following specific steps:
step one, executing two parallel calculation steps 1a and 1b on a previous recursion value of an equation variable of a Lorenz attractor kinetic system, respectively obtaining a next recursion value of the equation variable, and then executing an average calculation step 1c to obtain a next recursion value 1 of the equation variable;
step two, executing two parallel calculation steps 2a and 2b on the previous recursion value of the Lorenz attractor kinetic system equation variable, respectively obtaining the recursion intermediate value of the equation variable, and then executing an average calculation step 2c to obtain the recursion intermediate value of the equation variable; then, executing two parallel calculation steps 2d and 2e on the recursion intermediate value of the equation variable obtained in the step 2c, respectively obtaining the next recursion value of the equation variable, and then executing an average calculation step 2f to obtain the next recursion value 2 of the equation variable;
and step three, substituting the next recursion value 1 of the equation variable obtained in the step one and the next recursion value 2 of the corresponding equation variable obtained in the step two into a formula for calculation to obtain the next recursion value of the equation variable.
Further, the Lorenz attractor kinetic system equation is specifically shown as follows:
in the formula (1), x, y and z represent the variables of the equation,respectively, the first derivative of the equation variable, and σ, r, b represent the system parameters of the constant.
Further, in step one, step one is divided into three substeps 1a, 1b, 1c, wherein,
in step 1a, for the Lorenz attractor kinetic system equation, the previous recursion value of the equation variable is usedThe solution is carried out in the formula (2) to obtain the next recursion valueThe formula (2) is represented by the following formula:
in step 1b, the previous recursion value of Lorenz attractor kinetic system equation variable is set The solution is carried out in the formula (3) to obtain the next recursion value of the equation vectorThe formula (3) is shown as follows:
in equations (2) and (3), the superscript n of the variable denotes the nth data of the variable, and the subscript 1 of the variable denotes the first step of the recursion process; the superscript n +1 of the variable represents the (n + 1) th data of the variable, and the subscript 1 of the variable represents the first step of the recursion process; h represents a recurrence step length H; in addition, steps 1a and 1b are calculated separately and in parallel;
in step 1c, averaging the next recursion values of the variables solved in step 1a and step 1b to obtain the next recursion value 1 of the equation variable.
Further, in the second step, the second step is divided into six sub-steps 2a, 2b, 2c, 2d, 2e and 2f, wherein,
in step 2a, the previous recursion value of Lorenz attractor kinetic system equation variable is set The equation variable recursion intermediate value is obtained by solving the equation variable in the formula (4)
The formula (4) is shown as follows:
in step 2b, the previous recursion value of Lorenz attractor kinetic system equation variable is set Substituting formula (5) to solve to obtain equation variable recursion intermediate valueThe formula (5) is shown as follows:
in equations (4) and (5), the superscript n of the variable denotes the nth data of the variable, and the subscript 2 of the variable denotes the second step of the recursion process; the superscript n +1/2 of the variable denotes the n +1/2 th intermediate variable data of the variable, the subscript 2 of the variable denotes the second step of the recursion process; h represents a recurrence step H/2;
in addition, the steps 2a and 2b are independently calculated in parallel;
in the step 2c, averaging the equation variable recursion intermediate values solved in the steps 2a and 2b to obtain an equation variable recursion intermediate value;
in step 2d, the intermediate variable data values determined in step 2c are usedThe equation (6) is carried into to obtain the next recursion value of the equation variableThe formula (6) is shown as follows:
in step 2e, the intermediate variable data values determined in step 2c are usedThe equation (7) is carried into to obtain the next recursion value of the equation variableThe formula (7) is shown as follows:
in equations (6) and (7), the superscript n +1 of the variable denotes the n +1 th data of the variable, and the subscript 2 of the variable denotes the second step of the recursion process; the superscript n +1/2 of the variable denotes the n +1/2 th intermediate variable data of the variable, the subscript 2 of the variable denotes the second step of the recursion process; h represents a recurrence step H/2;
in addition, steps 2d, 2e are separately calculated in parallel;
in step 2f, the corresponding variable values found in substeps 2d, 2e are averaged to obtain the next recursion value 2 of the equation variable.
Further, in the third step, the next recursion value 1 of the equation variable obtained in the first step and the next recursion value 2 of the corresponding equation variable obtained in the second step are substituted into the formula (8) for calculation, so that the next recursion value of the equation variable can be obtained;
the formula (8) is shown as follows,
and the calculation result of the step three is the next recursion value of the equation variable.
Through the three steps, the n +1 th data value can be recurred through the n-th data value of the variable. And because the recursion algorithm of the method is also 4-order precision, and is the same as the precision of the 4-order Runge Kutta method, the precision of the solution result of the Lorenz equation is also the same.
From the semi-implicit recursion step, it can be seen that the recursion of each variable needs to calculate six differential equations to obtain, but because of the adoption of the parallel processing method, the calculation time is reduced by half, so the calculation time of each variable is the time for calculating three differential equations. The fixed-step 4-order Runge Kutta method shortens the calculation time of the method by one fourth compared with the fixed-step 4-order Runge Kutta method because the calculation time of each variable is the time for calculating four differential equations.
The invention has the beneficial effects that: by utilizing the recursive algorithm provided by the invention, the speed of numerical solving of Lorenz equation is improved, and the calculation time of the method is shortened by one fourth compared with the fixed-step 4-order Runge Kutta method.
Drawings
FIG. 1 is a flow chart of the architecture of the present invention;
FIG. 2 is a three-dimensional phase diagram of the Lorenz equation solved by the fixed-step 4-order Rungestota method;
FIG. 3 is a three-dimensional phase diagram of the Lorenz equation solved in the present invention;
FIG. 4 is a waveform diagram of the solved Lorenz equation with the x variable changing with time;
FIG. 5 is a waveform of the Lorenz equation solved in the present invention with the x variable changing over time;
FIG. 6 is a waveform diagram of the change over time of the y variable of the Lorenz equation solved by the fixed-step 4-order Rungestota method in the embodiment of the present invention;
fig. 7 is a waveform diagram of the y variable of the Lorenz equation solved by the method of the present invention over time in an embodiment of the present invention.
Detailed Description
In order to more clearly illustrate the technical solution of the present invention, the following detailed description is made with reference to the accompanying drawings:
as depicted in fig. 1; the invention discloses a quick numerical solving method for constructing a Lorenz attractor dynamic system by adopting a semi-implicit method, which comprises the following specific steps of:
step one, executing two parallel calculation steps 1a and 1b on a previous recursion value of an equation variable of a Lorenz attractor kinetic system, respectively obtaining a next recursion value of the equation variable, and then executing an average calculation step 1c to obtain a next recursion value 1 of the equation variable;
step two, executing two parallel calculation steps 2a and 2b on the previous recursion value of the Lorenz attractor kinetic system equation variable, respectively obtaining the recursion intermediate value of the equation variable, and then executing an average calculation step 2c to obtain the recursion intermediate value of the equation variable; then, executing two parallel calculation steps 2d and 2e on the recursion intermediate value of the equation variable obtained in the step 2c, respectively obtaining the next recursion value of the equation variable, and then executing an average calculation step 2f to obtain the next recursion value 2 of the equation variable;
and step three, substituting the next recursion value 1 of the equation variable obtained in the step one and the next recursion value 2 of the corresponding equation variable obtained in the step two into a formula for calculation to obtain the next recursion value of the equation variable.
Further, the Lorenz attractor kinetic system equation is specifically shown as follows:
in the formula (1), x, y and z represent the variables of the equation,respectively representing the first derivative of the equation variable, and sigma, r and b represent system parameters of a constant; the oscillator can show rich nonlinear characteristics by taking different system parameters.
For the dynamic equation of the Lorenz attractor, a fixed-step 4-order Rungestota method can be adopted for solving, and the recursion formula is as follows:
in the formula: x is the number ofn、yn、znIs the nth recursion value of the Runge Kutta method of the equation variables x, y and z, xn+1、 yn+1、zn+1Is the (n + 1) th recursion value of the Runge Kutta method of the equation variables x, y and z, and h is the recursion step length.
It can be seen from the recursion formula of the fixed-step 4-order Rungestota method that each variable can be obtained only by calculating the differential equation four times.
Further, in step one, step one is divided into three substeps 1a, 1b, 1c, wherein,
in step 1a, for LThe orenz attractor kinetic system equation is obtained by applying the previous recursion value of the equation variableThe solution is carried out in the formula (2) to obtain the next recursion valueThe formula (2) is represented by the following formula:
in step 1b, the previous recursion value of Lorenz attractor kinetic system equation variable is set The solution is carried out in the formula (3) to obtain the next recursion value of the equation vectorThe formula (3) is shown as follows:
in equations (2) and (3), the superscript n of the variable denotes the nth data of the variable, and the subscript 1 of the variable denotes the first step of the recursion process, e.g.An nth data value representing the variable x in the first step of the recursion process, which value corresponds to the nth data x of the variable in the Runge Kutta methodn(ii) a The superscript n +1 of a variable denotes the n +1 th data of the variable, and the subscript 1 of the variable denotes the first step of the recursion process, e.g.Represents the n +1 th data value of the variable x in the first step of the recursion process; h represents a recurrence step length H; wherein steps 1a and 1b are separately computed in parallel;
in step 1c, averaging the next recursion values of the variables solved in step 1a and step 1b to obtain a next recursion value 1 of the equation variable; for example, obtained by the step 1aAnd 1b stepAdding and dividing by 2 to obtain the next recursion value of the variable x
Further, in the second step, the second step is divided into six sub-steps 2a, 2b, 2c, 2d, 2e and 2f, wherein,
in step 2a, the previous recursion value of Lorenz attractor kinetic system equation variable is set The equation variable recursion intermediate value is obtained by solving the equation variable in the formula (4)
The formula (4) is shown as follows:
in step 2b, the previous recursion value of Lorenz attractor kinetic system equation variable is set Substituting formula (5) to solve to obtain equation variable recursion intermediate valueThe formula (5) is shown as follows:
in equations (4) and (5), the variable superscript n represents the nth data of the variable and the variable subscript 2 represents the second step of the recursion process, e.g.Represents the nth data value of the variable x in the second step of the recursion process; the superscript n +1/2 for a variable denotes the n +1/2 th intermediate variable data for the variable, and the subscript 2 for the variable denotes the second step of the recursion process, e.g.Represents the n +1/2 th intermediate variable data value of the variable x in the second step of the recursion process; h represents a recurrence step H/2; wherein, the steps 2a and 2b are independently calculated in parallel;
in the step 2c, averaging the equation variable recursion intermediate values solved in the steps 2a and 2b to obtain an equation variable recursion intermediate value; for example, obtained by the step 2aAnd 2b stepAdding and dividing 2 to obtain the variable recursion intermediate value of the variable x
In step 2d, the intermediate variable data values determined in step 2c are usedThe equation (6) is carried into to obtain the next recursion value of the equation variableThe formula (6) is shown as follows:
in step 2e, the intermediate variable data values determined in step 2c are usedThe equation (7) is carried into to obtain the next recursion value of the equation variableThe formula (7) is shown as follows:
in equations (6) and (7), the variable superscript n +1 represents the n +1 th data of the variable, and the variable subscript 2 represents the second step of the recursion process, e.g.Represents the n +1 data value of the variable x in the second step of the recursion process; the superscript n +1/2 for a variable denotes the n +1/2 th intermediate variable data for the variable, and the subscript 2 for the variable denotes the second step of the recursion process, e.g.Represents the n +1/2 th intermediate variable data value of the variable x in the second step of the recursion process; h represents a recurrence step H/2; wherein, the steps 2d and 2e are independently calculated in parallel;
in step 2f, the corresponding variables obtained in substeps 2d and 2e are combinedAveraging the values to obtain a next recursion value 2 of the equation variable; for example, obtained in substep 2dAnd obtained in step 2eAdding and dividing by 2 to obtain the next recursion value of the variable x
Further, in the third step, the next recursion value 1 of the equation variable obtained in the first step and the next recursion value 2 of the corresponding equation variable obtained in the second step are substituted into the formula (8) for calculation, so that the next recursion value of the equation variable can be obtained;
the formula (8) is shown as follows,
the calculation result of the step three is the next recursion value of the equation variable;
for example: nth data value of variable xIs obtained through the step oneAnd step two of obtainingThen, the (n + 1) th data value of the variable x can be calculated by the formula (8)This achieves a recurrence of the variable x.
Through the three steps, the n +1 th data value can be recurred through the n-th data value of the variable.
As shown in fig. 2, a three-dimensional phase diagram of the Lorenz equation solved by the fixed-step 4-order longstota method. The solved parameters are (formula (1)) σ ═ 10, r ═ 28, and b ═ 8/3, and the transducer is in a chaotic state.
As shown in fig. 3, a three-dimensional phase diagram of the Lorenz equation solved by the method of the present invention is shown. The solution parameters are consistent with those of fig. 2. Comparing the results of the solutions of fig. 2 and fig. 3 can find that the results are completely consistent.
As shown in fig. 4, the waveform of the x variable of Lorenz equation solved by fixed step 4-step lunge stota method changes with time.
As shown in fig. 5, the waveform of the x variable of Lorenz equation solved by the method of the present invention varies with time; comparing the results of the solutions of fig. 4 and fig. 5 can find that the results are completely consistent.
Example (b):
according to a signal detection model constructed based on 'weak harmonic signal detection based on a Lorenz system', a differential equation of a Lorenz oscillator signal detection system is as follows:
in the formula, x, y and z represent the variables of the equation,respectively, the first derivative of the variable of the equation, t represents time, FbpA band-pass filter with a gain of 5dB, s (t) represents a signal to be detected, and n (t) represents white Gaussian noise;
in the detection model, firstly, band-pass filtering is carried out on a signal to be detected mixed with noise, and then the signal to be detected is input into a Lorenz vibrator for detection; in the experiment, the power of n (t) noise was set to 0.04W, and the signal was set to s (t) 0.002cos (70 t);
inputting the signals and the noise into a formula 10, and solving by using a fixed step length 4-order Runge Kutta method to obtain a waveform diagram of the system output y shown in fig. 6, wherein the waveform diagram obviously shows that the system output waveform is rapidly attenuated to a very small value in about 1 second, which indicates that an angular frequency signal to be detected with 70 radians/second exists; the signal detection result is consistent with the detection result in the literature "weak harmonic signal detection based on the Lorenz system".
Also, the signal detection problem is solved by using the fast numerical solving method of the present invention, and the solving result is shown in fig. 7. Comparing fig. 6 and fig. 7, it can be seen that the result of the solution using the fixed-step 4-step lunge stota method is almost the same as the result of the solution using the method of the present invention. The method can be correctly applied to practical engineering application such as signal detection and the like.
Finally, it should be understood that the embodiments described herein are merely illustrative of the principles of embodiments of the present invention; other variations are possible within the scope of the invention; thus, by way of example, and not limitation, alternative configurations of embodiments of the invention may be considered consistent with the teachings of the present invention; accordingly, the embodiments of the invention are not limited to the embodiments explicitly described and depicted.