遗传算法求函数极小值最小值 最小值怎么算

用遗传算法求解函数 f(x)=x*sin(10*pi*x)+1.0 的最大值,其中x在[-1,2]范_理工学科 - QQ志乐园
您的当前位置: &
用遗传算法求解函数 f(x)=x*sin(10*pi*x)+1.0 的最大值,其中x在[-1,2]范围。将求解的程序上传。
来源: |人气:152 ℃|时间: 22:54:07
为了解决用户可能碰到关于"用遗传算法求解函数 f(x)=x*sin(10*pi*x)+1.0 的最大值,其中x在[-1,2]范围。将求解的程序上传。"相关的问题,志乐园经过收集整理为用户提供相关的解决办法,请注意,解决办法仅供参考,不代表本网同意其意见,如有任何问题请与本网联系。"用遗传算法求解函数 f(x)=x*sin(10*pi*x)+1.0 的最大值,其中x在[-1,2]范围。将求解的程序上传。"相关的详细问题如下:
属于*人工智能*范畴,快速求答案。谢谢各位大神了。&p&C语言代码可以的吧?还是matlab代码?两个我都有,不过前者求解的函数是y = -x的平方+ 5,后者的函数是f=x+10*sin(5*x)+7*cos(4*x),建议你修改下代码&/p&网友回答
||||点击排行扫二维码下载作业帮
2亿+学生的选择
下载作业帮安装包
扫二维码下载作业帮
2亿+学生的选择
matlab遗传算法求函数最小值问题!我要用我的目标函数去替换 代码2.txt 中的目标函数,该修改代码2中的哪些地方,或者是帮我修改好发给我,我的目标函数在这里!
扫二维码下载作业帮
2亿+学生的选择
如果你的函数是求maxf(x)的问题,要编程求最小值问题,那么你需要对这个函数取负值求最小值即可举例来说:求max(z)=ax+bx^2等同于求min(z)=-(ax+bx^2)-----------------------------------------我这里有一个使用matlab遗传算法工具箱的案例,你可以用来快速求解,如果你想自己编程实现遗传算法,可以加我QQ:核心函数: (1)function [pop]=initializega(num,bounds,eevalFN,eevalOps,options)--初始种群的生成函数 【输出参数】
pop--生成的初始种群 【输入参数】
num--种群中的个体数目
bounds--代表变量的上下界的矩阵
eevalFN--适应度函数
eevalOps--传递给适应度函数的参数
options--选择编码形式(浮点编码或是二进制编码)[precision F_or_B],如
precision--变量进行二进制编码时指定的精度
F_or_B--为1时选择浮点编码,否则为二进制编码,由precision指定精度) (2)function [x,endPop,bPop,traceInfo] = ga(bounds,evalFN,evalOps,startPop,opts,...
termFN,termOps,selectFN,selectOps,xOverFNs,xOverOps,mutFNs,mutOps)--遗传算法函数 【输出参数】
x--求得的最优解
endPop--最终得到的种群
bPop--最优种群的一个搜索轨迹 【输入参数】
bounds--代表变量上下界的矩阵
evalFN--适应度函数
evalOps--传递给适应度函数的参数
startPop-初始种群
opts[epsilon prob_ops display]--opts(1:2)等同于initializega的options参数,第三个参数控制是否输出,一般为0.如[1e-6 1 0]
termFN--终止函数的名称,如['maxGenTerm']
termOps--传递个终止函数的参数,如[100]
selectFN--选择函数的名称,如['normGeomSelect']
selectOps--传递个选择函数的参数,如[0.08]
xOverFNs--交叉函数名称表,以空格分开,如['arithXover heuristicXover simpleXover']
xOverOps--传递给交叉函数的参数表,如[2 0;2 3;2 0]
mutFNs--变异函数表,如['boundaryMutation multiNonUnifMutation nonUnifMutation unifMutation']
mutOps--传递给交叉函数的参数表,如[4 0 0;6 100 3;4 100 3;4 0 0] 注意】matlab工具箱函数必须放在工作目录下 【问题】求f(x)=x+10*sin(5x)+7*cos(4x)的最大值,其中0
取负的不就变成负的了么我要的最小值是正值
呵呵,太外行了吧,求出这个最小负值,在程序最后再加个负号不就你最后要求的最大值么?负数的最小求反就是正数的最大。
算了,我还是给你举个例子吧,今天正好有时间..
%matlab程序是求最小值,如何把求最大值问题变成求最小值问题
x=0:0.1:8;
y=-2*exp(-x).*sin(x);
y1=2*exp(-x).*sin(x);
%这里把原函数取反
plotyy(x,y,x,y1)
%通过以上程序你可以看到函数取反的效果了么,好,现在函数取反之后,再用以下程序求最小值。
f='-2*exp(-x)*sin(x)';
f1='2*exp(-x)*sin(x)';
[xmin,ymin]=fminbnd(f,0,8)
%求解得到xmin =0.7854
ymin =-0.6448
%现在需要做的就是把ymin取反就是问题中要求的最大值
ymax=-ymin
%即问题所求的ymax=0.6648,且此时xmax=0.7854
为您推荐:
其他类似问题
扫描下载二维码扫二维码下载作业帮
2亿+学生的选择
下载作业帮安装包
扫二维码下载作业帮
2亿+学生的选择
请大神解决一道,Matlab遗传算法题.求函数的最小值.
扫二维码下载作业帮
2亿+学生的选择
秋日干枯的落叶在你的灵魂中旋舞.织一季浓烈的色彩.卸的又穿你用木棍画着宫殿,碰在碎石块上,被拖在马后面.总你的感受春天的脚步是如此轻盈和浪漫.
为您推荐:
其他类似问题
扫描下载二维码TOP热门关键词
专题页面精选
MATLAB2009a命令流:ST=[5.224..7..8..5..1...626..4..0075 ...
MATLAB2009a命令流:
ST=[5.224..00412.31
5.807..00376.83
0.818..00830.06
5.855..00975.70
0.626..00745.65
1.784..00751.00
3.507.476.43.51
6.187..00935.95
1.015..00591.61
6.132..00849.12
5.124.886..56
0.918..00777.82
2.708.078.24.50
5.867.1300.00
5.072.532..55
6.147..00822.19
4.202..00937.55
0.237..00550.45
5.441.826.87.93
5.986..00170.00
4.357..00245.76 ];
for m = 1:25
STAR(m,1:5)=ST(m,1:5);
%%对25组数据进行RBF拟合
p1=STAR(:,1:4);%训练样本的输入单元
t1=STAR(:,5);%训练样本的输出单元
P=p1';T=t1';%转置
[p,pp] = mapminmax(P);%数据归一化
[t,tt] = mapminmax(T);%数据归一化
goal=1e-5;
net=newrb(p,t,goal,spread,mn,df);
%%%%%%%%%%%%%%%%%遗传算法
fit = @(x) sim(net,x);
options = gaoptimset('Generations',100,'PopulationSize',20,...
'CrossoverFraction', 0.8, 'ParetoFraction', 0.5);
[x fval] = ga(fit,4, [], [], [], [], [-1;-1;-1;-1], [1;1;1;1]);
在最后遗传算法时总是说:
??? Error using ==& network.sim at 178
Inputs are incorrectly sized for network.
Matrix must have 4 rows.
以及一大堆错误了
求大侠们帮帮忙
「就学高端版」APP:随身顾问,立即就学!
期刊投稿----核心期刊编辑帮您了解投稿、审稿规则,提高投稿命中率!
考研咨询----国内经管名校研究生,为您解答疑惑、分享经验!
高考择校----高校老师为您介绍学校、专业情况,助您成功选择理想大学!
扫描下方二维码下载并注册APP
本文关键词: 本文论坛网址:
您可能感兴趣的文章
本站推荐的文章
本文标题:
本文链接网址:
1.凡人大经济论坛-经管之家转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。您还可以使用以下方式登录
当前位置:&>&&>& > 最小值怎么算?
遗传算法求函数最小值 最小值怎么算?
相关解答一:怎么算二元一次方程的最小值 这要看它的a值,若a小于0,有最大值;若a大于0,有最小值。求最值可用公式:-b/2a,4ac-b&#178;/4a也就是负的2a分之b,4a分之4ac减b的平方! 用这个公式就能算了!相关解答二:如何计算函数的最大值和最小值? 分析:f(x)为关于x的函数,确定定义域后,应该可以求f(x)的值域,值域区间内,就是函数的最大值和最小值。一般而言,可以把函数化简,化简成为f(x)=k(ax+b)?+c 的形式,在x的定义域内取值。当k>0时,k(ax+b)?≥0,f(x)有极小值c当k<0时,k(ax+b)?≤0,f(x)有最大值c相关解答三:这个求函数最大值最小值的怎么算? 思路给你说一下。自己求解吧:把2的x次方设为t。上面的函数就可以转换成y=f(t)的形式。t的范围是【1,4】。那么f(t)就是一个二次函数在给定区间上的最值问题。分类讨论a,使得这个区间全部落在对称轴的左面,右面和中间。根据分类求出在区间上的最大最小值。相关解答四:遗传算法求最小值时为什么每次结果都不一样,而且差别很大。那这么找到最小值呢? 这说明遗传算法本身不收敛,还存在较大的优化空间。建议对种群初始化方法、交叉变异方法、种群更新算子等做优化,增加最优保存策略,保证能收敛到最优解。相关解答五:MATLAB 曲线拟合找最小值的误差怎么算? X=0.05:0.05:0.90;Y=[1.47 1.56 1.87 1.43 0.756 0.951 0.374 0.904 0.076 0.352 0.969 0.824 0.137 0.103 0.881 0.097 1.83 0.367];cftool(X,Y)syms xp1 =2.411p2 =-2.568p3 =1.417f = p1*x^2 + p2*x + p3Y_=subs(f,X) %拟合值wucha=Y_-Y %误差相关解答六:数学函数区间的最小值与最大值怎么算 你好函数的最大值和最小值:在闭区间[a,b]上连续的函数f(x)在[a,b]上必有最大值与最小值,分别对应该区间上的函数值的最大值和最小值。利用导数求函数的最值步骤:(1)求f(x)在(a,b)内的极值;(2)将f(x)的各极值与f(a)、f(b)比较得出函数f(x)在[a,b]上的最值。用导数的方法求最值特别提醒:①求函数的最大值和最小值需先确定函数的极大值和极小值,因此,函数极大值和极小值的判别是关键,极值与最值的关系:极大(小)值不一定是最大(小)值,最大(小)值也不一定是极大(小)值;②如果仅仅是求最值,还可将上面的办法化简,因为函数fx在[a,b]内的全部极值,只能在f(x)的导数为零的点或导数不存在的点取得(下称这两种点为可疑点),所以只需要将这些可疑点求出来,然后算出f(x)在可疑点处的函数值,与区间端点处的函数值进行比较,就能求得最大值和最小值;③当f(x)为连续函数且在[a,b]上单调时,其最大值、最小值在端点处取得。相关解答七:如何计算三角函数的最大最小值 利用三角函数公式,将函数式化为Asin(bX+d)的形式这种情况下最大值为A,最小值为-A.看懂了吗?cos也是一样的相关解答八:遗精多少天一次算正常.请给个最大和最小值? 遗精没有规律性。一般来讲,一个月遗精5-6次属于正常现象。如果遗精次数过多,或在有正常性生活的情况下仍有遗精,以及在清醒状态下遗精,均属于不正常现象。不正常遗精常见于遗精者思想过分集中在性问题上,或有手淫的不良习惯。另外,包皮过长、尿道炎、前列腺炎以及身体虚弱,劳累过度都可以引起遗精。相关解答九:计算机原码、反码、补码的最大值和最小值各是什么? 5分在一个字节里的,原码的我已经知道了:最大的是;最小的是。想知道反码和补码最大的和最小的现在我们知道了计算机可以有三种编码方式表示一个数. 对于正数因为三种编码方式的结果都相同:[+1] = []原 = []反 =[]补所以不需要过多解释. 但是对于负数:[-1] = []原 = []反 =[]补可见原码, 反码和补码是完全不同的. 既然原码才是被人脑直接识别并用于计算表示方式, 为何还会有反码和补码呢?首先, 因为人脑可以知道第一位是符号位, 在计算的时候我们会根据符号位, 选择对真值区域的加减. (真值的概念在本文最开头). 但是对于计算机,加减乘数已经是最基础的运算, 要设计的尽量简单. 计算机辨别"符号位"显然会让计算机的基础电路设计变得十分复杂! 于是人们想出了将符号位也参与运算的方法.我们知道, 根据运算法则减去一个正数等于加上一个负数, 即: 1-1 = 1 + (-1) = 0 , 所以机器可以只有加法而没有减法,这样计算机运算的设计就更简单了.于是人们开始探索 将符号位参与运算, 并且只保留加法的方法. 首先来看原码:计算十进制的表达式: 1-1=01 - 1 = 1 + (-1) = []原 + []原 =[]原 = -2如果用原码表示, 让符号位也参与计算, 显然对于减法来说, 结果是不正确的.这也就是为何计算机内部不使用原码表示一个数.为了解决原码做减法的问题, 出现了反码:计算十进制的表达式: 1-1=01 - 1 = 1 + (-1) = []原 + []原= [00000001]反 + []反 = []反 = [10000000]原 = -0发现用反码计算减法, 结果的真值部分是正确的. 而唯一的问题其实就出现在"0"这个特殊的数值上. 虽然人们理解上+0和-0是一样的,但是0带符号是没有任何意义的. 而且会有[]原和[]原两个编码表示0.于是补码的出现, 解决了0的符号以及两个编码的问题:1-1 = 1 + (-1) = []原 + []原 = [00000001]补 + []补 = []补=[00000000]原这样0用[]表示, 而以前出现问题的-0则不存在了.而且可以用[]表示-128:(-1) + (-127) = []原 + []原 = [11111111]补 + []补 = [10000000]补-1-127的结果应该是-128, 在用补码运算的结果中, []补 就是-128.但是注意因为实际上是使用以前的-0的补码来表示-128, 所以-128并没有原码和反码表示.(对-128的补码表示[10000000]补算出来的原码是[]原, 这是不正确的)使用补码, 不仅仅修复了0的符号以及存在两个编码的问题, 而且还能够多表示一个最低......余下全文>>相关解答十:在EXCEL中,如何使用最大值和最小值函数进行运算 最小函数:min(所选择的区域), 比如min(A1:A15)最大函数:max(所选择的区域),比如ma梗(A1:A15)百度搜索“就爱阅读”,专业资料,生活学习,尽在就爱阅读网,您的在线图书馆
欢迎转载:
推荐:    }

我要回帖

更多关于 遗传算法求函数最大值 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信