# gamma function error in calculation

2 views (last 30 days)
yogeshwari patel on 16 Apr 2022
Commented: Torsten on 17 Apr 2022
% Starting value
The above formula is coded as follows:
syms x a
Y=sym(zeros(1));
Y(1)=0;
a=1/2
for i=1:4
if i==5
A=1
else
A=0
end
if i==4
B=1
else
B=0
end
Y(i+1)=simplify((gamma(a*(i-1)+1)/gamma((a*(i-1)+3/2))*(A-Y(i)+((2*B)/gamma(5/2)))));
end
disp(Y)
But it is showing the calculation error Y(5)=1 but the value is shown in MATLAB is as follows:('2535301200456458897054207582575/2535301200456458802993406410752'). Ecxept Y(5) all values are zeros

VBBV on 16 Apr 2022
syms x a
Y=sym(zeros(1));
Y(1)=0;
a=1/2
a = 0.5000
for i=1:4
if i==5
A=1;
B = 0;
Y(i+1)=simplify((gamma(a*(i-1)+1)/gamma((a*(i-1)+3/2))*(A-Y(i)+((2*B)/gamma(5/2)))));
else
A=0;
B =1 ;
Y(i+1)=simplify((gamma(a*(i-1)+1)/gamma((a*(i-1)+3/2))*(A-Y(i)+((2*B)/gamma(5/2)))));
end
if i==4
B=1;
A = 0;
Y(i+1)=simplify((gamma(a*(i-1)+1)/gamma((a*(i-1)+3/2))*(A-Y(i)+((2*B)/gamma(5/2)))));
else
B=0;
A = 1;
Y(i+1)=simplify((gamma(a*(i-1)+1)/gamma((a*(i-1)+3/2))*(A-Y(i)+((2*B)/gamma(5/2)))));
end
end
A = 0
B = 0
A = 1
A = 0
B = 0
A = 1
A = 0
B = 0
A = 1
A = 0
B = 1
disp(vpa(Y,4))
Torsten on 17 Apr 2022
You mix symbolic and floating point parameters in the calculation of Y(5). This will result in reduced accuracy.

### Categories

Find more on Common Operations in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by