gamma function error in calculation
2 ビュー (過去 30 日間)
古いコメントを表示
% 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
0 件のコメント
回答 (1 件)
VBBV
2022 年 4 月 16 日
syms x a
Y=sym(zeros(1));
Y(1)=0;
a=1/2
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
disp(vpa(Y,4))
3 件のコメント
Torsten
2022 年 4 月 17 日
You mix symbolic and floating point parameters in the calculation of Y(5). This will result in reduced accuracy.
参考
カテゴリ
Help Center および File Exchange で Special Functions についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!