kexin 发表于 2008-8-14 14:23

求最值方法

y=f(x,t),如果我想求当y取得最大值时,所对应的x和t应该怎么弄啊?麻烦高手指教

ch_j1985 发表于 2008-8-14 19:29

回复 楼主 kexin 的帖子

请问LZ想要用C解决此问题,还是其它的?

风花雪月 发表于 2008-8-15 08:59

找个合适的优化算法做一下就可以了,论坛有很多相关的实例

kexin 发表于 2008-8-15 14:10

对于优化算法,我不太懂这方面的知识。我想实现如图所示:
请问怎么做呢,数学方法倒是容易算,可是编程如何实现呢?请求帮助!

minetree 发表于 2008-8-17 14:40

呵呵,挺简单的最值问题,充要条件如下:

(1)    f'(x0)=0;

(2)    f(x0)>=f(x0-);

(3)    f(x0)>=f(x0+);

即可。

具体程序中,你可以:

(1)首先求出f'(x)的解析式,定义为F(x);

(2)使用牛顿法,求出F(x)==0的解x0;

(3)定义条件语句,检验(2)得到的x0,并最终得出需要的解。

解毕

科技在线 发表于 2008-8-24 10:00

按照LSD意见办理

kexin 发表于 2008-8-25 08:13

h=hanning(255);
=tfrstft(y1,1:n,2048,h);
FreqBins = FreqBins(1:1024) * fs * 2;
Pyy=abs(BT).^2;
PP=Pyy(:);   %变成一维数组
=max(PP);
fprintf('一维数组中最大值的位置: %10d\n',Ploc);
Tm=fix(Ploc/2048)+1;
Fm=mod(Ploc,2048);
fprintf('相应时间位置: %10d   频率位置: %10d\n',Tm,Fm);
fprintf('最大值的时间: %8.5f   频率: %8.5f\n',t(Tm),FreqBins(Fm));
我想求能量衰减到最大能量的1/3时,所对应的频率和时间,应该怎么弄啊?

kexin 发表于 2008-8-25 20:43

很开心,在自己的摸索下终于作出来了,呵呵分享一下
x=;
x=x';
pp=max(x);
M=1/3*pp;
N=min(abs(x-M));
=find(x==max(M+-N));
Tm=fix(m/2048)+1;
Fm=mod(m,2048);
fprintf('相应时间位置: %10d   频率位置: %10d\n',Tm,Fm);
页: [1]
查看完整版本: 求最值方法