How to compute the hessian matrix, when I'm using a Nelder-Mead maximum optimization of a function
Afficher commentaires plus anciens
Hi,
I'm performing a nelder-mead optimization of a function (f), and I want to calculate the coefficient of variance matrix (COVmatrix). To do this I want to use the inverse Hessian matrix or inverse fisher information matrix. Is there an command in matlab that finds this??
Thanks!
My script:
clc;clear all; close all;
T = [1651 1640 1670 1670 1658 1668 1647 1661]; % Test data
f = @(x) -(sum(log10(wblpdf(T,x(1),x(2))))); % Function
[x,fval] = fminsearch(f,[1600, 100]) % Finds maximum values of x(1) and x(2)
Réponses (1)
Alan Weiss
le 15 Avr 2015
0 votes
I am not aware of anything in base MATLAB, but there is at least one Hessian calculator on the File Exchange.
Alan Weiss
MATLAB mathematical toolbox documentation
4 commentaires
Trond Oesten
le 15 Avr 2015
For anyone else still curious about this, the paper by Nelder and Mead provides a method to estimate the information matrix in the appendix. Basically, you produce intermidiate points between all the points in your simplex so you get (N+1)(N+2)/2 total points. Then transform those points into a new coordinate system where the minimum of the simplex is the origin and each point in the original simplex represents the new axes. Fitting a quadratic to that surface provides you with your information matrix in that coordinate system. You then need to transform it back into your original coordinate system.
I've created an appended version of fminsearch that contains the code to do this if it's of any interest.
Jacek Barszczewski
le 24 Jan 2022
Hi Dean, I'm interested in this code. I would be very grateful!
Pedro Gardete
le 7 Fév 2024
Same here! Could you perhaps share it or post it somewhere? Thank you...
Catégories
En savoir plus sur Solver Outputs and Iterative Display dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!