I need help to calculate the moments of a Chebyshev
3 views (last 30 days)
Show older comments
hello, I would like to calculate the moments Chebyshev image so I used the function ChebyshevPoly after I integrated in my code to calculate the moments (the name of the function is moment), but in the end the result I is all the time as result: 0. If you can help me understand my mistake or if you have a matlab code which computes the Chebyshev moments. These are the functions that I developed: ChebyshevPoly,moment,phi_j
function tk = ChebyshevPoly(n)
if n==0 tk = 1; elseif n==1 tk = [1 0]'; else
tkm2 = zeros(n+1,1);
tkm2(n+1) = 1;
tkm1 = zeros(n+1,1);
tkm1(n) = 1;
for k=2:n
tk = zeros(n+1,1);
for e=n-k+1:2:n
tk(e) = 2*tkm1(e+1) - tkm2(e);
end
if mod(k,2)==0
tk(n+1) = (-1)^(k/2);
end
if k<n
tkm2 = tkm1;
tkm1 = tk;
end
end
end
function out=phi_j(n,N) %PHI_J Summary of this function goes here % Detailed explanation goes here
%out=factorial(2*n)*[N+n; 2*n+1]; %out=factorial(N+n)/(2*n+1)*factorial(N-n); mol=1; for i=1:n, mol=mol*(N^2-i^2); end
out=(N^2*mol)/(2*n+1)*10^-6; end
function [ T_mn ] = moment( f,n,m) %MOMENT Summary of this function goes here % Detailed explanation goes here [N,M]=size(f); som=0; for x=1:N, for y=1:M,
% Polyval(ChebyshevPoly(n),x) som = som + (Polyval(ChebyshevPoly(n),x) * Polyval (ChebyshevPoly(m),y)* f(x,y)); end end
som; % phi_j(n,N) % phi_j(m,M) % 1/(phi_j(n,N) % 1/phi_j(m,M) % (1/(phi_j(n,N))*(1/phi_j(m,M))) T_mn=(1/(phi_j(n,N)*phi_j(m,M))).*som; end
thank you
0 Comments
Answers (0)
See Also
Categories
Find more on Mathematics and Optimization 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!