用智能控制理论所学的知识对下面的二维函数建模
更新时间:2023-04-05 05:44:01 阅读量: 实用文档 文档下载
- 智能控制理论及应用推荐度:
- 相关推荐
实验报告
用智能控制理论所学的知识对下面的二维函数建模:
xy y
x z
) sin( )
sin(
。
训练数据取x=(-10:2:10)=[-10,-8,-6,-4,-2,0,2,4,6,8,10]共11个点,y=(-10:2:10)=[-10,-8,-6,-4,-2,0,2,4,6,8,10]共11个点,总共的训练数据为(2维输入1维输出)11×11=121组。建模完成后,用x=(-10:0.5:10),y=(-10:0.5:10)
的输入数据进行模型测试,并与直接利用解析公式的结果进行对比,体会非线性建模过程中各个参数对性能的影响。
用x=(-10:2:10),y=(-10:2:10)训练数据及精确结果所绘制的曲面
用x=(-10:0.5:10),y=(-10:0.5:10)测试数据及精确结果所绘制的曲面
采用BP神经网络:
BP网络训练结果的参数:
用x=(-10:2:10),y=(-10:2:10)训练数据进行模型测试,经BP网络输出结果绘制的平面。
训练数据经BP网络输出结果与精确结果算得的结果误差基本控制在0.03以内。
用x=(-10:0.5:10),y=(-10:0.5:10)测试数据进行模型测试,经BP网络输出结果绘制的平面。
测试数据经BP网络输出结果与精确结果算得的结果误差基本控制在0.05以内。可以发现经过BP网络测试数据所得结果的误差是大于训练数据的。
实验中每次结果不同,这是因为网络初始化为随机的,这里和以下实验均取比较好的结果。
1、.隐含层的神经元数的影响
网络训练精度的提高,可以通过采用一个隐含层,而增加神经元数目的方法来获得。当我们把神经元个数从20个改为10个时,可以观察到误差明显变大。
2、学习速率的影响
学习速率决定每一次循环训练中所产生的权值变化量。
大的学习速率可能导致系统的不稳定;小的学习速率导致较长的训练时间,可能收敛很慢,不过能保证系统不跳出误差表面的低谷而最终趋于最小误差值。
当我们把学习速率从0.05个改为0.1个时,可以观察到误差明显变大。
当我们把学习速率从0.05个改为0.03个时,可以观察到误差变化不大。但是由于初始化的随机性,有时会出现较大误差,可能是由于收敛较慢,还未收敛到最小误差。
3、期望误差的影响
期望误差值也应当通过对比训练后确定一个合适的值,合适是相对于所需要的隐含层的节点数来确定,因为较小的期望误差值是要靠增加隐含层的节点,以及训练时间来获得的。
在一般情况下,作为对比,可以同时对两个不同期望误差值的网络进行训练,最后通过综合因素的考虑来确定采用其中一个网络。经过几次比较,我们最终选取期望误差为0.000001。
当我们把期望误差从0.00001减小到0.000005时,误差变大。这里我们也可以发
现期望误差并非越小越好。
采用ANFIS方法
用x=(-10:2:10),y=(-10:2:10)训练数据进行模型测试,采用ANFIS方法绘制的平面。
用x=(-10:0.5:10),y=(-10:0.5:10)测试数据进行模型测试,采用ANFIS方法绘制的平面。
通过比较,我们可以发现Anfis法误差较小,收敛较快,而且每次的结果随机性很小,基本不变。
附页:
BP神经网络程序
x=[-10:2:10];
y=[-10:2:10];
z1=sin(x+eps)./(x+eps);
z2=sin(y+eps)./(y+eps);
z=z1'*z2; %输入训练数据
m=size(x,2);
n=size(y,2);
pr=zeros(2,m*n); %生成输入两维矩阵
for i=1:m
for j=1:n
pr(1,(m*(i-1)+j))=x(i);
pr(2,(m*(i-1)+j))=y(j);
end
end
%给两维矩阵赋值,第一行为x,第二行为y
net=newff(minmax(pr),[20 1],{'tansig','purelin'},'trainlm'); %建立网络图像,第一层神经元20个,第二层神经元1个
net=init(net); %权值初始化
net.trainParam.show=100; %每迭代100次显示一次
net.trainParam.lr=0.05; %学习速率
net.trainParam.epochs=300; %训练次数
net.trainParam.goal=0.00001; %误差指标
r1=reshape(z,1,m*n); %将两行矩阵转化为一行
net=train(net,pr,r1); %网络训练
%%%%%%%%%%%%%训练数据曲面%%%%%%%%%%%%%%%%%%
figure;
mesh(x,y,z);
title('训练数据精确结果曲面'); %输入和显示原始结果
bpz1=sim(net,pr);
bpz1=reshape(bpz1,m,n);
figure;
mesh(x,y,bpz1);
title('训练后训练数据经过BP神经网络的结果'); %利用BP网络进行模型测试
figure;
mesh(x,y,bpz1-z);
title('误差曲面'); %显示误差
%%%%%%%%%%%%%测试数据曲面%%%%%%%%%%%%%%%%%%
x2=[-10:0.5:10];
y2=[-10:0.5:10];
z1_2=sin(x2+eps)./(x2+eps);
z2_2=sin(y2+eps)./(y2+eps);
z_2=z1_2'*z2_2;
figure;
mesh(x2,y2,z_2);
title('测试数据的精确结果曲面'); %输入和显示原始结果
m2=size(x2,2);
n2=size(y2,2);
pr2=zeros(2,m2*n2);
for i2=1:m2
for j2=1:n2
pr2(1,(m2*(i2-1)+j2))=x2(i2);
pr2(2,(m2*(i2-1)+j2))=y2(j2);
end
end
bpz2=sim(net,pr2);
bpz2=reshape(bpz2,m2,n2);
figure;
mesh(x2,y2,bpz2);
title('训练后测试数据经过BP神经网络的结果'); %利用BP网络进行模型测试
figure;
mesh(x2,y2,bpz2-z_2);
title('误差曲面'); %显示误差
ANFIS方法程序:
x=[-10:2:10];
y=[-10:2:10];
z1=sin(x+eps)./(x+eps);
z2=sin(y+eps)./(y+eps);
z=z1'*z2; %输入训练数据
m=size(x,2);
n=size(y,2);
pr=zeros(3,m*n); %生成输入两维矩阵
for i=1:m
for j=1:n
pr(1,(m*(i-1)+j))=x(i);
pr(2,(m*(i-1)+j))=y(j);
pr(3,(m*(i-1)+j))=z(i,j);
end
end
%给两维矩阵赋值,第一行为x,第二行为y
trnData=pr';
numMFs=7; %7条隶属度函数
mfType='gaussmf'; %采用高斯型隶属度函数,也可以选用其他种类的隶属度函数
epoch_n=20; %训练的次数
in_fismat=genfis1(trnData,numMFs,mfType); %用函数genfis1由训练数据直接生成模糊推理系统参数
out_fismat=anfis(trnData,in_fismat,epoch_n); %学习完成后得到的模糊推理系统矩阵
%%%%%%%%%%%%%训练数据曲面%%%%%%%%%%%%%%%%%%
figure;
mesh(x,y,z);
title('训练数据的精确结果曲面'); %输入和显示原始结果
p=zeros(2,m*n); %生成输入两维矩阵
for i=1:m
for j=1:n
p(1,(m*(i-1)+j))=x(i);
p(2,(m*(i-1)+j))=y(j);
end
end
anfisz1=evalfis(p,out_fismat);
anfisz1=reshape(anfisz1',m,n);
figure;
mesh(x,y,anfisz1);
title('训练后训练数据的解析公式结果'); %利用解析公式进行模型测试
figure;
mesh(x,y,anfisz1-z);
title('误差曲面'); %显示误差
%%%%%%%%%%%%%测试数据曲面%%%%%%%%%%%%%%%%%% x2=[-10:0.5:10];
y2=[-10:0.5:10];
z1_2=sin(x2+eps)./(x2+eps);
z2_2=sin(y2+eps)./(y2+eps);
z_2=z1_2'*z2_2;
figure;
mesh(x2,y2,z_2);
title('测试数据的精确结果曲面'); %输入和显示原始结果
m2=size(x2,2);
n2=size(y2,2);
pr2=zeros(2,m2*n2);
for i2=1:m2
for j2=1:n2
pr2(1,(m2*(i2-1)+j2))=x2(i2);
pr2(2,(m2*(i2-1)+j2))=y2(j2);
end
end
anfisz2=evalfis(pr2,out_fismat);
anfisz2=reshape(anfisz2',m2,n2);
figure;
mesh(x2,y2,bpz2);
title('训练后测试数据的解析公式结果'); %利用解析公式进行模型测试
figure;
mesh(x2,y2,anfisz2-z_2);
title('误差曲面'); %显示误差
正在阅读:
欢度六一儿童节作文450字07-04
甲级单位编制纸盒制品项目可行性报告(立项可研+贷款+用地+2013案例)设计方案10-20
急诊绿色通道流程及管理制度03-10
最新六年级比例尺的应用苏教版08-24
七年级上册地理复习资料02-12
二年级下数学用7、8的乘法口诀求商的教学设计板书设计02-27
2018新人教版部编本二年级下册语文口语交际《图书借阅公约》公开03-08
浅析高速公路绿化提升改造04-17
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 二维
- 智能控制
- 建模
- 所学
- 函数
- 面的
- 理论
- 知识
- 教师学习心得体会汇总七篇
- (新)上都保洁管理规范
- 【免费下载】财经法规与会计职业道德讲义
- 分布式与集群的联系与区别
- 北师大版英语高三总复习(课件)作业1高考调研2022一轮总复习
- 补偿器、波纹补偿器、补偿器作用、补偿器安装要求
- 雅思阅读考试高分备考方法-智课教育出国考试
- 【完整版】2022-2025年中国硅矽钢冲压行业转型升级战略制定与实
- 宁波2022继续教育公需课—中国共产党的光辉历程
- 系统集成平台项目详细实施方案-v1.0
- 黑龙江省哈尔滨市第六中学校2022届高三第二次模拟地理试题
- 小学四年级语文:沙漠中的绿洲教学案例
- 初二第一学期第二次月考 英语试卷
- 矮型采煤机说明书.
- 发育期怎么让胸变大 分析怎样能丰胸不花钱1
- 中医古籍大全-医学真传
- (完整版)《马说》理解性默写
- 浙江播音主持艺考培训:你关心的播音主持艺考的问题都在这里
- 2022年内蒙古民族大学医学院306西医综合之生物化学考研冲刺狂背
- 江苏省城市设计导则