2017-02-09 2 views
0

Matlab에서 확률 측정 값의 밀도를 구현하고 싶습니다. 이를 위해 I 함수 핸들로 density 정의 같은 [A, B]를Matlab의 Dirac 확률 측정

syms x 
int(f(x)*density(x),x,a,b) 

의해 계산 될 수있는 간격으로 (함수 핸들로 주어진다) 어떤 함수 f의 적분은이 디랙 측정 올 때 문제는 그 것입니다

int(dirac(x),x,0,b) 

은 모든 b> 0에 대해 1 대신 값 1/2을 전달합니다. 그러나 I 그것이되어야 같은 < 0 및 b> 0 리턴 값이 1

int(dirac(x),x,a,b) 

입력하면. 이 이유 때문에 모든 간격 [a, b]에서 내 밀도를 유효하게하려면 2를 곱하면 충분하지 않습니다. 또한 통합하기 전에 뚜렷한 사례를 원하지 않아 코드가 많은 밀도의 클래스에 유효하게 유지됩니다.

Matlab에서 Dirac 확률 측정법 (here)을 구현하는 방법을 아는 사람이 있습니까?

+0

Dirac 분포는 모두 0으로 집중됩니다.그래서 낮은 통합 한계가 정확히 '0'일 때 적분을 정의하는 방법을 모르겠습니다. 낮은 통합 한계 값으로'-inf'를 사용할 수 없습니까? 또는 제한을 사용할 수도 있습니다 :'limit (int (dirac (x), x, a, b), a, 0, 'left')''1 '을 말합니다 –

+0

@Luis Mendo 닫혀 야합니다. 따라서 dirac의 Integral은 정의 할 수 있습니다 (0이 intervall에 포함 된 경우에만 계산됩니다). 한계 해결책은 좋지만, 다른 밀도에 대한 적분 값을 계산하고 싶기 때문에 한계를 항상 계산하고 싶지는 않습니다 (아무도 더 좋은 결과를 얻지 못하면 어쨌든이 솔루션을 채택 할 것입니다). –

+1

조금 후퇴하고 다른 접근 방식을 취하십시오. int (delta, 0, b)에 대해 고유하고 허용되는 정의는 없습니다. 여기에서의 문제는 델타 함수가 Matlab이 제공 한 것보다 어떻게 다른 컨벤션을 부과하고자하는 것처럼 "잘못된"대답을 얻는 것이 아니라는 것입니다. 예를 들어, Wolfram Alpha에서 이것을 평가하면, 그것은 쎄타 (0)를 줄 것입니다 - 이것은 특별히 무엇인가로 정의되지 않습니다. 여기서 theta는 Heaviside 함수입니다. 여기에 자신의 컨벤션을 부과하려는 경우, 자신의 델타 기능을 구현하십시오. – Brick

답변

1

int (delta, 0, b)에 대해 고유하고 허용되는 정의가 없습니다. 여기에서의 문제는 델타 함수가 Matlab이 제공 한 것보다 어떻게 다른 컨벤션을 부과하고자하는 것처럼 "잘못된"대답을 얻는 것이 아니라는 것입니다. 예를 들어, Wolfram Alpha에서 이것을 평가하면, 그것은 쎄타 (0)를 줄 것입니다 - 이것은 특별히 무엇인가로 정의되지 않습니다. 여기서 theta는 Heaviside 함수입니다. 자신의 컨벤션을 부과하고 싶다면, 자신의 델타 기능을 구현하십시오.

편집

난 당신이 내가이 답변을 작성하는 동안, 그래서 .... 디랙 측정 또는 디랙 델타 함수는 함수가 전혀 아니라는 것을 명심 질문에 댓글을 쓰셨 참조 . 아래에서 설명하는 것과 함께 현재 가지고있는 문제는 본질적으로 기능이 아닌 것에 기능적 형태를 부여하려는 것과 관련이 있습니다. Matlab에서 가지고있는 프레임 워크에서 잘 정의되지 않았습니다. EDIT

OF

END 컨텍스트에 대한 규칙 지점 말하면, 델타 함수는 다른 속성에 의해 정의 될 수있다. 하나는 b 일 때 int (delta (x) f (x), a, b) = f (0)입니다. 이것은 당신이 원하는 일체성에 대해 아무 것도 말하지 않습니다. Matlab에서 얻은 답은 아마 한계로 정의하는 것입니다. 1 (단 하나의 선택이 아닌)은 분산이 0이 될 때 제로 평균 가우스의 한계입니다.

int (delta (x) f (x), a, b) 규칙을 사용하려면, = < = 0 < b 일 때 = f (0)로 설정하면 많은 문제가 발생하지 않지만 "올바른"또는 "잘못된"답변보다 더 많이 선택한 규칙에 유의하십시오. Matlab에서 얻은 것.

x = 0에서 단계 함수 (Heaviside 함수)와 유사한 선택을 할 수 있습니다. (a) undefined, (b) -1, (c) +1, (d) 1/2의 규칙이 있습니다. 아무도 "잘못"하지 않습니다. 이것은 아마도 Heaviside가 (대략) Dirac의 적분이기 때문에 Dirac 함수의 선택에 대략 일치 할 것입니다.

+0

이것은 내 질문에 대한 대답이 아닙니다 (마지막 줄에 표시). 확률 측정에 대한 dirac 측정 값은 유일하게 정의됩니다 ([here] (https://en.wikipedia.org/wiki/Dirac_measure)). 나는 그것을 더 정확하게 만들기 위해 나의 질문을 편집했다. –

+1

@ Vincent.W. 나는 한 번 더 해보고 나간다. 참조하는 정의는 함수의 정의를 전혀 제공하지 않습니다. 그것은 * something * mathematical의 고유 한 정의이지만, 무언가는 함수가 아닙니다. Matlab의 프레임 워크에는 함수가 필요합니다. 네가 원하는 것은 존재하지 않는다. – Brick

+2

@ Vincent.W. 어쩌면 나는 브릭의 설명을 다음과 같이 바꿔 쓸 수있다. 당신이 원하는 것은 Dirac 측정에있어 필수 불가결 한 것이다. Matlab은 Lebesgue 측정 만 고려합니다. 르 베그 측정에 대한 Dirac의 델타의 적분은 (함수 대신) 분포를 고려하지 않는 한 존재하지 않습니다. 따라서 배포판이나 임의의 조치를 처리 할 수 ​​있어야합니다. 그 중 어느 것도 기성품 Matlab 함수로는 불가능할 것입니다 –