Я пытаюсь перевести функцию из книги в код, используя MATLAB и C #.
Сначала я пытаюсь заставить функцию работать должным образом в MATLAB.
Вот инструкции:
![alt text](https://i.stack.imgur.com/GHd9g.png)
Переменные:
xt and m can be ignored.
zMax = Maximum Sensor Range (100)
zkt = Sensor Measurement (49)
zkt* = What sensor measurement should have been (50)
oHit = Std Deviation of my measurement (5)
Я написал первую формулу N (zkt; zkt *, oHit) в MATLAB следующим образом:
hitProbabilty = (1/sqrt( 2*pi * (oHit^2) ))...
* exp(-0.5 * (((zkt- zktStar) ^ 2) / (oHit^2)) );
Это дает мне гауссову кривую, которую я ожидаю.
У меня есть проблема с определенным интегралом ниже, я не понимаю, как превратить это в действительное число, потому что я получаю ужасные значения из моего кода, а именно:
func = @(x) hitProbabilty * zkt * x;
normaliser = quad(func, 0, max) ^ -1;
hitProbabilty = normaliser * hitProbabilty;
Может кто-нибудь помочь мне с этим интегралом? Предполагается, что он нормализует мою кривую, но он просто сходит с ума .... (Я делаю это для zkt 0: 1: 100, со всем остальным так же, и строю график вероятности, которую он должен вывести.)