Implementation of infinite series in MATLAB.
25 次查看(过去 30 天)
显示 更早的评论
How I can impliment this type of infinite series in MATLAB given a function as where , here l,\gamma are constant. when I use
syms k;
exp = symsum(H(k + 1,gamma_av),k,1,Inf);
I used to get error like this "The following error occurred converting from sym to double:
Unable to convert expression into double array."
Please help me out.
5 个评论
Walter Roberson
2021-2-11
The error is not in the part of the code that you posted. We need to see the rest of the code.
采纳的回答
Walter Roberson
2021-2-13
The error message you get is because the symbolic engine was not able to find a convergent value for the infinite series when you use double(). And depending on the number of digits you use for vpa() it might or might not find a solution.
Interestingly, if you use a finite series such as 75 terms, then double() does well at converting the value, whereas you need on the order of 150+ digits in order for vpa to be able to resolve it: if you use a high finite Limit and too few digits then vpa() will tend to return exactly 0.
format long g
syms k;
snr = 2;
l = 2;
Limit = Inf;
expression2 = symsum(H(k + 1,snr,l),k,1,Limit);
for D = 120:129
try
D
ev = vpa(expression2, D)
ed = double(ev)
catch ME
fprintf('failed working at %d digits\n', D);
end
end
double(expression2)
function [out] = H(y,z,l)
Pi = sym(pi);
%gam, y,z,l are user inputs
m = -1/log2(cos(Pi/6)); % in paper its used as small gamma.(\gamma)
out1 = (2/z)^y;
out2 = gamma(y) - igamma(y,(l^(-2*(m + 2))/2)*z);
out = out1 * out2;
end
0 个评论
更多回答(1 个)
Sahil
2022-9-18
编辑:Walter Roberson
2022-9-18
function [out] = H(y,z,l)
Pi = sym(pi);
%gam, y,z,l are user inputs
m = -1/log2(cos(Pi/6));
% in paper its used as small gamma.(\gamma)
out1 = (2/z)^y;
out2 = gamma(y) - igamma(y,(l^(-2*(m + 2))/2)*z);
out = out1 * out2;
end
1 个评论
Walter Roberson
2022-9-18
What is the difference between that and what I posted last year at https://www.mathworks.com/matlabcentral/answers/742277-implementation-of-infinite-series-in-matlab#answer_622427 ?
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Calculus 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!