声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 921|回复: 2

[综合讨论] 用非线性优化函数求最优解的疑问

[复制链接]
发表于 2008-6-4 23:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
使用的函数为:
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));

  主窗口中调用:
[a,fval]=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值呢?
回复
分享到:

使用道具 举报

发表于 2008-6-5 09:31 | 显示全部楼层
fval =
    1.2866
f =
  1.0008e+003
这2个谁大谁小?
凑出来的a值计算出来的f远小于优化函数求出的解,这句话什么意思
 楼主| 发表于 2008-6-5 09:52 | 显示全部楼层

抱歉

知道是哪里出错了,谢谢关注。。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-23 07:24 , Processed in 0.051158 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表