1、人工智能matlab仿真1. 函数优化该二元6次函数式一个多峰函数,共有6个极值,其中有两个极值点对应的函数取值为最小值。试求解函数的极值点。(1)设计思路本题采用遗传算法,遗传算法搜索最优解的方法是模仿生物的进化过程,遗传算法主要使用选择算子、 交叉算子与变异算子来模拟生物进化,从而产生一代又一代的种群。遗传算法具有通用、并行、稳健、简单与全局优化能力强等突出优点,适用于解决复杂、困难的全局优化问题。(2)程序流程图(3)实验程序function objV=objectFunction(pop)m=size(pop,1);for i=1:m objV(i,1)=4*pop(i,1)2-2.1
2、*pop(i,1)4+(1/3)*pop(i,1)6+pop(i,1)*pop(i,2)-4*pop(i,2)2+4*pop(i,2)4;end%初始化clc;clear;pc=0.7; %交叉率 pm=0.05; %变异率NIND=20; %个体数目MAXGEN=1000; %最大遗传代数NVAR=2; %变量维数PRECI=40; %变量二进制数GGAP=0.9; %代沟trace_min=zeros(MAXGEN,1); %每代极小值trace_max=zeros(MAXGEN,1); %每代极大值% 种群初始化FieldD=rep(PRECI,1,NVAR);-1,-1;1,1;rep
3、(1;0;1;1,1,NVAR); %区域扫描Chrom=crtbp(NIND,NVAR*PRECI); %创建初始种群% 计算第0代函数适应度,寻找最优个体gen=0;pop=bs2rv(Chrom,FieldD); %将二进制初始种群转化为十进制objV=objectFunction(pop); %计算函数适应度minY=min(objV); %函数适应度最小值即函数最小值maxY=max(objV);POP(:,:,gen+1)=pop(1:end,1:end);% 进化过程while genmin(objV) %寻找当前极小值 minY=min(objV); y,i=min(objV)
4、; x=bs2rv(Chrom,FieldD); xmin(1,:)=x(i,:); disp(对应最小自变量取值:,num2str(x(i,:) %输出最优个体 disp(对应最小值:,num2str(y) %输出最优个体 end if maxYmax(objV) %寻找当前极大值 maxY=max(objV); Y,I=max(objV); X=bs2rv(Chrom,FieldD); xmax(1,:)=X(I,:); disp(对应最大自变量取值:,num2str(X(I,:) %输出最优个体 disp(对应最大值:,num2str(Y) %输出最优个体 end trace_min(g
5、en,1)=minY; %保存当前极小值 trace_max(gen,1)=maxY; %保存当前极大值end% 画图figure(1) %画进化过程图 plot(1:gen,trace_min(:,1); hold onplot(1:gen,-1.031570364,r-); %目标函数在区间内最小值figure(2)plot(1:gen,trace_max(:,1);hold on plot(1:gen,3.2333,r-); %目标函数在区间内最大值(4)运行结果优化函数如图所示:由优化函数图可知,此函数存在2个极小值点,4个极大值点。4个最大值为:对应x1,x2最大自变量取值:-0.9
6、9543 -0.91298对应函数最大值:2.5798对应x1,x2最大自变量取值:-0.92829 -0.99328对应函数最大值:2.97对应x1,x2最大自变量取值:-0.989 -0.99817 对应函数最大值:3.1879对应x1,x2最大自变量取值:-0.99168 -0.99925对应函数最大值:3.20472个最小值为:对应x1,x2最小自变量取值:-0.044782 0.76447对应函数最小值:-0.99772对应x1,x2最小自变量取值:0.11984 -0.66623对应函数最小值:-1.01022. 体重约70kg的某人在短时间内喝下2瓶啤酒后,隔一段时间测量他的血液
7、中酒精含量(mg/100mL),得到以下数据:时间/(h)0.250.50.7511.522.533.544.5567酒精含量/3068758282776868585150413835时间/(h)8910111213141516酒精含量282518151210774根据酒精在人体血液分解的动力学规律可知,血液中酒精浓度与时间的关系可表示为:试根据表中数据求出参数、。(1)设计思路本题采用遗传算法,遗传算法搜索最优解的方法是模仿生物的进化过程,遗传算法主要使用选择算子、 交叉算子与变异算子来模拟生物进化,从而产生一代又一代的种群。遗传算法具有通用、并行、稳健、简单与全局优化能力强等突出优点,适用
8、于解决复杂、困难的全局优化问题。(2)程序流程图(3)实验程序:% 求函数适应度子程序function objV=objectFunction(pop,Data)m=size(pop,1);n=size(Data,1);for i=1:m for j=1:n C(j,1)=abs(pop(i,1)*(exp(pop(i,2)*(-1)*Data(j,1)-exp(pop(i,3)*(-1)*Data(j,1)-Data(j,2); end objV(i,1)=mean(C);end% 求方差子程序function RESM=variance(a,a_1)M=size(a,1);y=0;y_1=
9、0;for i=1:M y_1=y_1+(a(i,1)-a_1(i,1)2;endRESM=sqrt(y_1/M);% 主程序load Data% 初始化pc=0.7; %交叉率 pm=0.05; %变异率NIND=500; %个体数目MAXGEN=2000; %最大遗传代数NVAR=3; %变量维数PRECI=20; %变量二进制数GGAP=0.9; %代购trace=zeros(MAXGEN,1); %每代最优值% 种群初始化FieldD=rep(PRECI,1,NVAR);100,0,0;150,1,3;rep(1;0;1;1,1,NVAR); %区域扫描Chrom=crtbp(NIND
10、,NVAR*PRECI); %创建初始种群% 计算第0代函数适应度,寻找最优个体gen=0;pop=bs2rv(Chrom,FieldD); %将二进制初始种群转化为十进制objV=objectFunction(pop,Data); %计算函数适应度minY=min(objV); %函数适应度最小值即最优值% 进化过程while genmin(objV) %寻找当前最优个体 minY=min(objV); end trace(gen,1)=minY; %保存当前最优个体end% 结果输出Y,I=min(objV); X=bs2rv(Chrom,FieldD);Xmin(1,:)=X(I,:);
11、disp(对应自变量取值:,num2str(X(I,:) %输出最优个体m=size(Data,1);for i=1:m %输出最优个体的函数拟合值Y(i,1)=Xmin(1,1)*(exp(-1)*Xmin(1,2)*(Data(i,1)-exp(-1)*Xmin(1,3)*(Data(i,1);ARE(i,1)=Data(i,2)-Y(i,1);endRESM=variance(Data(:,2),Y); %计算方差disp(方差:,num2str(RESM)% 画图figure(1) %画进化过程图 plot(1:gen,trace(:,1);figure(2); %画出期望值与拟合值曲
12、线plot(Data(:,1),Data(:,2),rd-);hold onplot(Data(:,1),Y,b*-)xlabel(时间);ylabel(酒精含量);legend(期望值,拟合值);figure(3)plot(Data(:,1),ARE,rd-)xlabel(时间);ylabel(误差);(4)运行结果进行20次的多项式拟合后图如下:所以,对应自变量取值:k=113.3353 q=0.1841013 r=2.206932方差:3.37483. 设计一个神经网络,并对输入信号进行预测。输入为一线性调频信号,信号采样时间为2s,采样频率为1000Hz,起始到信号的瞬时为0Hz,1s时的瞬时频率为150Hz。(1)本题采用三层BP神经网络。第一步,网络初始化。给各连接权值分别赋一个区间内的随机数,设定误差函数e,给定计算精度值和最大学习次数M。第二步,随机选取第2000个输入样本,前1900作为训练样本最后100做测试。第三步,计算隐含层各神经元的输入和输出。第四步,利用网络期望输出和实际输出,计算误差函数对输出层的各神经元的偏导
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1