[R] Help with implementing asymptotic expansion for fractional-power polynomials in R

tgs77m m@iii@g oii y@hoo@com tgs77m m@iii@g oii y@hoo@com
Sat Oct 4 20:40:56 CEST 2025


I've been developing an R script to compute asymptotic expansions of a
polynomial raised to a fractional power in order to approximate that
integral.

he implementation is my own, but I'm encountering issues with higher-order
terms and fractional exponents. I'd like guidance on making the code:

Robust for any polynomial degree
Accurate with fractional powers
Efficient for high-degree polynomials

library(partitions)

asymptotic_expansion <- function(coeffs, alpha, max_order = 4) {
  degree <- length(coeffs) - 1
  r_lead <- coeffs[1]
  lower_coeffs <- coeffs[-1] / r_lead
  n <- length(lower_coeffs)
  
  result <- numeric(max_order + 1)
  result[1] <- 1
  names(result) <- paste0("x^", degree*alpha - 0:max_order)
  
  for (k in 1:max_order) {
    combos <- compositions(k, n)
    for (col in 1:ncol(combos)) {
      j <- combos[, col]
      power_y <- sum(j * (1:n))
      if (power_y <= max_order) {
        multinom_coef <- factorial(k) / prod(factorial(j))
        term <- multinom_coef * prod(lower_coeffs^j)
        result[power_y + 1] <- result[power_y + 1] + choose(alpha, k) * term
      }
    }
  }
  
  result <- result * r_lead^alpha
  return(result)
}

# Example polynomial and parameters
coeffs <- c(1, -17, 80, -100)
alpha <- 0.01
max_order <- 4

# Compute expansion
coefs <- asymptotic_expansion(coeffs, alpha, max_order)
print(coefs)

x^0.03   x^-0.97   x^-1.97   x^-2.97   x^-3.97 
1.0         -0.17         0.798    -3.667    ...

The coefficient for the fourth term (-3.667) seems inconsistent with
expected results from higher-precision calculations or reference tools
(should be roughly -1.656). I suspect this may be related to fractional
exponents or truncation of higher-order terms.

I'd appreciate guidance on:

Correctly handling fractional exponents in the expansion
Improving accuracy for higher-order terms
Making the code general for any polynomial degree

Thank you for your help!

Thomas Subia



More information about the R-help mailing list