Consider the least squares problem, $$ \min_{\mathbf{a},\mathbf{b}} || \mathbf{f}(\mathbf{a},\mathbf{b})||^2 $$ where $\mathbf{a},\mathbf{b}$ represent the unknown parameters to be found. In my problem, the parameters $\mathbf{a}$ appear linearly in the residual vector $\mathbf{f}$ while the parameters $\mathbf{b}$ are nonlinear. So my Jacobian matrix will look like: $$ J = \pmatrix{J_a & J_b(\mathbf{b})} $$ In other words, part of the Jacobian matrix ($J_a$) is fixed and will not change from one least squares iteration to the next. Can this somehow be exploited to speed up the iterative algorithm? On each iteration the following linear least squares problem needs to be solved for the step $(\delta \mathbf{a}, \delta \mathbf{b})$: $$ \pmatrix{J_a & J_b(\mathbf{b})} \pmatrix{ \delta \mathbf{a} \\ \delta \mathbf{b}} = -\mathbf{f}(\mathbf{a},\mathbf{b}) $$ The only solution I've come up with so far is to use the normal equations approach, and the normal equations matrix is, $$ J^T J = \pmatrix{ J_a^T J_a & J_a^T J_b(\mathbf{b}) \\ J_b^T(\mathbf{b}) J_a & J_b^T(\mathbf{b}) J_b(\mathbf{b})} $$ The upper left term $J_a^T J_a$ can be precomputed once while the other terms need to be computed for each iteration. Then I need to solve $$ (J^T J) \pmatrix{ \delta \mathbf{a} \\ \delta \mathbf{b}} = -J^T \mathbf{f} $$ and I can save a little bit of computation when constructing $J^T J$ using the precomputed $J_a^T J_a$.
Just wondering if anyone knows of any other clever methods to solve such a problem. Ideally I'm wondering if its possible to somehow remove the $\mathbf{a}$ parameters and solve a smaller sub-problem involving only $\mathbf{b}$ at each iteration?