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

📄 wnnmisomiso.m

📁 多输入多输出的小波网络模型
💻 M
字号:
clear all%多输入多输出的小波网络模型,需安装matlab神经网络工具箱
%用的是青岛海洋大学学报上那篇论文的模型
n=30; %小波神经元个数
minput=2;
net=network(1,2,[1;0],[1;0],[0,0;1,0],[0,1],[0,1]);%建网

net.layers{1}.size=n
net.layers{2}.size=1 

net.layers{1}.transferFcn = 'kugfcn';%可以替换为其他的小波母函数如: radbasmorlet
net.layers{2}.transferFcn = 'purelin';
net.inputs{1}.size =minput   %minput个输入
%net.inputs{1}.range = [-1,2];%设定函数输入量的范围
net.trainFcn='traingdx' ;
net.adaptfcn='trains';
net.initfcn='initlay';
net.performfcn='rmse';
net.trainParam.epochs=5000;
%net.trainParam.goal=0.0001;%根据需要设定
%net.trainParam.min_grad=1e-22;
net.biases{1}.learnFcn='learngd';

%net.inputweights{1,1}.initfcn='rands'
%net.layerweights{2,1}.initfcn='rands'

net.inputweights{1,1}.learnFcn='learngd';
net.layerweights{2,1}.learnFcn='learngd';

net.layers{1}.initFcn='initwb'
net.layers{2}.initFcn='initwb'


net=init(net);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  网络初始化 设定初始区间

matrixlw=[-1.2/n,1.2/n];

matrixb=[-0.5,0.5];
matrixiw=[-2/minput,2/minput];
x=1.2/n*2;
y=0.5*2;
z=2/minput*2;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[m1,n1]=size(net.iw{1,1});
[m2,n2]=size(net.lw{2,1});
[m3,n3]=size(net.b{1});
iw1=rand(m1,n1);
lw1=rand(m2,n2);
bb=rand(m3,n3);
net.iw{1,1}=z.*iw1;
net.lw{2,1}=x.*lw1;
net.b{1}=y.*bb;
%net=init(net);
%net.b{1}=[0.32;0.5;0.34;0.87;1.08;0.5;0.89;0.3;0.7;1.2;1.3;0.06;1.07;0.3;0.23;2.12;-0.8;-1.6;-0.1;-1.1];
pause%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%输入信号

[xx,yy]=meshgrid(2:0.2:5);   %xx,yy是以矩阵形式存储的必须reshape一下
[m,nn]=size(xx);
xx1=reshape(xx,1,m*nn);
yy1=reshape(yy,1,m*nn);
zz1=miso(xx1,yy1);
T1=reshape(miso(xx,yy),1,m*nn);%miso为需要仿真的多维输入函数
P1=[xx1;yy1];
T=T1;
P=P1;
%[T,minT,maxT]=premnmx(T1);%%%%输入信号的预处理可以不选
%[P,minP,maxP]=premnmx(P1);
%%%%%%%%%%%%%%
[xxy,yyy]=meshgrid(2.05:0.2:5);   %xx
[my,nny]=size(xxy);
xx1y=reshape(xxy,1,my*nny);
yy1y=reshape(yyy,1,my*nny);
zz1y=miso(xx1y,yy1y);
T1y=reshape(miso(xxy,yyy),1,my*nny);
P1y=[xx1y;yy1y];
%[Ty]=tramnmx(T1y,minT,maxT);
%[Py]=tramnmx(P1y,minP,maxP);
val.P=P1y;
val.T=T1y;
%%%%%%%%%%%%%%%%%
net.trainParam.max_fail=1000;
[net,tr]=train(net,P,T);
A22=sim(net,P);
pause

zz3=reshape(A22,m,nn);
mesh(xx,yy,zz3)%%%%输出仿真图象

⌨️ 快捷键说明

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