Chaotic Motion  1.0
Rossler.cs
1 using UnityEngine;
2 using System.Collections;
3 
4 // eqn (27) from http://lsc.amss.ac.cn/~ljh/04LCC.pdf
5 
6 public class Rossler : ChaosEqn {
7 
8  private float a = 0.2f;
9  private float b = 0.2f;
10  private float c = 5.7f;
11 
12  public Rossler() {
13  name = "Rossler";
14  eqnStrings = new string[]{
15  "x = -y - z",
16  "y = x + a y",
17  "z = b z (x - c)"
18  };
19 
20  paramBundles = new ParamBundle[] {
21  // sigma, b, rho
22  // a, b, c
23  new ParamBundle("default (scaled)", 0.2f, 0.2f, 5.7f,
24  new Vector3(-2f,5f,-10f), new Vector3(-1.2f, 1.5f, -11f), 0.45f),
25  new ParamBundle("default", 0.2f, 0.2f, 5.7f,
26  new Vector3(0f, 0f, 0f))
27  };
28 
29  paramNames = new string[] { "sigma", "b", "rho"};
30  slideShowSpeed = 2.5f;
31  }
32 
33  public override void SetParams(ParamBundle pb)
34  {
35  a = pb.eqnParam[0];
36  b = pb.eqnParam[1];
37  c = pb.eqnParam[2];
38  }
39 
40  public override void Function(ref float[] x_in, ref float[] x_out) {
41  x_out[0] = -x_in[1] - x_in[2];
42  x_out[1] = x_in[0] + a* x_in[1];
43  x_out[2] = b + x_in[2] * (x_in[0] - c);
44  }
45 
46 }
override void SetParams(ParamBundle pb)
Sets the parameter bunlde to be used by the system.
Definition: Rossler.cs:33
override void Function(ref float[] x_in, ref float[] x_out)
Evaluate the first order evolution of the attractor, given the current position.
Definition: Rossler.cs:40
float[] eqnParam
parameters used in the equation
Definition: ParamBundle.cs:19
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