Parameter optimization - lsqnonlin with normcdf

1 view (last 30 days)
Hi all,
I'm trying to optimize parameters with lsqnonlin to fit data. Actual data is market prices of options and I try to fit parameters to get those prices. However, since the formula is
and d1 is expressed as and v is a function of several parameters that I'd like to optimize. Initial parameters works well but when I run lsqnonlin v goes to negative at some point and I get an error of inputs must be real for erf function in normcdf. I made that non-negative using if statement in function v but then optimization doesn't work well.
I appreciate any lead to avoid this.
Best,

Accepted Answer

Raunak Gupta
Raunak Gupta on 30 May 2020
Hi,
I see that the optimization variable in the question is v. Since in lsqnonlin you are mentioning v as your parameter I suggest to put a lower bound lb equal to 0 so that optimization will not return value less than zero.This can be done as mentioned in this example.
Upper bound can be mentioned as ‘inf because v can be any positive real number. You may remove if statement for checking the value of v because the functionality of putting bounds on optimization variable is available in lsqnonlin.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!