I am trying to repeat calculations from Hull(options futures and other derivatives) chapter "Using Equity Prices to Estimate Default Probabilities". I want to solve system of 2 equations:

\begin{cases} E_0 = V_0 N(d_1) - L e^{-rt}N(d_2) \\ \sigma_E E_0 = N(d_1) \sigma_V V_0 \end{cases} to find $V_0, \sigma_V$, where you recognise Merton model. We assume that other variables are given, hence should be easy to solve numerically system of 2 equations with 2 unknowns. Using matlab fsolve function, even with feeding analytical Jacobian for different data inputs sometimes returns me:

No solutions found. or Equation solved, fsolve stalled.

This is even worse if I use Black Cox model, as the 1st equation(barrier option) and 2nd equation(because of $\frac{\partial E }{\partial V}$ term) is getting huge.

Could somebody give some hint how to solve this system?

Could somebody give tips or ideas how to choose good initial conditions for fsolve? ( Finally, I eager to be able to solve Black Cox model)

Update: I have been thinking to search for reference how to work with ill-posed problems, or trying to identify if condition number is good, but I can not do the last as the system is non linear( I can not represent it as a matrix).

  • $\begingroup$ Why is $V_0$ unknown? Isn't that the total value of the firm's assets? $\endgroup$
    – user25064
    Jun 13, 2017 at 11:20
  • $\begingroup$ Exactly. I think that it is not observable, but as initial condition for $V_0$ I do the following approximation for it's value: $$V_0 = \sum \# \text{ outstanding stocks}_0\times \text{price of a stock}_0 + \text{short and long term debts}_0 $$ $\endgroup$
    – Jenya
    Jun 13, 2017 at 11:29
  • $\begingroup$ Could you post your matlab code as well? I can take a look. $\endgroup$
    – phdstudent
    Apr 29, 2018 at 14:05
  • $\begingroup$ You will have to use numerical methods since the inverse function of the Gaussian integral, $\mathcal{N}^{-1}[x]}$, is not analytically invertible. It’s analogous to solving for implied volatility of an option... you must approximate and/or iteratively converge. $\endgroup$ Apr 30, 2018 at 4:52

1 Answer 1


Could somebody give some hint how to solve this system?

I am not a Matlab user but I know that people tend to use the nleqslv package in R. See e.g., this post. This implementation or the defaults in the method may help you.

You can also consider the iterative method or maximum likelihood if you have a series of data. I have implemented it in this R package .


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.