Tag Info

1

I have been thinking that it might be easier if one changes first the variables in the differential equation. That way one can bypass the function $h(t)$ and deal with fewer functions. Since $$\hat{y}(t) = \hat{y}_{\theta}(t) = \hat{y}(t \,| \, \theta) = \theta \, \sqrt{2g} \, \sqrt{h(t)}$$ change the dependent variable $$\hat{y} = \theta \, \sqrt{2g} \, \... 1 I don't see how two equations give z as output. Nevertheless, your sequence of computations looks reasonable, except I would combine steps one and two into: Simultaneously solve for x and the sensitivities z. This is a extended ODE system that you could throw at a built-in MATLAB ODE solver:$$ \begin{bmatrix} x'(t,\hat{\theta}) \\ z'(t,\hat{\theta}...

2

Yes, those Givens rotations do not seem correctly implemented to me. Since you are doing this as a learning project: learn from the masters http://www.netlib.org/lapack/explore-html/de/da4/group__double__blas__level1_ga54d516b6e0497df179c9831f2554b1f9.html. Also make sure that the givens rotations you are applying from the left are the same as the ones you ...

0

A common approach to these kinds of problems is to sample the range of parameters (e.g. on a rectangular grid) and then fit a quadratic function to the points as a surrogate or "response surface" You then minimize the quadratic surrogate function. After doing one round of this, you can repeat the process using a finer grid around the minimum of the first ...

2

I think the primary issue you're seeing is related to how you're checking for convergence. The chosen value for your tolerance is likely too tight. The tolerance should at a minimum allow 1 double precision (DP) epsilon up or down of floating point rounding error. However, 1 DP epsilon is relative to the magnitude of the floating point value. In this ...

4

If your objective function is noisy, then it makes sense to use stochastic algorithms. I would take a look at James Spall's SPSA algorithm and variations. There are also algorithms that update (an approximation of) the Hessian. All of these algorithms take into account that whatever gradient you compute may be noisy, and consequently don't just blindly ...

Top 50 recent answers are included