Chaotic Motion  1.0
SprottJ.cs
1 using UnityEngine;
2 using System.Collections;
3 
4 // eqn (42) from http://lsc.amss.ac.cn/~ljh/04LCC.pdf
5 // Primary ref: http://sprott.physics.wisc.edu/pubs/paper212.pdf
6 
7 public class SprottJ : ChaosEqn {
8 
9  public SprottJ() {
10  name = "SprottJ";
11 
12  eqnStrings = new string[]{
13  "xdot = 2 z",
14  "ydot = -2y + z",
15  "zdot = -x + y + y^2"
16  };
17 
18  paramBundles = new ParamBundle[] {
19  // sigma, b, rho
20  new ParamBundle("default (scaled)", 0f, 0f, 0f,
21  new Vector3(.1f, -1.5f, -3f), new Vector3(-7.9f,-0.1f,0.6f), 0.35f),
22  new ParamBundle("default", 0f, 0f, 0f,
23  new Vector3(.1f, -1.5f, -3f)),
24  };
25 
26  paramNames = new string[] { ChaoticSystem.NO_PARAM, ChaoticSystem.NO_PARAM,ChaoticSystem.NO_PARAM};
27  slideShowSpeed = 2f;
28  }
29 
30  public override void SetParams(ParamBundle pb)
31  {
32  }
33 
34  public override void Function(ref float[] x_in, ref float[] x_out) {
35  x_out[0] = 2f*x_in[2];
36  x_out[1] = -2f*x_in[1] + x_in[2];
37  x_out[2] = -x_in[0] + x_in[1] + x_in[1]*x_in[1];
38  }
39 
40 }
Chaotic system. Base class for chaotic scripts. Holds the type of system selected, the parameter set or the custom parameters to be used.
override void SetParams(ParamBundle pb)
Sets the parameter bunlde to be used by the system.
Definition: SprottJ.cs:30
override void Function(ref float[] x_in, ref float[] x_out)
Evaluate the first order evolution of the attractor, given the current position.
Definition: SprottJ.cs:34
Chaos eqn. Base class for all equations that define a 3D chaotic system.
Definition: ChaosEqn.cs:9
Parameter bundle. Container class to hold the values for starting a chaotic system. Holds the parameters for the equations and the initial position and scale values.
Definition: ParamBundle.cs:13