campreilly / UnderSeaModelingLibrary

The Under Sea Modeling Library (USML) is a collection of C++ software development modules for sonar modeling and simulation.
Other
45 stars 22 forks source link

Improve the accuracy of wave_queue::compute_offsets(). #106

Closed campreilly closed 9 years ago

campreilly commented 9 years ago

Using folds in the wavefront to detect edges produces better results in surface ducts, but creates accuracy problems for the pedersen deep tests. The problems with propagation loss accuracy has been traced to problems in the accuracy of the inverse Hessian method currently used by compute_offsets. Investigate other methods.

campreilly commented 9 years ago

Investigating options on the improve_offset branch (efcb444fe457e2a45a05d8e3aa005efdd0cb8f1f).

Our current scheme is basically a one step Newton Raphson method (http://en.wikipedia.org/wiki/Newton%27s_method_in_optimization). When the distance squared is a smoothly varying function of travel time, launch D/E, and launch AZ (in neighborhood around the CPA) this method should provide us with a very accurate answer. But, there are known shortcomings and that seesms to be the source of our problems.

We are investigating iterative schemes like the Golden Sector Search (http://en.wikipedia.org/wiki/Golden_section_search) and Brent's Method (http://en.wikipedia.org/wiki/Brent%27s_method) as alternatives.

campreilly commented 9 years ago

We have prototyped both the Golden Sector Search and Brent's Method in Matlab, and they hold promise. Our next steps are:

campreilly commented 9 years ago

There were several iterations of this that exposed small errors in the solution. Before declaring success, we performed extensive re-testing: