1
확률 분포를 나타낼 데이터 포인트 목록이 있습니다. 이 배포본에 통합해야합니다.NIntegrate는 분명히 0이 아닌 적분을 0으로 평가합니다. 피고 합의는 분포로 모프 팅 된 데이터 포인트의 집합입니다.
dList1 = Import["Z-1.txt", "Table"];
dList2 = Import["Z_over-1.txt", "Table"];
dDist[X_,sym_] := (
dList = 0;
If[sym,
dList = dList1;
,
dList = dList2;
];
val = 0;
If[Abs[X] < Pi,
i = 2;
While[dList[[i]][[1]] < X, i++];
width = dList[[i]][[1]] - dList[[i-1]][[1]];
difX = dList[[i]][[1]] - X;
difY = dList[[i]][[2]] - dList[[i-1]][[2]];
val = dList[[i-1]][[2]] + (1-(difX/width)) difY;
];
Return[val];
);
데이터 포인트의 세트가 텍스트 파일에 : 나는 기능을하지 않았고 난 단지 데이터 포인트의 집합을했다 그러나 이후, 나는 확률 분포를 나타 내기 위해 다음 코드를 내놓았다 .
다음 명령을 수행 :
Plot[dDist[x, True], {x, -1, 1}]
이 제공 :
반면이 수행 :
NIntegrate[dDist[x, True], {x, -1, 1}]
이 경고와 함께 제로로 평가
나는 MinRecursion을 무용지물로 늘리려고 노력했다. 나는 무엇을 해야할지 잘 모르겠다. 그리고 dDist 기능을 수정하는 것을 포함하여 어떤 제안에 대해서도 열려있을 것이다.
시도하십시오. http://math.stackexchange.com/ –
@HotLicks, 문제는 수학적 문제가 아닙니다. 수학은 괜찮습니다. mathematica는 어떤 이유로 그것을 잘못 계산합니다. – adhanlon
사용하는 데이터가 최소한이라도 있으면 도움이 될 것입니다. 일반적으로, 통합 전에 포인트를 보간하거나'EmpiricalDistribution'을 사용할 수도 있습니다. –