Solving simultaneous equations for Weibull distribution parameter estimation

449 Views Asked by At

What is the best way to solve the equations below using Matlab. I have the values for i, Ni, k, T and am in need of values for rho, beta and alpha.

i goes up to 12

Thank you

enter image description here

1

There are 1 best solutions below

0
On BEST ANSWER

The best way would probably be to use fsolve; in fact, the default algorithm used by fsolve is the trust-region dogleg method (which is the suggested method in the problem statement).

To get started, you reformulate your problem as a nonlinear root finding problem:

$$\textbf{F}(\textbf{x}) = \textbf{0}$$

where

\begin{equation} \textbf{x} = \begin{bmatrix} \rho \\ \alpha \\ \beta \end{bmatrix} \text{ and } \textbf{F}(\textbf{x}) = \begin{bmatrix} \rho - \text{ RHS of eqn (14)} \\ \text{LHS of eqn (15)} \\ \text{LHS of eqn (16)} \end{bmatrix}. \end{equation}

The goal now is to find $\textbf{x}$ such that $\textbf{F}(\textbf{x}) = \textbf{0}$; if you compare this to the original problem, you will see that these two problems are equivalent.

Next you create a .m file (say "myfun.m") which is a function: input is a vector x = [rho, alpha, beta]; output is F = $\textbf{F}$ evaluated at x. Then you use the command

x = fsolve(@myfun,x0);

where x0 is an initial guess to the solution (ideally you would have some intuition as to what might be a good initial guess, but if not then you could choose x0 = [0, 0, 0], x0 = [1, 1, 1], or even x0 = rand(1, 3)).

Some useful links from the MATLAB documentation are: