3
$\begingroup$

I am interested in a method to find the roots of the following equation:

\begin{equation} f(t) = \sum_{i=1}^n \alpha_i e^{\beta_i t} + \gamma t + \delta = 0. \end{equation}

For my application, coefficients $\alpha_i$, $\beta_i$, $\gamma$, and $\delta$ are real. $n$ is typically a small integer, say 10. In particular I am interested in the smallest positive real root of $f$.

For those interested, this equation arises when attempting to compute the point of intersection between the solution to the linear ODE

\begin{align} \dot x(t) &= Ax(t) + b & (A = A^T) \\ x(0) &= x_0 \end{align}

and the boundary of a set of linear constraints

\begin{equation} Cx(t) \ge d. \end{equation}

The initial point is always feasible $(Cx_0\ge d)$. For my purposes, all matrices and vectors are real.

1 Answers 1

1

Assuming $\alpha_i, \beta_i, \gamma$, and $\delta $ are givens, any numeric root finder should make quick work of this. There won't be an algebraic solution. There is good info at Numerical Recipes chapter 9.

  • 0
    Thanks Ross and J.M. I have to solve this equation many times in my code. Visual inspection is not an option. Also I need a guarantee that I find the smallest positive real root. When $\gamma = 0$ and $n = 2$, I can reliably use `fzero` in Matlab to meet my requirements. I first solve $f'(t)=0$ to find the critical points. For the general problem I've been using [chebfun](http://www2.maths.ox.ac.uk/chebfun/), which works, but ends up being slow. I was/am hoping there is a specific algorithm to solve the equation directly.2010-11-09