How can I plot the graph for this function?
显示 更早的评论
f(x)=symsum(2^(-m*x)*(gamma(m*x+j-1+1)/gamma(m*x-1+1))*h(j/m),j.0.Inf)
where h(j/m)=(j/m)^2+1, m=100.

Please help me out.

5 个评论
Dyuman Joshi
2022-6-7
Are you sure it's gamma and not square root?
Gufran Malik
2022-6-8
Dyuman Joshi
2022-6-8
The code for the sum is as follows. Though, in this form, it takes to much time to compute.
If you analyse it on pen-paper you might get an reduced form which is easier/faster to compute.
syms x j
m=100;
2^(-m*x)*symsum(gamma(m*x+j)*((j/m)^2+1)/(gamma(m*x)*2^j*factorial(j)),j,0,Inf)
Gufran Malik
2022-6-10
Dyuman Joshi
2022-6-11
It worked on my pc without any errors, but it took an eternity to run :')
(i3-5th gen, 8 gb ddr3 ram)

采纳的回答
更多回答(1 个)
Gufran Malik
2022-8-17
0 个投票
4 个评论
You woiuld need a fixed value for m in order to plot that, unless you wanted to plot a surface with a range of m values.
It simplifies surprisingly far
syms h(x)
syms j m s x positive
h(x) = x^2 + 1
inner(j) = int(h(s), s, j/m, (j+1)/m)
outer = symsum( gamma(m*x + j) / (gamma(m*x) * 2^j * factorial(j)) * inner(j), j, 0, inf)
f(x) = outer / 2^(m*x)
fs(x) = simplify(f(x))
m = 100;
H = @(lb,ub) (1/3*ub^3+ub) - (1/3*lb^3+lb);
x = 0:0.01:10.0;
tol = 1e-16;
Lm = zeros(size(x));
for i = 1:numel(x)
Lm(i) = fun_Lm(m,H,x(i),tol);
end
Lm_Walter_Roberson = (9*m*x+1+3*m^2+3*(m*x).^2)/(3*m^3);
plot(x,[Lm;Lm_Walter_Roberson])
function value = fun_Lm(m,H,x,tol)
value = 0.0;
error = Inf;
j = 0;
summand = H(0/m,1/m);
while error > tol
value = value + summand;
error = abs(summand);
summand = summand * (m*x+j) * 1/2 * 1/(j+1) * H((j+1)/m,(j+2)/m)/H(j/m,(j+1)/m);
j = j + 1;
end
value = value/2^(m*x) ;
end
Gufran Malik
2022-8-21
Gufran Malik
2022-8-21
类别
在 帮助中心 和 File Exchange 中查找有关 Symbolic Variables, Expressions, Functions, and Settings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!







