numerically solving an equation involving a matlab function with multiple variables

조회 수: 3 (최근 30일)
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
Stephan
Stephan 2020년 7월 12일
편집: Stephan 2020년 7월 12일
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
Stephan 2020년 7월 12일
편집: Stephan 2020년 7월 12일
fun = @(x) blsprice(5,2,0.05,x,0.2) - 4;
unknown_time = fsolve(fun,0.5)

추가 답변 (0개)

Community Treasure Hunt

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

Start Hunting!

Translated by