Re: Problems solving using Solve
- To: mathgroup at smc.vnet.net
- Subject: [mg68828] Re: Problems solving using Solve
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Sun, 20 Aug 2006 04:43:47 -0400 (EDT)
- Organization: The Open University, Milton Keynes, UK
- References: <ec65bn$1f8$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
akil wrote: > I have a problem suing the following code: > > Cone[beta_, v_,rcAB_,rcCD_,ax_,ay_,cx_,cy_,centerOfMassx_,centerOfMassy_] := > Module[ > {betaUsed, vtemp, fx, fy, ex, ey, > waarde,criticalRC,criticalHeight,xVerplaatsing,ePx2Py2}, > betaUsed = beta ; > vtemp = v; > fline[x_] := Tan[betaUsed]x - Tan[betaUsed]vtemp; > fx = x /. Solve[fline[x] == cd[x,rcCD,cx,cy], x][[1]]; > fy = cd[fx,rcCD,cx,cy]; > criticalRC = (centerOfMassy - fy)/(centerOfMassx - fx); > criticalHeight = -criticalRC*fx + fy; > ex = (-ay + rcAB*ax + criticalHeight)/(rcAB + (-criticalRC)); > ey = ab[ex,rcAB,ax,ay]; > xVerplaatsing = ex - vtemp; > ePx2Py2 = Sqrt[xVerplaatsing^2 + ey^2]; > waarde = xVerplaatsing/ePx2Py2; > ArcCos[-waarde] > ]; > > afg = > Simplify[D[Cone[beta,v,rcAB,rcCD,ax,ay,cx,cy,centerOfMassx,centerOfMassy],v], > TimeConstraint -> 1 ]; > Solve[afg== 0, v]; > > eg. > {ax,ay}= {-44.9376, 36.1678} and {cx,cy}= {17.8329, 122.477} and > {centerOfMassx,centerOfMassy}={-18.6338,72.3356} and rcAB=-0.166667 and > rcCD=-0.37931 > > Doing the Solve[afg== 0, v] takes ages (after an hour I quit it). Is there > any way I can make it work faster? Is any code in Cone such that it > unnecessarily makes it run faster? So are there any ways I can try to make > everything run faster? Using integers it runs, but it takes too long when > using real cones (made up of four points A B C D and a centerOfMass). > > Akil > > Hi Akil, I tried to run your code on my system but the definition of the function 'cd' is missing. Anyway, since your are interested in numerical solutions, why don't you use NSolve in place of Solve? Solve is looking for an analytic solution -- a closed form expression that can be quite time consuming to find, assuming that such a solution exists at all -- whereas NSolve uses directly numerical algorithms. HTH, Jean-Marc