program error :Unbalanced or unexpected parenthesis or bracket

1 vue (au cours des 30 derniers jours)
amir khalighi
amir khalighi le 4 Mai 2018
Commenté : Ameer Hamza le 4 Mai 2018
Hi all
I wrote a program for below formula , but when i run it , it face an error (Unbalanced or unexpected parenthesis or bracket.)
and also for C calculated amount I need a fixation : when calculated C from above formula is less than 0 put C=0 and when C is amount from above formula is bigger than 0 put C=calculated amount ( i mean for exmple when it become -20 then put C=0 and for example when C=20 put C=20 and make no changes)
I attached the program but for certain I write the code here :
clc;
clear;
r=0.01;
u=0.05;
d=-0.04;
n=4;
j=0;
St=40;
K=25;
p=(r-d)/(u-d)
C=(1/(1+r)^n)*(symsum(nchoosek(n,j)*p^j*(1-p)^(n-j)*max(0,((1+u)^j)*(1+d)^(n-j)*St/K))),j,0,n)
Could anyone help me and fix change the program to work and fix C amount
I'm in hurry and just have 2 hours
plz help me
thank you all
  8 commentaires
amir khalighi
amir khalighi le 4 Mai 2018
awsome
thank you very very much :)
Ameer Hamza
Ameer Hamza le 4 Mai 2018
You are welcome.

Connectez-vous pour commenter.

Réponse acceptée

Ameer Hamza
Ameer Hamza le 4 Mai 2018
As evident from the error message, you are having unbalanced brackets. You should clearly pay attention to error messages. Also max() function will only work on symbolic expression if you clearly describe its type. Here is the corrected code
clc;
clear;
r=0.01;
u=0.05;
d=-0.04;
n=4;
syms k integer;
St=40;
K=25;
p=(r-d)/(u-d);
C=(1/(1+r)^n)*symsum((nchoosek(n,k).*p.^k*(1-p).^(n-k).*max(0,((1+u).^k).*(1+d).^(n-k).*St/K)),k,0,n);
  2 commentaires
amir khalighi
amir khalighi le 4 Mai 2018
Error using sym/max (line 97) Input arguments must be convertible to floating-point numbers.
Error in math (line 11) C=(1/(1+r)^n)*symsum((nchoosek(n,k).*p.^k*(1-p).^(n-k).*max(0,((1+u).^k).*(1+d).^(n-k).*St/K)),k,0,n);
  • what should i do now?
Ameer Hamza
Ameer Hamza le 4 Mai 2018
Have you ran the following line.
syms k integer;
I also changed variable name from j to k, to avoid conflict with MATLAB internal constant.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by