简单的遗传算法,计算函数最值.functionga_main()%遗传算法程序%n--种群规模%ger--迭代次数%pc---交叉概率%pm--变异概率%v--初始种群(规模为n)%f--目标函数值%fit--适应度向量%vx--最优适应度值向量%vmfit--平均适应度值向量clearall;closeall;clc;%清屏tic;%计时器开始计时n=20;ger=100;pc=0.65;pm=0.05;%初始化参数%以上为经验值,可以更改。
%生成初始种群v=init_population(n,22);%得到初始种群,22串长,生成20*22的0-1矩阵[N,L]=size(v);%得到初始规模行,列disp(sprintf('Numberofgenerations:%d',ger));disp(sprintf('Populationsize:%d',N));disp(sprintf('Crossoverprobability:%.3f',pc));disp(sprintf('Mutationprobability:%.3f',pm));%sprintf可以控制输出格式%待优化问题xmin=0;xmax=9;%变量X范围f='x+10*sin(x.*5)+7*cos(x.*4)';%计算适应度,并画出初始种群图形x=decode(v(:,1:22),xmin,xmax);"位二进制换成十进制,%冒号表示对所有行进行操作。
fit=eval(f);%eval转化成数值型的%计算适应度figure(1);%打开第一个窗口fplot(f,[xmin,xmax]);%隐函数画图gridon;holdon;plot(x,fit,'k*');%作图,画初始种群的适应度图像title('(a)染色体的初始位置');%标题xlabel('x');ylabel('f(x)');%标记轴%迭代前的初始化vmfit=[];%平均适应度vx=[];%最优适应度it=1;%迭代计数器%开始进化whileit<=ger%迭代次数0代%Reproduction(Bi-classistSelection)vtemp=roulette(v,fit);%复制算子%Crossoverv=crossover(vtemp,pc);%交叉算子%Mutation变异算子M=rand(N,L)<=pm;%这里的作用找到比0.05小的分量%M(1,:)=zeros(1,L);v=v-2.*(v.*M)+M;%两个0-1矩阵相乘后M是1的地方V就不变,再乘以2.NICE!!确实好!!!把M中为1的位置上的地方的值变反%这里是点乘%变异%Resultsx=decode(v(:,1:22),xmin,xmax);%解码,求目标函数值fit=eval(f);%计算数值[sol,indb]=max(fit);%每次迭代中最优目标函数值,包括位置v(1,:)=v(indb,:);%用最大值代替fit_mean=mean(fit);%每次迭代中目标函数值的平均值。
mean求均值vx=[vxsol];%最优适应度值vmfit=[vmfitfit_mean];%适应度均值it=it+1;%迭代次数计数器增加end
2023/7/1 23:41:32 4KB 遗传算法
1
通过实现MATLAB图像处理实现螺纹识别源程序代码I=edge(I,'canny');%边缘检测,得到螺纹的波形[m,n]=size(I);%计算图像的尺寸I=I(20:m-20,20:n-20);%把图像的边角去掉,留下有用的部分[m,n]=size(I);%计算去掉边角之后的图像尺寸figureimshow(I)%显示去掉边角之后的图像title('螺纹波形')%把白色像素点的位置得到(像素为1的点的坐标)N=1;%计数器fori=1:mforj=1:nifI(i,j)==1x(N)=i;%保存白色像素的横坐标xy(N)=j;%保存白色像素的纵坐标yN=N+1;%计数器+1endendend
2023/6/29 11:37:48 16KB MATLAB
1
本书是普通高等教育“十一五”国家级规划教材。
本书本书以51系列单片机为硬件基础,以C51为软件编程基础,全面系统地介绍单片机的基本知识与应用。
本书主要内容包括:单片机的C语言概述,51单片机硬件与C51编程基础,P0~P3口、中断系统、定时器/计数器、并行扩展、外部串行扩展的C51编程,Keil与Proteus使用基础等。
本书提供大量实例及详细说明与注释,均可在Keil和Proteus软件平台上直接运行,每章后附本章小结、习题、实验与设计等,提供电子课件、程序代码、习题参考答案与实验指导。
2023/6/10 11:03:55 1.54MB 单片机 C语言
1
第1章8051单片机C语言程序设计概述 1.18051单片机引脚 1.2数据与程序内存 1.3特殊功能寄存器 1.4外部中断、定时/计数器及串口应用 1.5有符号与无符号数应用、数位分解、位操作 1.6变量、存储类型与存储模式 1.7数组、字符串与指针 1.8流程控制 1.9可重入函数和中断函数 1.10C语言在单片机系统开发中的优势第2章Proteus操作基础 2.1Proteus操作界面简介 2.2仿真电路原理图设计 2.3元件选择 2.4调试仿真 2.5Proteus与?V3的联合调试第3章基础程序设计 3.1闪烁的LED 3.2从左到右的流水灯 3.3左右来回循环的流水灯 3.4花样流水灯 3.5LED模拟交通灯 3.6单只数码管循环显示0~9 3.78只数码管滚动显示单个数字 3.88只数码管显示多个不同字符 3.9数码管闪烁显示 3.108只数码管滚动显示数字串 3.11K1~K4控制LED移位 3.12K1~K4按键状态显示 3.13K1~K4分组控制LED 3.14K1~K4控制数码管移位显示 3.15K1~K4控制数码管加减演示 3.164×4键盘矩阵控制条形LED显示 3.17数码管显示4×4键盘矩阵按键 3.18开关控制LED 3.19继电器控制照明设备 3.20数码管显示拨码开关编码 3.21开关控制报警器 3.22按键发音 3.23播放音乐 3.24INT0中断计数 3.25INT0中断控制LED 3.26INT0及INT1中断计数 3.27TIMER0控制单只LED闪烁 3.28TIMER0控制流水灯 3.29TIMER0控制4只LED滚动闪烁 3.30T0控制LED实现二进制计数 3.31TIMER0与TIMER1控制条形LED 3.3210s的秒表 3.33用计数器中断实现100以内的按键计数 3.3410000s以内的计时程序 3.35定时器控制数码管动态显示 3.368×8LED点阵屏显示数字 3.37按键控制8×8LED点阵屏显示图形 3.38用定时器设计的门铃 3.39演奏音阶 3.40按键控制定时器选播多段音乐 3.41定时器控制交通指示灯 3.42报警器与旋转灯 3.43串行数据转换为并行数据 3.44并行数据转换为串行数据 3.45甲机通过串口控制乙机LED闪烁 3.46单片机之间双向通信 3.47单片机向主机发送字符串 3.48单片机与PC串口通信仿真第4章硬件应用 4.174LS138译码器应用 4.274HC154译码器应用 4.374HC595串入并出芯片应用 4.4用74LS148扩展中断 4.5I2C-24C04与蜂鸣器 4.6I2C-24C04与数码管 4.7用6264扩展内存 4.8用8255实现接口扩展 ……第5章综合设计
1
本仪器是一台精密的测试仪器,具有输出函数信号、调频、调幅、FSK、PSK、猝发、频率扫描等信号的功能。
此外,本仪器还具有测频和计数的功能。
本仪器是电子工程师、电子实验室、生产线及教学、科研的理想测试设备。
1
论文基于单片机的智能电子计数器的设计单片机等精度CPLD频率计
2023/5/15 14:27:13 1.22MB 单片机 等精度 CPLD 频率计
1
1.反对于APB总线接口2.反对于PWM单次方式以及络续方式可配3.反对于PWM周期配置配备枚举连忙失效以及提前失效可配4.反对于PWM周期可配置配备枚举5.反对于PWM宽度可配6.反对于PWM使能可配7.反对于16位计数器8.反对于16位预分频计数器9.反对于中断
2023/5/15 10:09:19 11KB Verilog
1
第一章概述第二章存储器映射第三章体系配置配备枚举第四章电源管理单元(PMU)第五章功率配置配备枚举文件第六章中断抑制器第七章IO口配置配备枚举第八章管脚配置配备枚举第九章通用输入/输入口第十章通用异步收发器(UART)第十一章I2C总线接口第十二章SSP抑制器第十三章C_CAN第十四章C_CAN片上驱动第十五章16位计数器按时器第十六章32位计数器按时器第十七章看门狗按时器(WDT)第十八章体系节奏按时器第十九章模数转换器(ADC)第二十章Flash存储器编程固件第二十一章串行线调试(SWD)第二十二章ARMCortex-M0参考资料
2023/5/15 3:02:46 9.17MB lpc11c14 中文手册
1
PAL日志成果阐发货物。
用于阐发PerfMon计数器日志以及建树依据严正性吐出展现弥留规模的报表。
PAL_Setup_2.7.7_x64.zip
2023/5/13 2:04:05 1.21MB PAL
1
verilog实现60进制计数器源代码及测试代码
2023/5/11 4:53:16 1KB verilog 计数器
1
共 269 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡