2012-11-18 5 views
1

히스토그램에 대한 Levy Distribution을 사용하지 않아도 잠시 둘러 보았습니다. Levy Flight 배포본이 실제로 데이터 유형에 적합한 지 여부에 관계없이 데이터를 어떻게 표시할지 테스트 해보고자합니다. 필자는 PDF에서 새로운 것이므로 MATLAB의 distfittool GUI를 제외하고 필자 자신의 PDFS를 피팅했기 때문에이 작업을 제대로 수행하기 위해 내가해야 할 일을 조금도 모르고 있습니다.Levy Flight Distribution Histogram Matlab

현재 내 데이터는 208x1 벡터이고, 208 포인트는 208 개의 개별 개체에 대해 다른 속도를 나타냅니다. 속도는 시간당 전체 거리를 통해 계산되었습니다.

지금 현재 나는에서 레비 비행을 설명하는 기능에 나섭니다 : http://reference.wolfram.com/mathematica/ref/LevyDistribution.html (아웃 [3])

을 그리고 나는 그것을 밖으로 시도하는 다음 코드를 사용 :

load('Speeds.mat') 
modelFun = @(p,x) (exp(-p(1)./(2.*(x-p(2)))).*(p(1)./(x-p(2))).^3/2)./(sqrt(2.*pi).*p(1)); 
startingVals = [1 1]; 
coefEsts = nlinfit(LBSpeed,modelFun,startingVals); 

내가 Levy 비행 배급에 익숙하지 않은 이유가 그 배급을 위해 사용할 적절한 기능인지 여부를 알 수없는 이유의 근원이며이를 제대로 수행하기 위해 전달해야하는 논쟁도 아닙니다. 누구라도 나에게 좀 더 통찰력을 줄 수 있다면 크게 감사하겠습니다.

+0

에 MATLAB 코드 피팅 루틴을 찾을 수 있습니다 당신은 당신이 그것을 시도 할 때 정확히 무엇이 잘못되었는지에 대한 자세한 될 수 있을까? –

답변

1

나는 동료의 도움을받은 후 나는 해결책

내 원래의 질문에 변경되었습니다 다른 일을 게시하고 싶었다 그래서, 어떤 답변이 문제에 대한 비슷한 질문을 본이로 구분이 된 것입니다있다 levy 비행 방정식에 대한 참조를 더 잘 만족시킨다. 내가 선택한 시작 값은 임의적이었습니다.

load('Speeds.mat') 
[N,X] = hist(Speed,20); 
Y = N/(sum(N))/diff(X(1:2)); 

%Get best parameters 
modelFun = @(p,x) (x>p(2)).*(exp(-p(1)./(2.*(x-p(2)))).*(p(1)./(x-p(2))).^(3/2))./(sqrt(2.*pi).*p(1)); 
startingVals = [1,1]; 
coefEsts = nlinfit(X,Y,modelFun, startingVals); 

%Visualize fit 
bar(X,Y); 
hold on; 
model_eval = modelFun(coefEsts,X); 
plot(X,model_eval,'r','LineWidth',2); 

나는 처음에 히스토그램에 맞게하는 방법을 인식하지, 그래서는이 새로운 사람을 도움이되기를 바랍니다!