MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [MATLAB毕业设计] 关于优化函数程序错误的问题 (https://www.labfans.com/bbs/showthread.php?t=7810)

阿童木 2009-04-20 17:06

关于优化函数程序错误的问题
 
大家好,我正在做一个关于优化函数的问题,下面是我的程序,其中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))

laosam280 2009-04-21 16:20

回复: 关于优化函数程序错误的问题
 
这样就可以了,其实程序没有什么大问题,就是少了几个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

阿童木 2009-04-21 20:14

回复: 关于优化函数程序错误的问题
 
楼上的好人哪```万分感谢!```GOD BLESS YOU!

阿童木 2009-04-22 09:55

回复: 关于优化函数程序错误的问题
 
昨晚我运行了一下程序,IGv表达式的那一行出现divide by zero的警告,这是什么意思啊?


所有时间均为北京时间。现在的时间是 10:22

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