Matlab中的均匀设计与优化实验方法介绍

合集下载

MATLAB实验遗传算法与优化设计(可编辑)

MATLAB实验遗传算法与优化设计(可编辑)

MATLAB实验遗传算法与优化设计遗传算法与优化设计一实验目的1 了解遗传算法的基本原理和基本操作选择交叉变异2 学习使用Matlab中的遗传算法工具箱 gatool 来解决优化设计问题二实验原理及遗传算法工具箱介绍1 一个优化设计例子图1所示是用于传输微波信号的微带线电极的横截面结构示意图上下两根黑条分别代表上电极和下电极一般下电极接地上电极接输入信号电极之间是介质如空气陶瓷等微带电极的结构参数如图所示Wt分别是上电极的宽度和厚度D是上下电极间距当微波信号在微带线中传输时由于趋肤效应微带线中的电流集中在电极的表面会产生较大的欧姆损耗根据微带传输线理论高频工作状态下假定信号频率1GHz电极的欧姆损耗可以写成简单起见不考虑电极厚度造成电极宽度的增加图1 微带线横截面结构以及场分布示意图1其中为金属的表面电阻率为电阻率可见电极的结构参数影响着电极损耗通过合理设计这些参数可以使电极的欧姆损耗做到最小这就是所谓的最优化问题或者称为规划设计问题此处设计变量有3个WDt它们组成决策向量[W D t] T待优化函数称为目标函数上述优化设计问题可以抽象为数学描述2其中是决策向量x1xn为n个设计变量这是一个单目标的数学规划问题在一组针对决策变量的约束条件下使目标函数最小化有时也可能是最大化此时在目标函数前添个负号即可满足约束条件的解X 称为可行解所有满足条件的X组成问题的可行解空间2 遗传算法基本原理和基本操作遗传算法 Genetic Algorithm GA 是一种非常实用高效鲁棒性强的优化技术广泛应用于工程技术的各个领域如函数优化机器学习图像处理生产调度等遗传算法是模拟生物在自然环境中的遗传和进化过程而形成的一种自适应全局优化算法按照达尔文的进化论生物在进化过程中物竞天择对自然环境适应度高的物种被保留下来适应度差的物种而被淘汰物种通过遗传将这些好的性状复制给下一代同时也通过种间的交配交叉和变异不断产生新的物种以适应环境的变化从总体水平上看生物在进化过程中子代总要比其父代优良因此生物的进化过程其实就是一个不断产生优良物种的过程这和优化设计问题具有惊人的相似性从而使得生物的遗传和进化能够被用于实际的优化设计问题按照生物学知识遗传信息基因Gene 的载体是染色体Chromosome 染色体中一定数量的基因按照一定的规律排列即编码遗传基因在染色体中的排列位置称为基因座Locus在同一个基因座上所有可能的基因就称为等位基因Allele生物所持有的基因以及基因的构成形式称为生物的基因型Genotype而该生物在环境中所呈现的相应性状称为该生物的表现型Phenotype在遗传过程中染色体上的基因能够直接复制给子代从而使得子代具有亲代的特征此外两条染色体之间也通过交叉 Crossover 而重组即两个染色体在某个相同的位置处被截断其前后两串基因交叉组合而形成两个新的染色体在基因复制时也会产生微小的变异Mutation从而也产生了新的染色体因此交叉和变异是产生新物种的主要途径由于自然选择在子代群体新产生的物种或染色体当中只有那些对环境适应度高的才能生存下来即适应度越高的被选择的概率也越大然后又是通过遗传和变异再自然选择一代一代不断进化因此生物遗传和进化的基本过程就是选择即复制交叉和变异遗传算法就是通过模拟生物进化的这几个基本过程而实现的①编码编码是设计遗传算法首要解决的问题在生物进化中选择交叉变异这些基本过程都是基于遗传信息的编码方式进行的即基于染色体的基因型而非表现型因此要模拟生物进化过程遗传算法必须首先对问题的可行解X决策向量进行某种编码以便借鉴生物学中染色体和基因等概念在遗传算法中将每一个决策向量X用一个染色体V来表示3其中每一个vi代表一个基因染色体的长度m不一定等于设计变量的数目n取决于染色体上基因的编码方式一般有两种编码方式二进制编码和浮点数编码如果是二进制编码每一个设计变量xi的真实值用一串二进制符号0和1按照一定的编码规则来表示每个二进制符号就代表一个基因因此染色体长度要远大于设计变量的数目这种由二进制编码构成的排列形式V就是染色体也称个体的基因型而基因型经过解码后所对应的决策向量X即可行解就是个体的表现型如果是浮点数编码每个设计变量用其取值范围内的一个浮点数表示构成染色体的一个基因vi因此个体的编码长度m也就等于决策变量的个数n由于这种编码方式使用的是决策变量的真实值所以也称真值编码方法无论哪种编码方式所有可能的染色体个体V构成问题的搜索空间种群遗传算法对最优解的搜索就是在搜索空间中搜索适应度最高的染色体后面叙述适应度的计算因此通过编码将一个问题的可行解从其解空间转换到了遗传算法能够处理的搜索空间经过个体的编码后就可以进行遗传算法的基本操作选择交叉和变异②选择复制操作选择也就是复制是在群体中选择适应度高的个体产生新群体的过程生物的进化是以集团为主体的与此相应遗传算法的运算对象是有M个个体或染色体组成的集合称为种群M也称为种群规模遗传算法在模拟自然选择时以个体的适应度Fitness高低为选择依据即适应度高的个体被遗传到下一代种群的概率较高而适应度低的个体遗传到下一代的概率则相对较低个体适应度由适应度函数计算适应度函数总是和个体表现型 ie X 的目标函数值f X 关联一般是由目标函数经过一定的变换得到一种最简单的方法就是直接使用目标函数f X 作为适应度函数4选定了适应度函数之后个体适应度也随之确定则在选择操作时个体被选中的概率5其中Fi为个体的适应度这种选择方式称为比例选择也称轮盘赌选择除此之外还有多种选择方法如随机竞争选择均匀选择无回放随机选择等不一一介绍③交叉操作所谓交叉就是以一定的概率交叉概率从群体中选择两个个体染色体按照某种方式交换其部分基因从而形成两个新的个体在遗传算法中它是产生新个体同时也是获得新的优良个体的主要方法它决定了遗传算法的全局搜索能力对于不同的编码方式交叉操作的具体方法也不相同对于浮点数编码一般使用算术交叉对于二进制编码有单点交叉和多点交叉等方式不论何种方式在交叉操作时首先应定义交叉概率Pc这个概率表明种群中参与交叉的个体数目的期望值是M 是种群规模通常交叉概率应取较大的值以便产生较多的新个体增加全局搜索力度但是Pc过大时优良个体被破坏的可能性也越大如果Pc 太小则搜索进程变慢影响算法的运行效率一般建议的取值范围是04–099④变异操作遗传算法中的变异操作就是将染色体上某些基因座上的基因以一定的变异概率Pm用其他的等位基因替代从而形成新的个体对于浮点数编码变异操作就是将变异点处的基因用该基因取值范围内的一个随机数替换对于二进制编码则是将变异点处的基因由1变成00变成1变异操作也有多种方法如均匀变异非均匀变异高斯变异等变异操作的概率Pm要比交叉操作的概率Pc小得多变异只是产生新个体的辅助手段但它是遗传算法必不可少的一个环节因为变异操作决定了算法的局部搜索能力它弥补了交叉操作无法对搜索空间的细节进行局部搜索的不足因此交叉和变异操作相互配合共同完成对搜索空间的全局和局部搜索以上简要介绍了遗传算法的基本原理和操作归纳起来基本遗传算法一般可以表示为一个8元组6式中C 个体的编码方法E 个体适应度评价函数P0 初始种群M 种群规模选择操作交叉操作变异操作是进化终止代数进化终止条件其中有4个运行参数需要预先设定M T PcPm 种群规模M一般取为20100 终止代数T一般取100500交叉概率Pc一般取04099 变异概率Pm一般取0000101最后给出遗传算法的基本步骤①选择二进制编码或浮点数编码把问题的解表示成染色体②随机产生一群染色体个体也就是初始种群③计算每一个个体的适应度值按适者生存的原则从中选择出适应度较大的染色体进行复制再通过交叉变异过程产生更适应环境的新一代染色体群即子代④重复第3步经过这样的一代一代地进化最后就会收敛到最适应环境适应度最大的一个染色体即个体上它就是问题的最优解图2给出了基本遗传算法设计流程图其中t代表当前代数T是进化终止代数图2 基本遗传算法设计流程图3 Matlab遗传算法工具箱 gatoolMatlab的遗传算法工具箱有一个精心设计的图形用户界面可以帮助用户直观方便快速地利用遗传算法求解最优化问题在Matlab命令窗口输入命令gatool可以打开遗传算法工具箱的图形用户界面如图3所示GA工具箱的参数设置步骤如下图3 遗传算法工具1 首先使用遗传算法工具箱必须输入下列信息Fitness function 适应度函数这里指的是待优化的函数也即目标函数该工具箱总是试图寻找目标函数的最小值输入适应度函数的格式为fitnessfun其中符号产生函数fitnessfun的句柄fitnessfun代表用户编写的计算适应度函数目标函数的M文件名该M文件的编写方法如下假定我们要计算Rastrigin函数的最小值7M函数文件确定这个函数必须接受一个长度为2的行向量X也即决策向量向量的长度等于变量数目行向量X的每个元素分别和变量x1和x2对应另外M文件要返回一个标量Z其值等于该函数的值下面是计算Rastrigin函数的M文件代码function Z Ras_fun XZ 20X 1 2X 2 2-10 cos 2piX 1 cos 2piX 2M文件编写保存后再在gatool工具箱界面Fitness function栏输入 Ras_funNumber of variable 变量个数目标函数中的变量数目也即适应度函数输入向量的长度在上例中它的值是22 其次设置遗传算法参数即Options设置以下只介绍部分运行参数的设置其他未提及的参数采用默认设置即可①种群参数 PopulationPopulation size 种群规模每一代中的个体数目一般是20-100之间种群规模大算法搜索更彻底可以增加算法搜索全局最优而非局部最优的概率但是耗时也更长Initial range 初始范围其值是两行的矩阵代表初始种群中个体的搜索范围实际上是决策向量X中每个变量xi的初始搜索范围矩阵的列数等于变量个数Number of variable第一行是每个变量的下限第二行是每个变量的上限如果只输入2 1的矩阵则每个变量的初始搜索范围都一样注意初始范围仅限定初始种群中个体或决策向量的范围后续各代中的个体可以不在初始范围之内初始范围不能设置太小否则造成个体之间的差异过小即种群的多样性降低不利于算法搜索到最优解②复制参数 ReproductionCrossover fraction 交叉概率一般取04099默认08③算法终止准则 Stopping Criteria提供了5种算法终止条件Generations最大的进化代数一般取100500默认是100当遗传算法运行到该参数指定的世代计算终止Time limit指明算法终止执行前的最大时间单位是秒缺省是Inf 无穷大Fitness limit 适应度限当最优适应度值小于或等于此参数值时计算终止缺省是-InfStall generation 停滞代数如果每一代的最佳适应度值在该参数指定的代数没有改善则终止计算缺省是50代Stall time 停滞时间如果每一代的最佳适应度值在该参数指定的时间间隔内没有改善则终止计算缺省是20秒3 设置绘图参数即Plots设置绘图参数Plots工作时可以从遗传算法得到图形数据当选择各种绘图参数并执行遗传算法时一个图形窗口在分离轴上显示这些图形下面介绍其中2个参数Best fitness 选择该绘图参数时将绘制每一代的最佳适应度值和进化世代数之间的关系图如图4的上图所示图中蓝色点代表每一代适应度函数的平均值黑色点代表每一代的最佳值Distance 选择此参数时绘制每一代中个体间的平均距离它反映个体之间的差异程度所以可用来衡量种群的多样性图4的下图显示的即是每一代个体间的平均距离图44 执行算法参数设置好了之后点击工具箱界面上的按钮Star 执行求解器在算法运行的同时Current generation当前代数文本框中显示当前的进化代数通过单击Pause按钮可以使计算暂停之后再点击Resume可以恢复计算当计算完成时Status and results窗格中出现如图5所示的情形图5其中包含下列信息算法终止时适应度函数的最终值即目标函数的最优值Fitness function value 0003909079476983379算法终止原因Optimization terminated imum number of generations exceeded 超出最大进化世代数最终点即目标函数的最优解[x1 x2] [-0004 -000193]两个变量的例子三实验内容1 Rastrigin函数的最小值问题函数表达式如 7 式函数图像如下图6所示它有多个局部极小值但是只有一个全局最小值Rastrigin函数的全局最小值的精确解是0出现在[x1 x2] [0 0]处图6 Rastrigin函数图像使用遗传算法工具箱近似求解Rastrigin函数的最小值首先编写计算适应度函数的M文件然后设置运行参数绘图参数Plots勾选Best fitness和Distance两项其它参数可以使用默认值执行求解器Run solver计算Rastrigin函数的最优值观察种群多样性对优化结果的影响决定遗传算法的一个重要性能是种群的多样性个体之间的距离越大则多样性越高反之则多样性越低多样性过高或过低遗传算法都可能运行不好通过实验调整Population 种群的Initial range 初始范围参数可得到种群适当的多样性取Initial range参数值[1 11]观察Rastrigin函数最小值的计算结果取Initial range参数值[1 100]观察Rastrigin函数最小值的计算结果取Initial range参数值[1 2]观察Rastrigin函数最小值的计算结果2 微带电极欧姆损耗的优化微带电极的欧姆损耗公式可由 1 式表示令设计变量[WDt] [x1 x2 x3] X变量的约束条件如下8根据 1 式和 8 式使用遗产算法工具箱优化设计电极的结构参数W 宽度 D 间距 t 厚度使得电极的欧姆损耗最小 1 式中用到的常数提示对约束条件 8 式的处理可以在编写计算适应度函数的M文件中实现方法是在M文件中引入对每个输入变量值范围的判断语句如果任一变量范围超出 8 式的限制则给该个体的适应度施加一个惩罚使得该个体被遗传到下一代的概率减小甚至为0一般可用下式对个体适应度进行调整9其中F x 是原适应度F x 是调整后的适应度P x 是罚函数为简单计本问题中我们可以给个体的适应度 com件的返回值Z 加上一个很大的数即可如正无穷Inf四思考题1 在遗传算法当中个体的变异对结果有何影响如果没有变异结果又将如何试以Rastrigin函数最小值的计算为例说明取变异概率为0即交叉概率Crossover fraction 102 遗传算法工具箱针对的是最小化函数值问题如果要利用该工具箱计算函数的最大值该如何实现。

MATLAB实验指导书(附答案)

MATLAB实验指导书(附答案)

MATLAB基础实验指导书漳州师范学院物电系2010年10月目录实验一MATLAB环境的熟悉与基本运算 (2)实验二MATLAB数值运算 (8)实验三MATLAB语言的程序设计 (12)实验四MATLAB的图形绘制 (16)实验五采用SIMULINK的系统仿真 (20)实验六MATLAB在电路中的应用 (25)实验七MATLAB在信号与系统中的应用 (27)实验八MATLAB在控制理论中的应用 (29)实验一 MATLAB环境的熟悉与基本运算一、实验目的:1.熟悉MATLAB开发环境2.掌握矩阵、变量、表达式的各种基本运算二、实验基本知识:1.熟悉MATLAB环境:MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器文件和搜索路径浏览器。

2.掌握MATLAB常用命令3.MATLAB变量与运算符变量命名规则如下:(1)变量名可以由英语字母、数字和下划线组成(2)变量名应以英文字母开头(3)长度不大于31个(4)区分大小写MATLAB中设置了一些特殊的变量与常量,列于下表。

MATLAB运算符,通过下面几个表来说明MATLAB的各种常用运算符表2 MATLAB算术运算符表3 MATLAB关系运算符表4 MATLAB逻辑运算符表5 MATLAB特殊运算4.MATLAB的一维、二维数组的寻访表6 子数组访问与赋值常用的相关指令格式5.MATLAB的基本运算表7 两种运算指令形式和实质内涵的异同表6.MATLAB的常用函数表8 标准数组生成函数表9 数组操作函数三、实验内容1、学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明,学习使用指令eye(其它不会用的指令,依照此方法类推)2、学习使用clc、clear,观察command window、command history和workspace等窗口的变化结果。

3、初步程序的编写练习,新建M-file,保存(自己设定文件名,例如exerc1、exerc2、exerc3……),学习使用MATLAB的基本运算符、数组寻访指令、标准数组生成函数和数组操作函数。

matlab实验内容

matlab实验内容

2017年-matlab实验内容2017年文化素质课 MATLAB实验实验一、MATLAB基本操与运算基础【实验目的】(1)熟悉MATLAB基本环境,掌握MATLAB变量的使用(2)掌握MATLAB数组的创建(3)掌握MATLAB数组和矩阵的运算【实验内容及步骤】熟悉建立数组的方法:逐个元素输入法、冒号法、特殊方法(使用函数linspace建立)1、有关向量、矩阵或数组的一些运算(1)设A=15;B=20;求C=A+B与c=a+b?(2)设A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B与A.*B?(3)设a=10,b=20;求i=a/b=?与j=a\b= ?(4)设a=[1 -2 3;4 5 -4;5 -6 7](5)在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何?如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何?(6)请写出完成下列计算的指令:a=[1 2 3;3 4 2;5 2 3],求a^2=?,a.^2=?(7)有一段指令如下,请思考并说明运行结果及其原因clearX=[1 2;8 9;3 6];X( : ) %转化为列向量(8)写出下列指令的运行结果>> A = [ 1 2 3 ]; B = [ 4 5 6 ];>> C = 3.^A>> D = A.^B2、设有矩阵A和B,A=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 2223 24 25],B=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11]1)求它们的乘积C2)将矩阵C的右下角3x2子矩阵赋给D3、完成下列操作1)求[100,999]之间能被61整除的数及其个数(提示:先利用冒号表达式,再利用find和length 函数。

Matlab实验报告

Matlab实验报告

实 验 内 容
<设计性实验> 1、对于连续信号 x(t)=1+cos(2πft),其中 f=5kHz,分别以采样频率 fs=6 kHz 和 fs=12kHz 对其 进行采样, (1)分别绘出对应的采样信号。 (2)对信号进行傅里叶变换,绘出对应的曲线。 (3)在 simulink 仿真环境下,设计系统框图,观察信号的频谱成分。 实验源程序: (1)采样 clear all; fs1=6000;fs2=12000;f=5000; dt1=1/fs1;dt2=1/fs2; t=0:0.00001:0.0005;t1=0:dt1:0.005;t2=0:dt2:0.0025; x_t=1+cos(2*pi*f*t); x_t1=1+cos(2*pi*f*t1); x_t2=1+cos(2*pi*f*t2); figure(1) subplot(3,1,1) plot(t,x_t); title('原始信号') subplot(3,1,2) plot(t1,x_t1); title('采样频率 6kHZ 的采样信号') subplot(3,1,3) plot(t2,x_t2); title('采样频率 12kHZ 的采样信号') xlabel('时间/s')
3、lpf 函数 function [t,st]=lpf(f,sf,B); df = f (2) - f (1); T = 1/df; hf = zeros(1,length(f)); bf = [ -floor(B/df):floor(B/df)] + floor(length(f)/2); hf(bf) = 1; yf = hf.*sf; [t,st]=F2T(f,yf); st = real(st);

实验二MATLAB程序设计含实验报告

实验二MATLAB程序设计含实验报告

实验二 MATLAB 程序设计一、 实验目的1.掌握利用if 语句实现选择结构的方法。

2.掌握利用switch 语句实现多分支选择结构的方法。

3.掌握利用for 语句实现循环结构的方法。

4.掌握利用while 语句实现循环结构的方法。

5.掌握MATLAB 函数的编写及调试方法。

二、 实验的设备及条件计算机一台(带有MATLAB7.0以上的软件环境)。

M 文件的编写:启动MATLAB 后,点击File|New|M-File ,启动MATLAB 的程序编辑及调试器(Editor/Debugger ),编辑以下程序,点击File|Save 保存程序,注意文件名最好用英文字符。

点击Debug|Run 运行程序,在命令窗口查看运行结果,程序如有错误则改正三、 实验内容1.编写求解方程02=++c bx ax 的根的函数(这个方程不一定为一元二次方程,因c b a 、、的不同取值而定),这里应根据c b a 、、的不同取值分别处理,有输入参数提示,当0~,0,0===c b a 时应提示“为恒不等式!”。

并输入几组典型值加以检验。

(提示:提示输入使用input 函数)2.输入一个百分制成绩,要求输出成绩等级A+、A 、B 、C 、D 、E 。

其中100分为A+,90分~99分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。

要求:(1)用switch 语句实现。

(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。

(提示:注意单元矩阵的用法)3.数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。

重复此过程,最终得到的结果为1。

如:2?13?10?5?16?8?4?2?16?3?10?5?16?8?4?2?1运行下面的程序,按程序提示输入n=1,2,3,5,7等数来验证这一结论。

请为关键的Matlab 语句填写上相关注释,说明其含义或功能。

MATLAB实验指导书全文(简化)

MATLAB实验指导书全文(简化)

江苏科技大学《MATLAB实践》实验指导书吴陈计算机科学与工程学院2015.3.15目录实验一 MATLAB的基本使用方法 (1)实验二 MATLAB的数值计算 (2)实验三 MATLAB的符号计算 (4)实验四 MATLAB的程序设计 (5)实验五 MATLAB 计算结果的可视化 (7)附:基础知识 (12)实验一 MATLAB的基本使用方法实验目的和要求:通过完成实验一,掌握MATLAB的基本使用方法。

实验内容:(一)练习数据和符号输入法,将前面的命令在命令窗口中执行通过。

1)>>52)>>x=[1 2 3 4]3)>>g=[1 2 3 4];h=[4 3 2 1]>>s1=g+h, s2=g.*h, s3=g.^hS1=5 5 5 5S2=4 6 6 4S3=1 8 9 4(二)输入A=[715;256;315],B=[111;222;333],在命令窗口中执行下列表达式,掌握其含义。

源程序:>>A=[7 1 5;2 5 6;3 1 5];B=[1 1 1;2 2 2;3 3 3];>>A(2,3)>>A(:,2)>>A(:,1:2:3) % A数组中第一列和第三列>>A(3,:) %A数组中第三行>>A(:,3).*B(:,2) %A中第三列和B中第二列相乘>> A(:,3)*B(2,:) %A中第三列和B中第二行相乘竖着排,形成3*3矩阵>>A*B %A 与B数组相乘>>A.*B>>A^2>>A.^2 % A中所有数平方>>B/A %B矩阵除以A矩阵>>B./A % B中数除以A中对应位置数(三) 输入C=.1:2:20,则C(i)表示什么?其中i=1,2,3…10;源程序:>>c=1:2:20;>>c(1)>>c(10)实验二 MATLAB的数值计算实验目的和要求:通过完成实验二,掌握MATLAB的数值计算。

Matlab实验指导书(含答案)详解

Matlab实验指导书(含答案)详解

实验一:Matlab操作环境熟悉一、实验目的1.初步了解Matlab操作环境。

2.学习使用图形函数计算器命令funtool及其环境。

二、实验内容熟悉Matlab操作环境,认识命令窗口、内存工作区窗口、历史命令窗口;学会使用format命令调整命令窗口的数据显示格式;学会使用变量和矩阵的输入,并进行简单的计算;学会使用who和whos命令查看内存变量信息;学会使用图形函数计算器funtool,并进行下列计算:1.单函数运算操作。

➢求下列函数的符号导数(1) y=sin(x);(2)y=(1+x)^3*(2-x);➢求下列函数的符号积分(1) y=cos(x);(2) y=1/(1+x^2);(3)y=1/sqrt(1—x^2);(4) y=(x-1)/(x+1)/(x+2);➢求反函数(1) y=(x—1)/(2*x+3);(2) y=exp(x);(3)y=log(x+sqrt(1+x^2));➢代数式的化简(1) (x+1)*(x—1)*(x—2)/(x—3)/(x-4);(2) sin(x)^2+cos(x)^2;(3)x+sin(x)+2*x—3*cos(x)+4*x*sin(x);2.函数与参数的运算操作。

➢从y=x^2通过参数的选择去观察下列函数的图形变化(1)y1=(x+1)^2(2)y2=(x+2)^2(3) y3=2*x^2(4)y4=x^2+2(5)y5=x^4(6)y6=x^2/23.两个函数之间的操作➢求和(1) sin(x)+cos(x)(2) 1+x+x^2+x^3+x^4+x^5➢乘积(1) exp(—x)*sin(x)(2)sin(x)*x➢商(1)sin(x)/cos(x);(2)x/(1+x^2);(3)1/(x-1)/(x-2);➢求复合函数(1) y=exp(u) u=sin(x)(2)y=sqrt(u) u=1+exp(x^2)(3)y=sin(u)u=asin(x)(4) y=sinh(u)u=—x三、设计提示1.初次接触Matlab应该注意函数表达式的文本式描述。

利用门限接受法生成均匀设计表

利用门限接受法生成均匀设计表

利用门限接受法生成均匀设计表王浩宇【摘要】Using traditional optimization methods,the generation of uniform design table is usually “trapped”in a local minimizer.To avoid this,the threshold-accepting algorithm can be used.This article focuses on realizing this idea in software MATLAB,which includes the choosing of initial table,the generation of a local neighbor design,the object function and the law of accepting in the iterative process.%在试验设计中,均匀设计表的生成通常需要大量的计算并伴有陷入局部最小值的危险。

而门限接受法(threshold-accepting algorithm,简称 TA)的使用可以有效的避免这种情况,从而得到更优解。

文章目标在 MAT-LAB 上实现门限接受法对均匀设计表的生成,具体包括初始表的选取,局部邻表的生成,目标函数的确定,以及接受准则的确立等。

【期刊名称】《广州大学学报(自然科学版)》【年(卷),期】2016(015)001【总页数】4页(P32-35)【关键词】均匀设计;门限接受法;局部邻表;目标函数【作者】王浩宇【作者单位】北京师范大学珠海分校应用数学学院,广东珠海 519000【正文语种】中文【中图分类】O212科学试验通常涉及若干因素,且每个因素有若干的水平.一般来说,采用多种参数水平组合进行多次实验可为问题的解决提供足够的信息.但是,基于现实方面的诸多考虑,试验次数不能无限制的增加.于是,如何在有限的试验次数中获取足够信息的问题就摆在面前.均匀设计[1](Uniform Design)的提出即是为了应对此类问题.其做法是从整个设计空间“均匀”地抽取有限的试验点,使试验点具有均匀分布的统计特征,比传统的试验设计方法具有更好的稳健性.试验设计表的“均匀性”(uniformity)的度量通常用“偏差”(Discrepancy)来进行.在同因素同水平的设计表中,均匀设计表具有最低的偏差,以及最高的均匀性.于是,在已知因素和水平的前提下,均匀设计表的构造或计算问题即是在整个设计空间中,找到偏差值最低表格的优化问题.但是,随着试验因素个数和水平个数的增加,设计空间会迅速增大,最终成为一个NP难问题.同时,传统的优化方法容易使得在整个空间的搜索陷入“局部最优解”而无法达到“全局最优解”.针对这个问题,一些新的优化算法如模拟退火法[2-3]等被提出,其中,门限接受法[4](Threshold-accepting method,简称TA)作为对模拟退火法的一种改进,被证明是一种行之有效的算法.利用门限接受法解决均匀设计表生成的问题,首先需要确定以下几个要素:①目标函数的选取;②门限序列的确定;③初始设计表格的生成;④局部邻表的生成规则;⑤接受准则和停止准则等.图1表示的是门限接受法的一般流程[5],其中2表示整个设计空间,xc表示当前设计,J表示单个门限的使用次数,I表示使用门限的个数,T表示使用中的门限,f(x)即目标函数.可见,与一般的优化算法不同,门限接受法的接受准则为Δf≤T,其中在最后一次循环之前T>0.这也就意味着,即使新表的均匀性低于旧表,旧表仍有可能被替代.这样做的好处是可以避免陷入“局部最优”,从而在更大的范围内,寻找若干“局部最优”中的最优解.门限T来自于一个门限序列,通常是一个从大到小的数列,最后一个值为0.在整个搜索过程中,门限被从大到小选取,最后才变成0.如果一开始就设为0,那么在找到第一个局部最优解的时候搜索就停止了.需要注意的是,即使是门限接受法也无法保证最后找到的解是全局最优解,因此最终输出的表格严格意义上并不能成为均匀设计表,但其均匀性已经足够高,有些甚至可以达到相应偏差的下限,对实际应用不会造成太大影响.1.1 初始设计表格的生成正如上节所述,通过门限接受法得到的设计表并不是严格意义上的均匀设计表,而是具有良好均匀性的“近似均匀设计表”.因此,为了进一步减少计算次数,可以将搜索区域从整个试验设计空间缩小到部分均匀性较好的设计表构成的集合,如U 型设计表[6].定义在一个n×s的矩阵U中,若每一列的元素均从序列1,2,…,q中取值,且每个值均出现相同的n/q次,那么U可称为对称U型设计表,记为U(n;qs).通常可将U中每个元素均遵循规则进行转化,转化后的矩阵记为初始设计表可从转化后的U型设计中选取.由于没有有效的证据证明初始表格的均匀性会对最终表格造成影响,在选取过程中可以尽量采取简化原则,或者利用计算机随机生成.1.2 目标函数的选取一般来说,若利用函数f(X)来度量X的均匀性(或偏差),则其必须满足以下3个条件:(1)X中发生行互换或者列互换时,f(X)保持不变;(2)X中相互对称的元素各水平取值互换,f(X)保持不变;(3)将X投射到更低维度,f(X)仍可以计算其均匀性.在伪蒙特卡罗方法中经常用星LP-偏差(star Lp-discrepancy)来计算偏差[7],但是星LP-偏差并不满足上述3个条件.因此,可以利用其变形环绕L2-偏差[8-9](wrap-around L2-discrepancy,以下简称WD2).若单位超立方Cs表示整个试验设计空间,其中的n个试验点构成P=(xk1,…,xks),k=1,2,…,n.那么P的WD2-值为WD2不仅满足上述3个条件,更重要的是,可以比较容易的得到WD2的下限值[10],这对之后评估近似均匀设计表有重要的意义.当q为偶数时,设计U(n;qs)的WD2-值的理论下限为当q为奇数时,理论下限为需要指出的是,其WD2-值能达到理论下限的设计表并不一定存在.如果搜索过程中发现设计表的WD2-值达到了对应下限,那么搜索过程可以立即停止,此设计表即为严格意义上的均匀设计表.但是,更多情况中,WD2-值的理论下限是作为评估最终表格均匀性的一个手段.1.3 局部邻表的生成在搜索过程中,需要不断地计算当前设计表的局部邻表,用两者WD2-值之差与当前门限进行比较,从而决定是否将当前设计替换为邻表.局部邻表的生成需要满足以下2个条件:(1)新生成的表格仍为U型设计表;(2)生成过程不宜太复杂,否则会浪费大量计算资源.本文采取的方法:首先随机选取当前设计表的1列,再从此列中随机选取2个元素,若不同,则进行互换;若相同,则再次随机选取2个元素,以此类推.此方法生成的新表与原表差别很小,适合较为细致的搜索,不容易产生“过度跳跃”.1.4 门限序列的生成门限序列中的数值从左到右依次减小,最终变为0.在每一次循环中,当前表格与其邻表的WD2-值之差与当前门限进行比较,从而决定是否替换,在经过J次循环后,当前门限在门限序列中向右取下一个值,以此类推.门限序列的生成没有固定的规则,但一般来说,所有门限值的选取必须大小适中,并且门限序列的长度应随着试验因素和水平个数的增加而有所增长.本文采取的方法如下所示[11]:第一步:选取一个初始设计表N,并以此为基础生成足够多(由试验因素和水平个数决定)的邻表.依次计算这些邻表的WD2-值,并记最小值为WDmin,最大值为WDmax,设h-range=WDmax-WDmin;第二步:生成数列a,第i个元素为ai=0.1ln(i),i=1,2,…,n×s;第三步:生成门限序列T=h-range*a.图2表示对一次优化过程中邻表WD2-值的追踪,其中试验次数n=25,因素个数s=10,水平数q=5.可见收敛过程迅速而平稳.1.5 设计表的评估至此,可以利用算法程序对特定试验次数n,因素个数s以及水平数q的试验生成相应的近似均匀设计表.由于可以比较容易地得到WD2-值的理论下限,可以对已经生成的表格进行一定程度的评估,结果见表1.可见,由本文方法生成的近似均匀设计表的偏差值已经十分接近WD2-值的下限,基本上可以作为实际试验设计用表来使用.随着计算机技术的不断发展,一些NP难问题逐渐可以利用“全局搜索”的方式找到全局最优解,但是在计算资源仍旧紧缺的情况下,利用门限接受法等方法避免落入局部最优从而得到更好的局部最优解仍不失为一种好的替代方式.【相关文献】[1]方开泰.均匀试验设计的理论、方法和应用——历史回顾[J].数理统计与管理,2004,23(3):69-80.FANG K T.The theory,method and application of uniform experimental design:A historical review[J].Math Statist Manag,2004,23(3):69-80.[2] KIRKPATRICK S,GELATT C D,VECCHI M P.Optimization by simulated annealing [J].Science,1983,220(4598):671-680.[3] MORRIS M D,MITCHELL T J.Exploratory design for computational experiments [J].Statist Plann Infer,1995,43(3):381-402.[4] DUECK G,SCHEUER T.Threshold accepting:A general purpose optimization algorithm appearing superior to simulated annealing[J].Comput Phys,1990,90(1):161-175.[5] WINKER P,FANG K T.Application of threshold-accepting to the evaluation of the discrepancy of a set of points[J].Siam J Numer Anal,1997,34(5):2028-2042.[6] GEORGIOU S D,KOUKOUVINOS C,LIU M Q.U-type and column-orthogonal designs for computer experiments[J].Metrika,2014,77(8):1057-1073.[7] GROSSWALD E,HUA L K,WANG Y.Review:Applications of number theory to numerical analysis[J].Bull Amer Math Soc,1983,8(3):489-496.[8] HICKERNELL F ttice rules:How well do they measure up?[M]∥HELLEKALEK P,LARCHER G.Random and Quasi-Random Point Sets.New York:Springer-Verlag,1998:109-166.[9] FANG K T,MA C X.Wrap-around L2-discrepancy of random sampling,Latin hypercube and uniform designs[J].Complexity,2001,17(4):608-624.[10]FANG K T,TANG Y,YIN J X.Lower bounds for wrap-around L2-discrepancy and constructions of symmetrical uniform designs[J].Complexity,2005,21(5):757-771. [11]FANG K T,LI R,SUDJIANTO A.Design and modeling for computer experiments [M].London:Chapman&Hall/CRC,2006:113-117.。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Matlab中的均匀设计与优化实验方法介绍
引言
在科学研究和工程实践中,实验设计和优化方法是不可或缺的工具。

Matlab作
为一种强大的数值计算和可视化软件,是科学家和工程师常用的工具之一。

在Matlab中,有许多方法可以用于设计均匀实验和进行优化。

本文将介绍Matlab中
的一些常见的均匀设计和优化实验方法。

一、均匀设计实验方法
1.1 背景
均匀设计实验是一种将样本分布在整个实验空间中的方法,以确保样本之间的
差异性最小化。

在科学研究中,均匀设计实验常用于确定因素对响应变量的影响,并评估其主效应和交互作用。

在Matlab中,有几种方法可以实现均匀设计实验。

1.2 完全随机设计
完全随机设计是最简单的均匀设计实验方法之一。

在Matlab中,可以使用
rand函数生成随机数,然后将其映射到实验空间的范围。

例如,rand(100,2)将生成
一个100行2列的随机矩阵,其中每个元素均匀地分布在0到1之间。

为了将这些
随机数映射到实验空间的范围,可以使用线性变换。

1.3 拉丁超立方设计
拉丁超立方设计是一种常用的均匀设计实验方法。

在Matlab中,可以使用lhsdesign函数生成拉丁超立方设计。

该函数的输入参数包括实验空间的维数和样本点的个数。

例如,X = lhsdesign(10,2)将生成一个10行2列的拉丁超立方设计矩阵,其中每个元素均匀地分布在0到1之间。

二、优化实验方法
2.1 背景
优化实验是一种通过系统地变化实验条件来最大化或最小化某个目标函数的方法。

在Matlab中,有几种方法可以用于优化实验。

2.2 泛化回归神经网络
泛化回归神经网络是一种基于人工神经网络的优化实验方法。

在Matlab中,
可以使用fitnet函数创建一个泛化回归神经网络模型,并使用该模型进行优化实验。

该函数的输入参数包括输入数据和目标数据。

例如,net = fitnet(10)将创建一个包
含10个隐藏层节点的泛化回归神经网络模型。

2.3 粒子群优化算法
粒子群优化算法是一种基于群体智能的优化实验方法。

在Matlab中,可以使
用particleswarm函数实现粒子群优化算法。

该函数的输入参数包括目标函数、变
量的取值范围和粒子的个数。

例如,[x,fval] = particleswarm(@objfun,10,[0 0],[1 1])
将使用粒子群优化算法寻找目标函数在变量范围为[0,0]到[1,1]之间的最小值。

结论
Matlab是一种功能强大的工具,提供了许多方法用于设计均匀实验和进行优化。

本文介绍了Matlab中的一些常见的均匀设计和优化实验方法,包括完全随机设计、拉丁超立方设计、泛化回归神经网络和粒子群优化算法。

希望这些方法对读者在实际科学研究和工程实践中的实验设计和优化问题有所启发。

无论是在学术领域还是工业界,均匀设计和优化实验方法在实现高效、经济和准确的实验结果方面发挥着关键作用。

相关文档
最新文档