Re: Re: Problems solving using Solve
- To: mathgroup at smc.vnet.net
- Subject: [mg68861] Re: [mg68829] Re: Problems solving using Solve
- From: brucem at wolfram.com
- Date: Mon, 21 Aug 2006 03:28:29 -0400 (EDT)
- References: <ec65bn$1f8$1@smc.vnet.net> <200608200843.EAA04405@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
If exact numbers give a quick solution, how about using exact (rational) approximations to the floating-point parameters? {ax,ay} = Rationalize[{-44.9376, 36.1678}]; {cx,cy} = Rationalize[{17.8329, 122.477}]; {centerOfMassx,centerOfMassy} = Rationalize[{-18.6338,72.3356}]; rcAB = Rationalize[-0.166667]; rcCD = Rationalize[-0.37931]; In[25]:= {ax,ay,cx,cy,centerOfMassx,centerOfMassy,rcAB,rcCD} Out[25]= 28086 180839 178329 122477 93169 180839 166667 37931 {-(-----), ------, ------, ------, -(-----), ------, -(-------), -(------)} 625 5000 10000 1000 5000 2500 1000000 100000 N[] can convert the results back to floating-point. Bruce Miller Technical Support Wolfram Research, Inc. support at wolfram.com http://support.wolfram.com/ > > definition for cd is cd[input_,rcCD_,cx_,cy_] := rcCD*input + cy - > rcCD*cx; > (which just defines a line of the form y=ax+b) > > Using NSolve instead of Solve still takes way too long (quit it after 15 > minutes, do not know if it even will solve it). I have about a 100 cones > for > each part I need to test and the way it is now takes too long. > > In my usage all values except beta and v are Reals. Beta is usually the > range [0, Pi/2] and v is also a Real. > > For a solvable solution try: > > {ax,ay}= {7,4} and {cx,cy}= {21,11} and > {centerOfMassx,centerOfMassy}={13,7} and rcAB=3 and > rcCD=7/4 > > That should give a solution, and quite fast at that. > > Akil > > "akil" <akomur at wanadoo.nl> schreef in bericht > news:ec65bn$1f8$1 at smc.vnet.net... >>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 >> >> > >
- References:
- Re: Problems solving using Solve
- From: "akil" <akomur@wanadoo.nl>
- Re: Problems solving using Solve