1

I would like to expand the polynomial $p(\lambda) = \sum_{i=0}^{d} a_{i} \lambda^{i}$, as $F(p(\lambda), \lambda_{0})= \min_{j} [ val(a_{j}) + j \lambda_{0} ] $ with $\lambda_{0}$ being a real variable. Here, $val(a)$ is the valuation, which is the lowest exponent of the non-zero Puiseux series. The valuation satisfies \begin{align} val(a) =\infty \text{ iff } a=0 ,\quad val(ab) =val(a)+val(b),\quad val(a+b) \geq \min [ val(a) , val(b) ]. \end{align} For example, $val(t^{2} -2t+3) = \min [ val(t^2) , val(-2t), val(3) ] =\min [ 2,1,0 ]=0$. The above suggested expansion for polynomial $p=\lambda^{2} - x^{2} -2x$ with respect to variable $\lambda$ reads $F(p(\lambda), \lambda_{0}) = \min[1, 2 \lambda_{0}]$.

For a simple polynomial, I have obtained the valuation using

poly = -2 x  + x^2 + 3
val = Min[Exponent[DeleteCases[MonomialList[poly], {0}], x]]

However, this fails when MonomialList has zero elements. I have excluded these cases using DeleteCases such that

poly = -2 x  - x^2 +  \[Lambda]^2
coeff = CoefficientList[poly, \[Lambda]]
val = Min @@@ Exponent[DeleteCases[MonomialList[coeff], {0}], x]
(*{1, 0}*)

The output val has components for $\lambda^{0}$ and $\lambda^{2}$ and $\lambda^{1}$ is the deleted case. To obtain $F$ for the particular example, I have used

F[i_, val_] := Min[val + i Subscript[\[Lambda], 0]];
F[{0, 2}, val ]
(*{1, 2 Subscript[\[Lambda], 0]}*)

Here, I have now explicitly passed to the function that $\ i \in \{0,2\}$ as $i=0$ was excluded.

Do you have any suggestions on better implementing these steps so that $F$ can be calculated more easily?

Shasa
  • 1,043
  • 5
  • 12

1 Answers1

2

Maybe:

Min[CoefficientRules[#[[2]], x][[All, 1, 1]]] + #[[1, 
      1]] \[Lambda]0 & /@ CoefficientRules[poly, \[Lambda]]

(* {2 [Lambda]0, 1} *)

Or:

MapIndexed[
 (# /. {
      0 -> Infinity,
      p_ :> Min[CoefficientRules[p, x][[All, 1, 1]]]
      }) + (First[#2] - 1) \[Lambda]0 &
 , CoefficientList[poly, \[Lambda]]
 ]

(* {1, [Infinity], 2 [Lambda]0} *)

You mentioned Infinity in the question, but maybe that was just a kludge for Min. I suppose each of the whole codes above should be wrapped in Min to the get capital F function in the first sentence. The OP didn't do it, so I was confused. Anyway, if I didn't do it right, I hope it gives you some ideas you can use!

P.S. I'd avoid using subscripts in code and reserve Subscript for formatting output. For instance, Subscript[\[Lambda], 0] is a function of \[Lambda] as an expression in Mathematica, and that is not how it should be treated in this problem. (Admittedly, it rarely causes problems, but it has caused them.)

Goofy
  • 2,767
  • 10
  • 12
  • (+1) Thank you for your suggestion on not using Subscript and also for your answer. – Shasa Dec 25 '23 at 17:12
  • When I apply the first approach to poly = \[Lambda]^2 + x^2 + y z with $y$ and $z$ being other symbolic variables. I get {2 \[Lambda]0, 0} while I was expecting {2 \[Lambda]0, 2} as valuation with respect to $x$ is 2. – Shasa Dec 26 '23 at 05:03
  • @Shasa That's because y z as a polynomial in x is the degree 0 term. So the minimum degree is 0. What would you want if poly = \[Lambda]^2 + x^2 + x y z? Still 2, or 1? I'd guess 1. For instance, CoefficientRules[x^2 + y z, {x, y, z}] gives a rule for each ordered list of powers, {2, 0, 0} and {0, 1, 1}. Should we discard any list of powers beginning with zero, say {0, b, c} where b or c is not zero? Except keep {0, 0, 0} if there is a numeric constant term, as in CoefficientRules[x^2 + y z + 3, {x, y, z}]? – Goofy Dec 27 '23 at 17:22
  • you are correct regarding my concern. For my list of polynomials, the constants do not appear usually. So, no specific care should be given to that. – Shasa Dec 29 '23 at 07:13