简单的遗传算法,计算函数最值.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实现。
2023/6/29 19:34:11 21KB MATLAB 函数拟合 最小二乘 多项式
1
本书以数值分析为基础,介绍算法设计与分析,并给出了工程上常用的、行之有效的具体算法。
本书可以作为高等理工科院校非数学专业的“数值分析”或“计算方法”等课程的教材,也可作为广大工程技术人员参考用书。
2023/6/29 15:17:52 3.58MB 数值分析与算法
1
数值分析第四版课后习题答案李庆扬等编华中科技大学出版社答案较全共8章非常清晰排版一般
2023/6/29 3:33:18 544KB 数值分析 第四版 习题答案 李庆扬
1
DataCastle轴承故障预测数据集,可供下载使用的有2个文件:1.train.csv,训练集数据,1到6000为按时间序列连续采样的振动信号数值,每行数据是一个样本,共792条数据,第一列id字段为样本编号,最后一列label字段为标签数据,即轴承的工作状态,用数字0到9表示。
2.test_data.csv,测试集数据,共528条数据,除无label字段外,其他字段同训练集。
总的来说,每行数据除去id和label后是轴承一段时间的振动信号数据,选手需要用这些振动信号去判定轴承的工作状态label。
2023/6/15 11:38:32 21.87MB 数据集
1
既可以实现24点游戏,也可以实现其他数值的游戏
2023/6/15 6:49:15 3KB Java 24点游戏
1
含有全部工程文件,使用C++Builder6.0完成开发,可重新编译运行。
创作权归曹润泽所有,使用者不可用于商业目的,否者后果自负。
本软件功能:上层的应用软件的模块主要有:初始化模块、用户设置模块、COM串行通信数据采集模块、数据矫正模块、数据绘图模块、数据存储模块、网络传输模块、功能整合模块等。
其中网络传输模块又可以根据工作模式分为服务端网络传输模块和客户端网络传输模块。
用户设置模块:主要是通过用户设置设置窗口中的信息来完成软件的设置,这些可以设置的变量都非常重要,包括基本设置:采样频率设置、COM端口选择、警告限设置(是否使用警戒限、高警戒限的大小、低警戒限的大小)、矫正表设置(是否使用矫正表、选择矫正表);
绘图设置:显示点数设置、曲线宽度设置、曲线颜色设置(高警戒曲线的颜色、正常时曲线颜色、低警戒曲线的颜色设置);
网络设置:是否使用网络传输、网络基本设置(服务端选择、客户端选择、端口号设置、服务端IP设置)。
COM串行通信数据采集模块:用于从串行口中读取数据。
本系统使用专门用于RS-232串行通信通信控制的控件TComm控件来完成COM通信。
数据矫正模块,顾名思义,是用于对数据进行矫正的。
若需要矫正数据,必须使用矫正表,矫正表实际上只是个用户可自定义的文本文件,但在编写矫正表文件时必须按照一定规则进行编写。
数据绘图模块:对于采集数据的实时绘图是通过BorlandC++Builder6.0自带的功能强大的TChart控件来实现。
数据存储模块:该模块除了使用了编译器所提供的几个基本数据类型之外,基本上是使用纯C++编写(不使用编译器的控件)。
数据存储并未使用数据库存储,而是使用文本文件的方式对所有采集到的时间进行存储,存储时要先把采样信息写入到数据文件的头部,包括创建时间、采样起始时间、采样持续时间、采样结束时间、采样频率、采样数等等信息,之后就是所采集的数据,采样数据包括数值和采集的该点所对应的时间,以及该点是否被警告(过低用!Low表示、正常用-表示、过高用!High表示)。
网络传输模块:网络传输模块是本数据采集系统比较新颖的模块,可以使用互联网进行速率较低的数据传输,考虑到网络传输的延迟,故设计时设置的采样速率比较低。
网络传输模块实际上是使用Socket编程实现的,在BorlandC++Builder中有封装好的用于网络通信的控件:TServerSocket和TClientSocket。
2023/6/10 21:49:40 2.62MB 数据采集 串行通信 C++ Builder
1
倪光正2004版的工程电磁场数值分析pdf格式很赞哦!!
2023/6/10 7:56:48 6.57MB 电磁场 数值 分析
1
详细讲解广义矩阵及其相关问题求解的算法设计问题,这是该书的课后习题答案
2023/6/10 6:57:04 1.44MB 数值线性代数
1
4阶Runge_Kutta法求常微分方程、方程组、高阶微分方程。
只需改变f.m中的微分方程组为你要求解的题目,和useRunge_Kutta2.m中的端点a和b就行。
通用性强。
学习数值分析时自己写的
2023/6/10 6:29:21 1KB Runge_Kutta 常微分方程组
1
共 1000 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡