numerically solving an equation involving a matlab function with multiple variables

3 visualizaciones (últimos 30 días)
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 comentarios
Stephan
Stephan el 12 de Jul. de 2020
Editada: Stephan el 12 de Jul. de 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?

Iniciar sesión para comentar.

Respuesta aceptada

Stephan
Stephan el 12 de Jul. de 2020
Editada: Stephan el 12 de Jul. de 2020
fun = @(x) blsprice(5,2,0.05,x,0.2) - 4;
unknown_time = fsolve(fun,0.5)

Más respuestas (0)

Categorías

Más información sobre Programming en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by