请问怎么不使用matlab的遗传算法工具箱用matlab遗传算法求极值?

来源:百度知道 编辑:UC知道 时间:2024/05/17 01:24:02
求函数f(x)=abs(4*sin(x))*(exp(-0.1*x))的最大值
继续源码,谢谢!!
不好意思忘了写上了,x>=0
多谢大侠这么热心,但是我要这个程序并不只是简单的要求函数最大值,最后要用在卫星天线付形的程序中,所以一定得要遗传算法的

【1】先看看图形。

subplot(2,1,1)
ezplot('abs(4*sin(x))*(exp(-0.1*x))')
subplot(2,1,2)
ezplot('abs(4*sin(x))*(exp(-0.1*x))',[-4*pi 2*pi])

图形见:
http://hi.baidu.com/chemical%5Fengineering/album/item/0289d0165bb4ed1c962b43e7.html

【2】用fminbnd函数最简单,遗传算法俺不会啊
fun=inline('-abs(4*sin(x))*(exp(-0.1*x))')%最大值的负数就是最小值
x = fminbnd(fun,0,2*pi) %求最小值
maxval=-subs(fun) %最小值的负数就是最大值

运行结果:
fun =
Inline function:
fun(x) = -abs(4*sin(x))*(exp(-0.1*x))
x = 1.4711
maxval = 3.4357

【3】这个是遗传算法,您试试。
http://zhidao.baidu.com/question/8207100.html?fr=qrl3

.

.