Re: Re: Simplify with NestedLessLess?
- To: mathgroup at smc.vnet.net
- Subject: [mg106583] Re: [mg106531] Re: [mg106487] Simplify with NestedLessLess?
- From: Dave Bird <dbird at ieee.org>
- Date: Sun, 17 Jan 2010 07:11:17 -0500 (EST)
- References: <201001141049.FAA19892@smc.vnet.net> <4B4F39E7.1070002@wolfram.com> <4B4FAC81.7000108@ieee.org> <4B4FB26F.7050702@wolfram.com> <201001150821.DAA29881@smc.vnet.net> <op.u6k8eysrtgfoz2@bobbys-imac.local> <4B5215AE.6020402@ieee.org> <op.u6niq5nhtgfoz2@bobbys-imac.local>
- Reply-to: dbird at ieee.org
I have found a process which almost works. Still requires visual inspection, and I suspect will not always work because it depends strongly on the workings of Simplify. My comments in []s. In[4]:= examp=-Cf^2 L2^2 Rg^2 Vg^4+3 (4 C Rg^2 Vd^2+4 Cf Rg^2 Vd^2+2 C Rg^2 Vd Vg) Out[4]= 3 (4 C Rg^2 Vd^2+2 C Rg^2 Vd Vg+4 Cf Rg^2 Vd^2)-Cf^2 L2^2 Rg^2 Vg^4 In[37]:= examp/.C->Cf*eps Out[37]= 3 (4 Cf eps Rg^2 Vd^2+2 Cf eps Rg^2 Vd Vg+4 Cf Rg^2 Vd^2)-Cf^2 L2^2 Rg^2 Vg^4 In[38]:= Simplify[%] Out[38]= Cf Rg^2 (-Cf L2^2 Vg^4+12 (eps+1) Vd^2+6 eps Vd Vg) [term (eps+1) depends on Simplify, term in general case can be somewhat different requiring inspection for next step.] In[39]:= %/.(eps+1)->1 Out[39]= Cf Rg^2 (-Cf L2^2 Vg^4+6 eps Vd Vg+12 Vd^2) In[40]:= Simplify[%/.eps->C/Cf] Out[40]= -Rg^2 (-6 C Vd Vg+Cf^2 L2^2 Vg^4-12 Cf Vd^2) In general the term (eps+1) can be (<number> eps +-<another number>) or, in general the <number> or <another number> could be some symbol requiring operator knowledge to proceed further. An automatic, fixed algorithm might have to implicitly require limits on the max value of <number> and the minimum value of <another number>. Or, the algorithm could specify some range of meaning for C<<Cf. I suppose this is why the NestedLessLess has not been implemented in Mathematica as an assumption. Dave DrMajorBob wrote: > You said C<<Cf, so let's say C = delta CF, where delta is small. We > compute a series around delta=0 and, after giving it a look, we set > delta = 0. > > expr = > Normal@Series[-Cf^2 L2^2 Rg^2 Vg^4 + > 3 (4 C Rg^2 Vd^2 + 4 Cf Rg^2 Vd^2 + 2 C Rg^2 Vd Vg) /. > C -> delta Cf, {delta, 0, 6}] > firstTry = expr /. delta -> 0 > > 12 Cf Rg^2 Vd^2 - Cf^2 L2^2 Rg^2 Vg^4 + > delta (12 Cf Rg^2 Vd^2 + 6 Cf Rg^2 Vd Vg) > > 12 Cf Rg^2 Vd^2 - Cf^2 L2^2 Rg^2 Vg^4 > > In a more complicated situation (if a few Series terms were > unconvincing), we might use Limit, instead: > > expr = -Cf^2 L2^2 Rg^2 Vg^4 + > 3 (4 C Rg^2 Vd^2 + 4 Cf Rg^2 Vd^2 + 2 C Rg^2 Vd Vg) /. C -> delta Cf > secondTry = Limit[expr, delta -> 0] > > -Cf^2 L2^2 Rg^2 Vg^4 + > 3 (4 Cf Rg^2 Vd^2 + 4 Cf delta Rg^2 Vd^2 + 2 Cf delta Rg^2 Vd Vg) > > Cf Rg^2 (12 Vd^2 - Cf L2^2 Vg^4) > > In this case, both answers are the same: > > firstTry == secondTry // Simplify > > True > > Bobby > > On Sat, 16 Jan 2010 13:38:22 -0600, Dave Bird <dbird at ieee.org> wrote: > >> Interesting! But, I don't think I am correctly communicating what I'm >> after yet. (Although, I admit that I am struggling some to keep up >> with you guys in your Mathematica replies due to my inexperience.) >> >> The original expression that I put up for illustration is: >> >> -Cf^2 L2^2 Rg^2 Vg^4+3 (4 C Rg^2 Vd^2+4 Cf Rg^2 Vd^2+2 C Rg^2 Vd Vg) >> >> We compare 4 C Rg^2 Vd^2 to 4 Cf Rg^2 Vd^2 because the two terms >> share common coefficients so that they "reduce" to (4 Rg^2 Vd^2+4 >> Rg^2 Vd^2) (C+Cf) . Thus it becomes obvious that C may be discarded >> w.r.t. Cf. >> >> Please forgive if I have missed the correct application of your >> suggestion, and thanks for the interest. >> >> Dave >> >> DrMajorBob wrote: >>> Series[-Cf^2 L2^2 Rg^2 Vg^4 + >>> 3 (4 C Rg^2 Vd^2 + 4 Cf Rg^2 Vd^2 + 2 C Rg^2 Vd Vg), {C, 0, >>> 5}] // Simplify >>> >>> SeriesData[C, 0, { >>> Cf Rg^2 (12 Vd^2 - Cf L2^2 Vg^4), 6 Rg^2 Vd (2 Vd + Vg)}, 0, 6, 1] >>> >>> Bobby >>> >>> On Fri, 15 Jan 2010 02:21:09 -0600, Dave Bird <dbird at ieee.org> wrote: >>> >>>> Not infinitesimals. I'm working in analog circuit design/analysis. I >>>> have a 3 pole symbolic circuit response (third order) which is not >>>> easily separable. I can use Mathematica to find the three roots of the >>>> response. But, the roots are, of course, very messy. I know that >>>> certain >>>> elements in the circuit are orders of magnitude larger than other like >>>> elements - capacitors in this case. For example, one small section of >>>> one root is >>>> >>>> -Cf^2 L2^2 Rg^2 Vg^4+3 (4 C Rg^2 Vd^2+4 Cf Rg^2 Vd^2+2 C Rg^2 Vd Vg) >>>> >>>> I know that C<<Cf. By careful inspection, I can see that the first >>>> term >>>> in the parens will drop out compared to the second term in the >>>> parens. I >>>> would like Mathematica to do this without my having to examine it so >>>> closely since there are many other like situations. >>>> >>>> This kind of situation occurs in many other engineering situations. >>>> >>>> Hope this helps clarify. >>>> >>>> Thanks for the interest. >>>> >>>> Dave >>>> >>>> >>>> >>>> >>>> Daniel Lichtblau wrote: >>>>> Dave Bird wrote: >>>>>> Thanks Daniel for the observation. I forgot to add that both a, >>>>>> and b >>>>>> are real positive. That, of course would have to be added to the >>>>>> assumptions. >>>>>> >>>>>> Dave >>>>> >>>>> It's still not obvious what you are wanting to do. I have the idea >>>>> you >>>>> are working in some sense with infinitesmals. If so, I doubt Simplify >>>>> would be the best tool for removing them; it really can only do that >>>>> if it is told, in some way, to replace them with zero. How might one >>>>> instruct Simplify to figure that out? >>>>> >>>>> Daniel >>>>> >>>>> >>>>>> Daniel Lichtblau wrote: >>>>>>> dbird wrote: >>>>>>>> Please excuse if this has been answered before, but I can't >>>>>>>> find it. >>>>>>>> >>>>>>>> Is there some way to do a Simplify with assumptions using a >>>>>>>> NestedLessLess or something similar? For example: >>>>>>>> >>>>>>>> d=a+b >>>>>>>> Simplify[d,NestedLessLess[a,b]] >>>>>>>> >>>>>>>> Answer is: >>>>>>>> a+b >>>>>>>> >>>>>>>> Answer should be: >>>>>>>> b >>>>>>>> >>>>>>>> Thanks, >>>>>>>> >>>>>>>> Dave >>>>>>> >>>>>>> I fail to see why the result should be b. >>>>>>> >>>>>>> Daniel Lichtblau >>>>>>> Wolfram Research >>>>>>> >>>>>>> >>>>> >>>>> >>>> >>> >>> > >
- References:
- Simplify with NestedLessLess?
- From: dbird <dbird@ieee.org>
- Re: Simplify with NestedLessLess?
- From: Dave Bird <dbird@ieee.org>
- Simplify with NestedLessLess?