人工智能matlab仿真Word下载.docx

上传人:b****2 文档编号:3574515 上传时间:2023-05-02 格式:DOCX 页数:20 大小:356.31KB
下载 相关 举报
人工智能matlab仿真Word下载.docx_第1页
第1页 / 共20页
人工智能matlab仿真Word下载.docx_第2页
第2页 / 共20页
人工智能matlab仿真Word下载.docx_第3页
第3页 / 共20页
人工智能matlab仿真Word下载.docx_第4页
第4页 / 共20页
人工智能matlab仿真Word下载.docx_第5页
第5页 / 共20页
人工智能matlab仿真Word下载.docx_第6页
第6页 / 共20页
人工智能matlab仿真Word下载.docx_第7页
第7页 / 共20页
人工智能matlab仿真Word下载.docx_第8页
第8页 / 共20页
人工智能matlab仿真Word下载.docx_第9页
第9页 / 共20页
人工智能matlab仿真Word下载.docx_第10页
第10页 / 共20页
人工智能matlab仿真Word下载.docx_第11页
第11页 / 共20页
人工智能matlab仿真Word下载.docx_第12页
第12页 / 共20页
人工智能matlab仿真Word下载.docx_第13页
第13页 / 共20页
人工智能matlab仿真Word下载.docx_第14页
第14页 / 共20页
人工智能matlab仿真Word下载.docx_第15页
第15页 / 共20页
人工智能matlab仿真Word下载.docx_第16页
第16页 / 共20页
人工智能matlab仿真Word下载.docx_第17页
第17页 / 共20页
人工智能matlab仿真Word下载.docx_第18页
第18页 / 共20页
人工智能matlab仿真Word下载.docx_第19页
第19页 / 共20页
人工智能matlab仿真Word下载.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

人工智能matlab仿真Word下载.docx

《人工智能matlab仿真Word下载.docx》由会员分享,可在线阅读,更多相关《人工智能matlab仿真Word下载.docx(20页珍藏版)》请在冰点文库上搜索。

人工智能matlab仿真Word下载.docx

FieldD=[rep(PRECI,[1,NVAR]);

[-1,-1;

1,1];

rep([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);

%%进化过程

whilegen<

MAXGEN

FitnV=ranking(-objV);

SelCh=select('

sus'

Chrom,FitnV,GGAP);

%选择

SelCh=recombin('

xovsp'

SelCh,pc);

%重组

SelCh=mut(SelCh,pm);

%变异

popnew=bs2rv(SelCh,FieldD);

%新一代种群

objVSel=objectFunction(popnew);

%计算子代目标函数值

[Chrom,objV]=reins(Chrom,SelCh,1,1,objV,objVSel);

gen=gen+1;

ifminY>

min(objV)%寻找当前极小值

minY=min(objV);

[y,i]=min(objV);

x=bs2rv(Chrom,FieldD);

xmin(1,:

)=x(i,:

);

disp(['

对应最小自变量取值:

'

num2str(x(i,:

))])%输出最优个体

对应最小值:

num2str(y)])%输出最优个体

end

ifmaxY<

max(objV)%寻找当前极大值

maxY=max(objV);

[Y,I]=max(objV);

X=bs2rv(Chrom,FieldD);

xmax(1,:

)=X(I,:

对应最大自变量取值:

num2str(X(I,:

对应最大值:

num2str(Y)])%输出最优个体

trace_min(gen,1)=minY;

%保存当前极小值

trace_max(gen,1)=maxY;

%保存当前极大值

%%画图

figure

(1)%画进化过程图

plot(1:

gen,trace_min(:

1));

holdon

gen,-1.031570364,'

r-'

%目标函数在区间最小值

figure

(2)

gen,trace_max(:

holdon

gen,3.2333,'

%目标函数在区间最大值

(4)运行结果

 

优化函数如图所示:

由优化函数图可知,此函数存在2个极小值点,4个极大值点。

4个最大值为:

对应x1,x2最大自变量取值:

-0.99543-0.91298对应函数最大值:

2.5798

-0.92829-0.99328对应函数最大值:

2.97

-0.989-0.99817对应函数最大值:

3.1879

-0.99168-0.99925对应函数最大值:

3.2047

2个最小值为:

对应x1,x2最小自变量取值:

-0.0447820.76447对应函数最小值:

-0.99772

0.11984-0.66623对应函数最小值:

-1.0102

2.体重约70kg的某人在短时间喝下2瓶啤酒后,隔一段时间测量他的血液中酒精含量(mg/100mL),得到以下数据:

时间/(h)

0.25

0.5

0.75

1

1.5

2

2.5

3

3.5

4

4.5

5

6

7

酒精含量/

30

68

75

82

77

58

51

50

41

38

35

8

9

10

11

12

13

14

15

16

酒精含量

28

25

18

根据酒精在人体血液分解的动力学规律可知,血液中酒精浓度与时间的关系可表示为:

试根据表中数据求出参数

(3)实验程序:

%%求函数适应度子程序

functionobjV=objectFunction(pop,Data)

n=size(Data,1);

m

forj=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));

objV(i,1)=mean(C);

%%求方差子程序

functionRESM=variance(a,a_1)

M=size(a,1);

y=0;

y_1=0;

M

y_1=y_1+(a(i,1)-a_1(i,1))^2;

RESM=sqrt(y_1/M);

%%主程序

loadData

%%初始化

NIND=500;

MAXGEN=2000;

NVAR=3;

PRECI=20;

%代购

trace=zeros(MAXGEN,1);

%每代最优值

[100,0,0;

150,1,3];

objV=objectFunction(pop,Data);

%函数适应度最小值即最优值

objVSel=objectFunction(popnew,Data);

min(objV)%寻找当前最优个体

trace(gen,1)=minY;

%保存当前最优个体

%%结果输出

[Y,I]=min(objV);

X=bs2rv(Chrom,FieldD);

Xmin(1,:

disp(['

对应自变量取值:

m=size(Data,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);

RESM=variance(Data(:

2),Y);

%计算方差

方差:

num2str(RESM)])

gen,trace(:

figure

(2);

%画出期望值与拟合值曲线

plot(Data(:

1),Data(:

2),'

rd-'

1),Y,'

b*-'

xlabel('

时间'

ylabel('

酒精含量'

legend('

期望值'

'

拟合值'

figure(3)

1),ARE,'

误差'

进行20次的多项式拟合后图如下:

所以,对应自变量取值:

k=113.3353q=0.1841013r=2.206932

3.3748

3.设计一个神经网络,并对输入信号进行预测。

输入为一线性调频信号,信号采样时间为2s,采样频率为1000Hz,起始到信号的瞬时为0Hz,1s时的瞬时频率为150Hz。

(1)本题采用三层BP神经网络。

第一步,网络初始化。

给各连接权值分别赋一个区间的随机数,设定误差函数e,给定计算精度值和最大学习次数M。

第二步,随机选取第2000个输入样本,前1900作为训练样本最后100做测试。

第三步,计算隐含层各神经元的输入和输出。

第四步,利用网络期望输出和实际输出,计算误差函数对输出层的各神经元的偏导数a。

第五步利用隐含层到输出层的连接权值、输出层和隐含层a的输出计算误差函数对隐含层各神经元的偏导数b。

第六步,利用输出层各神经元的a和隐含层各神经元的输出来修正连接权值w。

第七步:

利用隐含层各神经元的a和输入层各神经元的输入修正连接权。

(2)神经网络算法流程图:

%%设计一个神经网络,并对输入信号进行预测

%%信号采样时间为2s,采样频率为1000Hz,起始到信号的瞬时为0Hz,1s时的瞬时频率为150Hz

time=0:

0.001:

2;

y=chirp(time,0,1,150,'

linear'

y=y'

;

time=time'

m=size(y,1);

%%网络训练数据以前四个时刻预测第五个时刻

1896

X(i,1)=y(i,1);

X(i,2)=y(i+1,1);

X(i,3)=y(i+2,1);

X(i,4)=y(i+3,1);

Y(i,1)=y(i+4,1);

%%网络训练

s=size(Y,2);

p=X'

t=Y'

%数据归一化

[pn,minX,maxX]=premnmx(p);

%将数据归一化

[tn,minY,maxY]=premnmx(t);

%训练网络

net=newff(minmax(pn),[8,s],{'

tansig'

purelin'

},'

trainlm'

net.trainParam.goal=0.001;

net.trainParam.epochs=800;

net=train(net,pn,tn);

yn=sim(net,pn);

Yn=postmnmx(yn,minY,maxY);

y_train=Yn'

%%训练误差

train_number=size(X,1);

train_number

ARE(i,1)=Y(i,1)-y_train(i,1);

%%网络测试数据

97

X_test(i,1)=y(i+1900,1);

X_test(i,2)=y(i+1901,1);

X_test(i,3)=y(i+1902,1);

X_test(i,4)=y(i+1903,1);

Y_test(i,1)=y(i+1904,1);

%%网络测试

q=X_test'

u=Y_test'

[qn]=tramnmx(q,minX,maxX);

y_tr=sim(net,qn);

y_trr=postmnmx(y_tr,minY,maxY);

y_test=y_trr'

train_number=size(X,1);

test_number=size(X_test,1);

%%测试误差

test_number

ARE_1(i,1)=Y_test(i,1)-y_test(i,1);

figure

(1);

plot(Y,'

plot(y_train,'

训练样本输出期望值'

训练样本输出预测值'

axis([0500-1.51.5])

axis([5011000-1.51.5])

figure(3);

axis([10011500-1.51.5])

figure(4);

axis([15011900-1.51.5])

figure(5);

plot(ARE,'

axis([0500-0.20.2])

figure(6);

axis([5011000-0.20.2])

figure(7);

axis([10011500-0.20.2])

figure(8);

axis([15011900-0.20.2])

figure(9);

plot(ARE_1,'

figure(10);

plot(Y_test,'

plot(y_test,'

下图分别为0-1900样本分成4组的训练过程

它们对应的误差变化图像如下:

测试图像为:

对应的测试误差图像为:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2