# numerically solving an equation involving a matlab function with multiple variables

4 views (last 30 days)
Harry on 12 Jul 2020
Edited: Stephan on 12 Jul 2020
I am interested in using a numerical equation solver to solve equations of the kind
known_1=my_function(unknown,known_2,known_3,...)
If there is a solution where unknown is between two bounds.
Thankfully I know that in the cases I am interested in there will either be 0 or 1 solutin within the bounds.
An example of an equation of this type that i am interested in is:
4==blsprice(5,2,0.05,unknown_time,0.2)
Where unkown_time is the variable i want to solve for
Alan Stevens on 12 Jul 2020
Look up help on function fzero.
Stephan on 12 Jul 2020
Edited: Stephan on 12 Jul 2020
fzero will not work, because it will try to use negative values, which leads to an error.
BTW: The time that results is about 13.693 years (for a call option):
>> blsprice(5,2,0.05,13.693,0.2)
ans =
4.0000
Are you sure you have the correct input values? The option already has an inner value of 3. To get one additional time value of 1 you would need this huge time. The option price for a half year for your example would be:
>> blsprice(5,2,0.05,0.5,0.2)
ans =
3.0494
Are you sure that you use correct inputs?

Stephan on 12 Jul 2020
Edited: Stephan on 12 Jul 2020
fun = @(x) blsprice(5,2,0.05,x,0.2) - 4;
unknown_time = fsolve(fun,0.5)