numerically solving an equation involving a matlab function with multiple variables

2 views (last 30 days)
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
  2 Comments
Stephan
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?

Sign in to comment.

Accepted Answer

Stephan
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)

More Answers (0)

Community Treasure Hunt

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

Start Hunting!