using System; using Science.Mathematics; using L = Science.Physics.QuantumMechanics; namespace ScienceTest.PhysicsTest.QuantumMechanicsTest { /// /// We solve the differential equation : /// -0.5\Psi''(x) + V(x)\Psi(x) = E\Psi(x) /// public class SchroedingerEq1DTest { public SchroedingerEq1DTest() { } private string result; public string Result { get{return result;} } public void Compute() { L.SchroedingerEquation1D equation = new L.SchroedingerEquation1D(); Function.DoubleToDouble func = new Function.DoubleToDouble(V); equation.PotentialEnergy = func; for (int i = 0; i < 10; i++) { equation.EnergyGuess = 2.4+0.001*i; // change as you wish equation.SlopeGuess = 5.0E-19; // change to adjust \Psi(x) equation.Solve(); result += Convert.ToString(equation.SolvedQ) +i.ToString() + "\r\n"; } for(int k = 0; k < equation.WaveFunction.Length; k++) result += Convert.ToString(equation.WaveFunctionXCoordinate[k])+"\t" // position + Convert.ToString(equation.WaveFunction[k])+"\r\n"; // value result += "Energy="+Convert.ToString(equation.Energy)+"\r\n"; } private double V(double x) { return 0.5*x*x - 0.07* x; // change as you wish } } }