2010-12-15 3 views
2

물고기에 대한 파면의 입사각에 따라 물고기의 음향 강도를 계산하는 기능이 있습니다. 나는 또한 음향 강도의 현장 측정 (in situ measurements)을하고있다. 제가하려고하는 것은 앵글의 정규 분포가 모델 데이터가 현장 데이터와 가장 근접하게 일치 하는지를 파악하는 것입니다. Matlab에서 문제 최소화 기능 (fmincon)

내가 다음 함수를 최소화하기 위해 매트랩 함수 fmincon를 사용하려고 해요, 이렇게하려면 다음을 수행
function f = myfun(x) 

TS_krm = KRM(normrnd(x(1),x(2),100,1), L); 
f = sum((TS_insitu - TS_krm).^2); 

는 그래서이 함수가하는 것은 내가 최소화하려는 제곱 잔차의 합을 계산합니다. 이를 위해, 나는 fmincon 사용해보십시오 :

x = fmincon(@myfun, [65;8], [], [], [], [], [0;0], [90;20], [], options); 

을 따라서, 나는 65 개 도의 평균과 나는 또한 보낸 것으로 평균 각도 범위를 설정하고있어 8의 표준 편차 시작 방향을 사용하고 있습니다 0 ~ 90도이며 표준 편차 범위는 0 ~ 20도입니다.

그러나 기능을 최소화하는 평균 및 표준 편차 각을 올바르게 찾는 것 같지 않습니다. 보통 N (65,8)을 중심으로 뭔가를 출력합니다. 시작점과는 다른 값을 많이 사용하지 않는 것과 거의 같습니다.

이 작품을 만들기 위해 내가 할 수있는 아이디어가 있습니까? 나는 TolX와 TolFun 설정을 할 수 있다는 것을 알고 있지만, 그게 무엇이고, 어떤 영향을 미치는지에 대해서는 잘 모르겠습니다. 도움이된다면, 내가 다루는 전형적인 값은 보통 -45dB 정도입니다.

감사합니다!

+3

"물고기의 음향 강도"? 음파 탐지기의 음향 강도가 물고기의 반향 음일 수도 있습니다. 전자는 훨씬 나은 밴드 이름이지만. 어쨌든, 그것은 흥미로운 문제입니다! – mtrw

+0

그래, 나는 너무 기술적 인 것을 원하지 않았다. 필자가 작업하고있는 실제 값은 타겟 강도입니다. 타겟 강도는 본질적으로 에코에서 수신 한 전력 강도와 출력 전력 강도의 비율입니다. – Josiah

답변

1

다른 입력에 대해 f 값의 크기 순서를 살펴보아야합니다. TolFun (f의 변화에 ​​대한 최소화 알고리즘의 허용 오차)에 넣어야하는 값에 영향을 줄 수 있습니다. 예를 들어 TolFun = 1e-6이고 f (45)와 f (64)의 차이가 1e-7이면 알고리즘이 65에서 중지 될 수 있습니다. 또한 사용중인 알고리즘이 함수가 차별화 할 수 있습니다 (파생물을 사용하여 "다음으로 갈 위치"를 찾습니다). 그렇지 않은 경우, 최소값을 찾으려면 단 엑스 (simplex)를 사용해야합니다.

+0

좋아, 나는 TolFun을 변화 시키려고 노력할 수있다. 나는 그것을 더 좁히기 시작하고 있다고 생각하지만, 아마도 향상시킬 수있을 것이다. 내가 가진 주요 문제 중 하나는 함수가 정규 분포를 포함하기 때문에 각 함수 반복이 약간 다른 결과를 초래할 것이라는 점입니다. 따라서 fmincon이 끊임없이 변화하는 것을 최소화하는 것이 더 어려워집니다. 나는 또한 심플 렉스를 점검 할 것이다. 도와 주셔서 감사합니다. – Josiah