zhaoxing1221 发表于 2008-6-4 23:56

用非线性优化函数求最优解的疑问

使用的函数为:
function f=mathsin02(a)
syms S1 S2 n;
n=1;fs=1;t=0:0.00001:1;
S1=sin(2*pi*n*fs*(1-a+a*fs*t).*t);
S2=sin(2*pi*n*fs*(1+a-a*fs*t).*t);
f=abs(sum(S1.*S2));

主窗口中调用:
=fminbnd(@mathsin02,-1,1)
得到的结果为:
a =
   -0.7313
fval =
    1.2866

但是我试出来当a=0.72013时,
用如下程序:
clear all;
fs=1;n1=1;n2=1;
t=0:0.00001:1;a=0.72013; %0.72013
S1=sin(2*pi*n1*fs*(1-a+a*fs*t).*t);
S2=sin(2*pi*n2*fs*(1+a-a*fs*t).*t);
f=abs(sum(S1.*S2))
运行出来的结果
f =
1.0008e+003

要求计算的是使f(或fval)值最小时的a。凑出来的a值计算出来的f远小于优化函数求出的解。
另外我发现t的取值精度不同时,求出的f或fval也不同。
比较困惑。。
我应该以什么为标准来求S1、S2正交时的a值呢?

sigma665 发表于 2008-6-5 09:31

fval =
    1.2866
f =
1.0008e+003
这2个谁大谁小?
凑出来的a值计算出来的f远小于优化函数求出的解,这句话什么意思

zhaoxing1221 发表于 2008-6-5 09:52

抱歉

知道是哪里出错了,谢谢关注。。
页: [1]
查看完整版本: 用非线性优化函数求最优解的疑问