|
[Date Index]
[Thread Index]
[Author Index]
Re: How to select terms wanted in a series
- To: mathgroup at smc.vnet.net
- Subject: [mg85929] Re: How to select terms wanted in a series
- From: Albert Retey <awnl at arcor.net>
- Date: Thu, 28 Feb 2008 02:44:54 -0500 (EST)
- References: <fq3bhj$gas$1@smc.vnet.net>
Hi,
> I have an expression, which is a sum of large number of terms, e.g.
>
> expression = x + 2x*y - x*y*z + u*x*y + 3u^2
>
> And I want to select out terms with the factor (x*y). e.g.
>
> The terms in "expression" that I want are 2x*y, -x*y*z, u*x*y
>
> My first step is,
>
> allterms = Apply[List, expression]
>
> Then, I don't know how to extract the terms I want, I use
>
> Select[allterms, (# == x*y*_)&]
>
> But It doesn't work.
>
> Anyone has some good ideas? any help will be appreciated much!
> Sincerely Barrow
>
this would work in this case:
Cases[allterms, HoldPattern[Times[___, x, ___, y, ___]]]
Note that there are many pitfalls when working with patterns on
mathematical expressions, so it is usually better to use functions that
do the right thing. Here the following should be much more robust, I think:
subterm=x*y;
subterm*List@@Coefficient[expression,subterm]
Depending on what you are trying to achieve I would recommend to look up
Coefficient and CoefficientList in the Help.
hth,
albert
Prev by Date:
Re: find and count partially identical sublist
Next by Date:
Re: Using Fourier and InverseFourier instead of Convolve
Previous by thread:
Re: How to select terms wanted in a series
Next by thread:
Labeling axes in VectorFieldPlot3D?
|