Class AizawaEquations

java.lang.Object
edu.cnu.mdi.mdi3D.view3D.aizawaDemo.AizawaEquations
All Implemented Interfaces:
org.apache.commons.math3.ode.FirstOrderDifferentialEquations

public class AizawaEquations extends Object implements org.apache.commons.math3.ode.FirstOrderDifferentialEquations
Implements the six-parameter Aizawa attractor as a system of three first-order ordinary differential equations.

The state vector is:

 y[0] = x
 y[1] = y
 y[2] = z
 
and the governing equations are:
 dx/dt = (z - b) x - d y
 dy/dt = d x + (z - b) y
 dz/dt = c + a z - z^3 / 3 - (x^2 + y^2)(1 + e z) + f z x^3
 
This is the more commonly used Aizawa system for the familiar strange-attractor visualizations.

The class is immutable and thread-safe after construction.

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final double
    Default value of parameter a.
    static final double
    Default value of parameter b.
    static final double
    Default value of parameter c.
    static final double
    Default value of parameter d.
    static final double
    Default value of parameter e.
    static final double
    Default value of parameter f.
    static final int
    The dimension of the Aizawa system.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates an Aizawa system using standard demo parameters.
    AizawaEquations(double a, double b, double c, double d, double e, double f)
    Creates an Aizawa system with the specified parameter values.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    computeDerivatives(double t, double[] y, double[] yDot)
    Computes the time derivatives of the Aizawa state vector.
    static double[]
    Returns a fresh default initial state for integrations of this system.
    double
    Gets parameter a.
    double
    Gets parameter b.
    double
    Gets parameter c.
    double
    Gets parameter d.
    int
    Returns the number of coupled first-order equations in the system.
    double
    Gets parameter e.
    double
    Gets parameter f.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • DEFAULT_A

      public static final double DEFAULT_A
      Default value of parameter a.
      See Also:
    • DEFAULT_B

      public static final double DEFAULT_B
      Default value of parameter b.
      See Also:
    • DEFAULT_C

      public static final double DEFAULT_C
      Default value of parameter c.
      See Also:
    • DEFAULT_D

      public static final double DEFAULT_D
      Default value of parameter d.
      See Also:
    • DEFAULT_E

      public static final double DEFAULT_E
      Default value of parameter e.
      See Also:
    • DEFAULT_F

      public static final double DEFAULT_F
      Default value of parameter f.
      See Also:
    • DIMENSION

      public static final int DIMENSION
      The dimension of the Aizawa system.

      The state contains the three coordinates x, y, and z.

      See Also:
  • Constructor Details

    • AizawaEquations

      public AizawaEquations()
      Creates an Aizawa system using standard demo parameters.
    • AizawaEquations

      public AizawaEquations(double a, double b, double c, double d, double e, double f)
      Creates an Aizawa system with the specified parameter values.
      Parameters:
      a - the linear coefficient multiplying z in dz/dt
      b - the shift applied to z in the x and y equations
      c - the constant driving term in dz/dt
      d - the rotation-like coupling between x and y
      e - the coefficient in the nonlinear factor (1 + e z)
      f - the coefficient of the nonlinear term z x^3 in dz/dt
  • Method Details

    • defaultInitialState

      public static double[] defaultInitialState()
      Returns a fresh default initial state for integrations of this system.

      A new array is returned on each call so that client code can modify the returned state safely without changing shared static data.

      Returns:
      a new three-element array containing a standard initial condition
    • getDimension

      public int getDimension()
      Returns the number of coupled first-order equations in the system.
      Specified by:
      getDimension in interface org.apache.commons.math3.ode.FirstOrderDifferentialEquations
      Returns:
      always 3
    • computeDerivatives

      public void computeDerivatives(double t, double[] y, double[] yDot) throws org.apache.commons.math3.exception.MaxCountExceededException
      Computes the time derivatives of the Aizawa state vector.

      The input state array is interpreted as:

       state[0] = x
       state[1] = y
       state[2] = z
       
      and the output derivative array is filled as:
       yDot[0] = dx/dt
       yDot[1] = dy/dt
       yDot[2] = dz/dt
       
      Specified by:
      computeDerivatives in interface org.apache.commons.math3.ode.FirstOrderDifferentialEquations
      Parameters:
      t - the independent variable, usually time; unused here because the system is autonomous
      y - the current state vector
      yDot - the array to receive the computed derivatives
      Throws:
      org.apache.commons.math3.exception.MaxCountExceededException - if the Commons Math integrator signals an evaluation limit problem
    • getA

      public double getA()
      Gets parameter a.
      Returns:
      parameter a
    • getB

      public double getB()
      Gets parameter b.
      Returns:
      parameter b
    • getC

      public double getC()
      Gets parameter c.
      Returns:
      parameter c
    • getD

      public double getD()
      Gets parameter d.
      Returns:
      parameter d
    • getE

      public double getE()
      Gets parameter e.
      Returns:
      parameter e
    • getF

      public double getF()
      Gets parameter f.
      Returns:
      parameter f