Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

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
>>>>>>>
>>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>
>


  • Prev by Date: Re: SymbolicPolynomialMod
  • Next by Date: Re: Re: Simplify with NestedLessLess?
  • Previous by thread: Re: Re: Simplify with NestedLessLess?
  • Next by thread: Re: Simplify with NestedLessLess?