我有一个函数,它根据鱼的波前入射角计算鱼的声强。我还有一些原位测量的声强。我想要做的是找出角度的正态分布导致模型数据与现场数据最为匹配。Matlab中的问题最小化函数(fmincon)
要做到这一点,我试图使用MATLAB函数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设置,但是我不确定这些设置是什么以及它们会产生什么效果。如果有帮助,我正在处理的典型值通常约为-45 dB。
谢谢!
2010-12-15
Josiah
+3
“鱼的声强”?也许声音来自鱼的声音回声?虽然前者是一个更好的乐队名称。无论如何,这是一个有趣的问题! –
2010-12-15 20:50:24
+0
是的,我不想太过于技术性。我正在使用的真实数值是目标强度,它基本上是从回波接收的功率强度与输出功率强度的比率。 –
2010-12-15 21:09:04