Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-04-20, 17:06   #1
阿童木
初级会员
 
注册日期: 2009-04-02
年龄: 39
帖子: 6
声望力: 0
阿童木 正向着好的方向发展
默认 关于优化函数程序错误的问题

大家好,我正在做一个关于优化函数的问题,下面是我的程序,其中k,c,omega是变量,整个函数就是要在不同的k,c,omega取值时使IGv达到最小,兄弟姐妹们看看我的程序有没有什么问题啊,我都调试两天了,还是不得行,各们帮帮忙噢!(本人还是新手,边做毕业设计边学的MATLAB,各位不要见笑哈)
%%IGvmin is global minimum
IGvmin=1000000000000000;
%%exmperimantal values
M=1000000;
for c=0:1:100000;
for omiga=0:1:100;
for k=100000:100:100000000;
%%igvlmax is local maximum;
IGvlmax=0;
%%IGv’s calculational equation
IGv=sqrt(16*c.^4*omiga.^4+16*k.^4+4*M.^2*k.^2*omiga.^4+32*c.^2*omiga.^2*k.^2-16*M*k.^3*omiga.^2+4*M.^2*c.^2*omiga.^6)/((-M*omiga.^2+2*k).^2+4*c.^2*omiga.^2);
if IGvmin>=IGvlmax;
IGvlmax=IGvmin;
end;
end
if IGvlmax<=IGvmin;
IGvmin=IGvlmax;
Kmin=k; cmin=c;
end
end

if IGvlmin>=IGvmax
k=kmin
c=Cmin
for omiga=0:1:100;
IGv(i)=sqrt(16*c.^4*omiga.^4+16*k.^4+4*M.^2*k.^2*omiga.^4+32*c.^2*omiga.^2*k.^2-16*M*k.^3*omiga.^2+4*M.^2*c.^2*omiga.^6)/((-M*omiga.^2+2*k).^2+4*c.^2*omiga.^2);
End;
for i=0:1:100;
plot(i,IGv(i))
阿童木 当前离线   回复时引用此帖
旧 2009-04-21, 16:20   #2
laosam280
高级会员
 
注册日期: 2008-11-07
住址: 湖南长沙
帖子: 233
声望力: 21
laosam280 正向着好的方向发展
默认 回复: 关于优化函数程序错误的问题

这样就可以了,其实程序没有什么大问题,就是少了几个end和多了几处分号

%%IGvmin is global minimum
IGvmin=1000000000000000;
%%exmperimantal values
M=1000000;
for c=0:1:100000
for omiga=0:1:100
for k=100000:100:100000000
%%igvlmax is local maximum;
IGvlmax=0;
%%IGv’s calculational equation
IGv=sqrt(16*c.^4*omiga.^4+16*k.^4+4*M.^2*k.^2*omiga.^4+32*c.^2*omiga.^2*k.^2-16*M*k.^3*omiga.^2+4*M.^2*c.^2*omiga.^6)/((-M*omiga.^2+2*k).^2+4*c.^2*omiga.^2);
if IGvmin>=IGvlmax
IGvlmax=IGvmin;
end
end
if IGvlmax<=IGvmin
IGvmin=IGvlmax;
Kmin=k; cmin=c;
end
end
end

if IGvlmin>=IGvmax
k=kmin
c=Cmin
end
for omiga=0:1:100
IGv(i)=sqrt(16*c.^4*omiga.^4+16*k.^4+4*M.^2*k.^2*omiga.^4+32*c.^2*omiga.^2*k.^2-16*M*k.^3*omiga.^2+4*M.^2*c.^2*omiga.^6)/((-M*omiga.^2+2*k).^2+4*c.^2*omiga.^2);
end
for i=0:1:100
plot(i,IGv(i))
hold on;
end
__________________
坚持就是胜利,努力就有奇迹。
laosam280 当前离线   回复时引用此帖
旧 2009-04-21, 20:14   #3
阿童木
初级会员
 
注册日期: 2009-04-02
年龄: 39
帖子: 6
声望力: 0
阿童木 正向着好的方向发展
默认 回复: 关于优化函数程序错误的问题

楼上的好人哪```万分感谢!```GOD BLESS YOU!
阿童木 当前离线   回复时引用此帖
旧 2009-04-22, 09:55   #4
阿童木
初级会员
 
注册日期: 2009-04-02
年龄: 39
帖子: 6
声望力: 0
阿童木 正向着好的方向发展
默认 回复: 关于优化函数程序错误的问题

昨晚我运行了一下程序,IGv表达式的那一行出现divide by zero的警告,这是什么意思啊?
阿童木 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 05:57


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.