Chaotic Motion  1.0
ShimizuMorioka.cs
1 using UnityEngine;
2 using System.Collections;
3 
4 // eqn (53) from http://lsc.amss.ac.cn/~ljh/04LCC.pdf
5 
6 public class ShimizuMorioka : ChaosEqn {
7 
8  private float a, b;
9 
10  public ShimizuMorioka() {
11  name = "ShimizuMorioka";
12 
13  eqnStrings = new string[]{
14  "xdot = y",
15  "ydot = x - ay - xz",
16  "zdot = -bz + x^2"
17  };
18 
19  paramBundles = new ParamBundle[] {
20  // sigma, b, rho
21  new ParamBundle("default (scaled)", 0.85f, 0.5f, 0f,
22  new Vector3(.1f, .1f, .1f), new Vector3(-000.1f,000.2f,-001.1f), 04.23f),
23  new ParamBundle("default", 0.85f, 0.5f, 0f,
24  new Vector3(.1f,.1f,.1f)),
25  };
26 
27  paramNames = new string[] { "a", "b", ChaoticSystem.NO_PARAM};
28 
29  }
30 
31  public override void SetParams(ParamBundle pb)
32  {
33  a = pb.eqnParam[0];
34  b = pb.eqnParam[1];
35  }
36 
37  public override void Function(ref float[] x_in, ref float[] x_out) {
38  x_out[0] = x_in[1];
39  x_out[1] = x_in[0] - a*x_in[1] - x_in[0]*x_in[2];
40  x_out[2] = -b*x_in[2] + x_in[0]*x_in[0];
41  }
42 
43 }
override void SetParams(ParamBundle pb)
Sets the parameter bunlde to be used by the system.
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 Function(ref float[] x_in, ref float[] x_out)
Evaluate the first order evolution of the attractor, given the current position.
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