⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zp.m

📁 bp神经网络用于函数逼近
💻 M
字号:
%% --------------------------------------------------- 
% 初始化
clc                               %清空命令窗口
clear                             %清空内存
close all                         %关闭所有绘图窗口
%% --------------------------------------------------- 
% 产生训练样本和训练目标
x=linspace(-1,1,11);               %x在[-1,1]范围内按等差数列取11个值
y=linspace(-1,1,11);               %y在[-1,1]范围内按等差数列取11个值
[x,y]=meshgrid(x,y); 
x=x(:)'; y=y(:)';           %x、y各取11个值,产生121个坐标即为训练样本
z=0.5+64*(x-0.5).*(y-0.5).*(x+0.5)./(1+(4*x-2)^2+(4*y-2)^2);
%z=cos(pi*x).*sin(pi*y);            %训练目标
%% --------------------------------------------------- 
% 创建一个前向反馈BP神经网络
net=newff([-1 1;-1 1],[20,30,1],{'tansig','tansig','tansig'});  
net.trainParam.epochs=111;          %最大训练步数
net.trainFcn='trainlm';             %训练算法
net.trainParam.goal=1e-6;           %最小均方误差
net.trainParam.min_grad=1e-8;       %最小梯度
net.trainParam.show=30;             %训练显示间隔
net.trainParam.time=inf;            %最大训练时间
%% --------------------------------------------------- 
% 训练神经网络
[net,tr]=train(net,[x;y],z);  
%% --------------------------------------------------- 
% 产生测试样本并绘制函数预测值曲线
[x2,y2]=meshgrid(-1:.05:1,-1:.05:1); 
x1=x2(:)'; 
y1=y2(:)';                        %产生测试样本
figure; 
z1=sim(net,[x1;y1]);              %测试,输出预测值
z2=reshape(z1,size(x2)); 
surf(x2,y2,z2);                   %绘制预测值曲线
%% --------------------------------------------------- 
% 绘制测试样本的函数真实值曲线
figure; 
[x0,y0]=meshgrid(-1:.05:1,-1:.05:1); 
z0=cos(pi*x0).*sin(pi*y0);                    %计算预测值
surf(x0,y0,z0);                               %绘制真实值曲线
%% --------------------------------------------------- 
%输出测试样本的函数预测值和真实值
z2                                             %输出预测值
z0                                             %输出真实值 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -