遗传算法函数y=cosx
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/17 13:59:25
如果变量取值为自然数,即不是连续取值,8位二进制够了,其实7位就行了.如果变量不是取自然数,而是连续取值,8位二进制就少了,量化误差太大.还有,变异概率貌似太大了点.
/*Thisisasimplegeneticalgorithmimplementationwherethe\x05\x05*//*evaluationfunctiontakespositivevalu
X1X2要先转成二进制编码,然后取随机数,从X1X2中,按这个随机数指定的位置开始交换数据,然后转回十进制.染色体还需要拆开吗?求最大值:len=length(fit);max=fit(1);posi
如果你的函数是求maxf(x)的问题,要编程求最小值问题,那么你需要对这个函数取负值求最小值即可举例来说:求max(z)=ax+bx^2等同于求min(z)=-(ax+bx^2)-----------
下载个GAOToolbox工具箱,很简单就实现了
y=cosx(cosx+sinx)=cos²x+sinxcosx=(cos2x+1)/2+1/2·sin2x=1/2·(sin2x+cos2x)+1/2=1/2·√2(√2/2·sin2x+
cosx=0,y=0cosx≠0上下除cosxy=1/(2+1/cosx)-1
在第一、四象限余弦为正,一、三象限正切为正(x不为π/2的奇数倍)于是在第一象限y=2,第二象限y=-2,第三、四象限y=0故值域为{-2,0,2}
只需sinx-cosx≠0,即tanx≠1,定义域是{x|x≠kπ+π/4},其中k是整数.补充:sinx-cosx=√2[sinxcos(π/4)-cosxsin(π/4)]=√2sin(x-π/4
再答:采纳一下好吗?谢谢
如果没有其他约束条件,直接用ga求>> fi=inline('-2.113-0.1326*x(1)+10.49*x(2)+0.1505*x(1)^2-2.924*x(1)
//voidmain(void){\x05int\x05i;\x05if((galog=fopen("galog.txt","w"))==NULL)\x05{\x05\x05exit(1);\x05}
解题思路:本题主要是分x为四个象限角进行讨论,去绝对值符号是关键解题过程:
matlab的可以吗?C语言的代码我也有,楼主留下联系方式.再问:最好是C的吧,能通过就给分。wwlovemyself@foxmail.com再答:已经发送,请查收。
正常情况下,求最大值的,适应度要转化为越小越好,其中有一个方法就是在目标函数前加个负号.或者用1除.
为什么要用遗传算法呢?用常规方法就可以解决.不过在matlab中用GA也简单.你看看GATool的帮助文档,下个user'sguide就可以了,上面有例子
实数编码?帮你顶了,没用过,二进制,格雷码还用过.
我有fortran的代码,需要吗?再问:要呀再答:明天下午给你发。再问:谢谢,metlab的有吗
哈哈哈,搞笑,一楼的回答原封不动地Copy了我之前在另外一个问题的答案,详细见参考资料:M越大F就越大那是正常的,因为是对不满足约束的惩罚.如果你的个体都是可行解,那么F就等于f了.对了,你是不是在遗
两个都对!y=-cosx=cos(π-x),π-x∈(0,π)所以,π-x=arccosy,即x=π-arccosy所以,反函数是y=π-arccosx因为arcsinx+arccosx=π/2,所以