using System; using C=Science.Physics.GeneralPhysics; namespace ScienceTest.PhysicsTest.GeneralPhysicsTest { /// /// LineIntegrationTest /// public class LineTest { public LineTest() { } private string result; public string Result { get{return result;} } public void Compute() { C.Line.Parameterization f = new C.Line.Parameterization(func); C.Line l = new C.Line(); l.ParameterToPosition = f; l.ParameterStartValue = 0.0; l.ParameterEndValue = 2.0; C.Vector.FunctionOfPosition fa = new C.Vector.FunctionOfPosition(funca); C.Vector v = new C.Vector(fa); C.Scalar res = C.VectorCalculus.LineIntegralDot(v,l); result += res.ToString()+"\r\n"; result += Convert.ToString(3.0/6.0*Math.Pow(2,6) +4.0/11.0*Math.Pow(2,11) +2.0/6.0*Math.Pow(2,6))+"\r\n"; C.Vector proj = C.VectorCalculus.LineIntegralCross(v,l); result += proj.ToString()+"\r\n"; result += Convert.ToString(-4.0/8.0*Math.Pow(2,8) +2.0/9.0*Math.Pow(2,9))+"\r\n"; result += Convert.ToString(-2.0/5.0*Math.Pow(2,5) +3.0/7.0*Math.Pow(2,7))+"\r\n"; result += Convert.ToString(-3.0/10.0*Math.Pow(2,10) +4.0/7.0*Math.Pow(2,7))+"\r\n"; } private C.Position func(double t) { C.Position x = new C.Position(); x.X = t*t*t; x.Y = t*t*t*t; x.Z = t*t; return x; } private C.Vector funca(C.Position x) { C.Vector res = new C.Vector(); res.X = x.X; res.Y = x.Y*x.X; res.Z = x.Z*x.Z; return res; } } } /* 798.060606045336 +/- 0 798.060606060606 -14.2222222223981 +/- 0 i +42.057142856739 +/- 0 j -234.057142852633 +/- 0 k -14.2222222222222 42.0571428571429 -234.057142857143 */