[Date Index]
[Thread Index]
[Author Index]
Re: finding the weighted degree of a polynomial
*To*: mathgroup at smc.vnet.net
*Subject*: [mg79688] Re: finding the weighted degree of a polynomial
*From*: chuck009 <dmilioto at comcast.com>
*Date*: Thu, 2 Aug 2007 03:42:30 -0400 (EDT)
Not sure how you want to handle the zero coefficients but when I create a polynomial with coefficients that are zero, Mathematica neglects these terms in the final form:
In[263]:=
a = 1;
b = 2;
cij = Table[Random[Integer, {-2, 2}], {i, 1, 5}, {j, 1, 5}]
plist = Sum[cij[[i,j]]*x^i*y^j, {i, 1, 3}, {j, 1, 3}]
Head[plist]
Out[265]=
{{2, 2, 1, 1, -2}, {1, -2, 2, -1, 0}, {-1, 2, 1, -2, -2},
{0, 2, 0, -1, -2}, {1, 0, -2, -1, -2}}
Out[266]=
2*x*y + x^2*y - x^3*y + 2*x*y^2 - 2*x^2*y^2 + 2*x^3*y^2 +
x*y^3 + 2*x^2*y^3 + x^3*y^3
Out[267]=
Plus
Notice I have some zero coefficients but when I form the sum, only the non-zero coefficients are in plist. However, this list still has a "Head" of "Plus" as given by the Head command. Here's the command I'd use to extract the {a,b}-weighted degree:
In[268]:=
Max[(a*Exponent[#1, x] + b*Exponent[#1, y] & ) /@ List @@ plist]
Out[268]=
9
It's an interesting command and I notice you have only 3 post so maybe you're not familiar with "short-cuts":
First I change the format of plist to a list. Can do this with the "apply" shortcut "@@". Just applying "List" to plist with that command. So now I have a list of monomials. Now, for each monomial in that list, I want to take the {a,b}-weighted degree. I do that with the (a*Exponent[#1, x] + b*Exponent[#1, y]) command. Exponent[#1,x] takes the exponent on x of the monomial supplied to it. Note the place-holders #1. Substitution of that place holder for each monomial in the list is accomplished by the pure-function construct I set up using both the & operator and the Map operator "/@". So look at what this is doing:
(a*Exponent[#1, x] + b*Exponent[#1, y] & ) /@ List @@ plist
It sends each monomial in List plist via the /@ command into the pure function:
(a*Exponent[#1, x] + b*Exponent[#1, y] & )
via the #1 replacement operators and then just calculates the net weight. Alright, it's going to do that for every monomial forming a list of those weights. Then the Max command searches that list and finds the maximum.
Prev by Date:
**Re: finding the weighted degree of a polynomial**
Next by Date:
**Re: Mathematica: FindRoot Help!!!**
Previous by thread:
**Re: finding the weighted degree of a polynomial**
Next by thread:
**Re: finding the weighted degree of a polynomial**
| |