gamma function error in calculation

4 visualizzazioni (ultimi 30 giorni)
yogeshwari patel
yogeshwari patel il 16 Apr 2022
Commentato: Torsten il 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

Risposte (1)

VBBV
VBBV il 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))
  3 Commenti
yogeshwari patel
yogeshwari patel il 17 Apr 2022
The correct value are Y(1)=0; Y(2)=0;Y(3)=0, Y(4)=0, Y(5)=1 and rest value s are zero. Now if I work with pen and paper the values are same as I mention above but when I work with MATLAB code the value of Y(5)=2535301200456458897054207582575/2535301200456458802993406410752 .Why that error is appaering
Torsten
Torsten il 17 Apr 2022
You mix symbolic and floating point parameters in the calculation of Y(5). This will result in reduced accuracy.

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by