用非线性优化函数求最优解的疑问
使用的函数为: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值呢? fval =
1.2866
f =
1.0008e+003
这2个谁大谁小?
凑出来的a值计算出来的f远小于优化函数求出的解,这句话什么意思
抱歉
知道是哪里出错了,谢谢关注。。
页:
[1]