小波神经网络的matlab程序

clcclear%step1=========================%定义输入样本;t=0:0.01:1.5;x=-sin(2*pi*t);targ=[0011... clc
clear
%step 1=========================
%定义输入样本;
t=0:0.01:1.5;
x=-sin(2*pi*t);
targ=[0 0 1 1 0 0 ];
eta=0.02;aerfa=0.935;
%初始化连接权wjh(输出层和隐层的连接权);whi(隐层和输出层的连接权);
%假设小波函数节点数为:H个;样本数为P;
%输出节点数为:J个;输入节点数为:I个;
H=15;P=1;
I=length(t);
J=length(targ);
%初始化小波参数
b=rand(H,1);
a=rand(H,1);
%初始化权系数;
whi=rand(I,H);
wjh=rand(H,J);
%阈值初始化;
b1=rand(H,1);
b2=rand(J,1);
p=0;
%保存的误差;
Err_NetOut=[];
flag=1;count=0;
while flag>0
flag=0;
count=count+1;

%step 2=================================
xhp1=0;
for h=1:H
for i=1:I
xhp1=xhp1+whi(i,h)*x(i);
end
ixhp(h)=xhp1+b1(h);
xhp1=0;
end
for h=1:H
oxhp(h)=fai((ixhp(h)-b(h))/a(h));
end
%step 3====================================
ixjp1=0;
for j=1:J
for h=1:H
ixjp1=ixjp1+wjh(h,j)*oxhp(h);
end
ixjp(j)=ixjp1+b2(j);
ixjp1=0;
end
for i=1:J
oxjp(i)=fnn(ixjp(i));
end
%step 6==保存每次误差=====
wuchayy=1/2*sumsqr(oxjp-targ);
%E_x=1/2*sumsqr(x);
Err_NetOut=[Err_NetOut wuchayy];%保存每次的误差;
%Err_rate=Err_NetOut/E_x;

%Err_rate

%oxjp

%求detaj ,detab2==================================
for j=1:J
detaj(j)=-(oxjp(j)-targ(j))*oxjp(j)*(1-oxjp(j));
end

for j=1:J
for h=1:H
detawjh(h,j)=eta*detaj(j)*oxhp(h);
end
end
detab2=eta*detaj;

%求detah, detawhi detab1 detab detaa;========================

sum=0;
for h=1:H
for j=1:J
sum=detaj(j)*wjh(h,j)*diffai((ixhp(h)-b(h))/a(h))/a(h)+sum;
end
detah(h)=sum;
sum=0;
end
for h=1:H
for i=1:I
detawhi(i,h)=eta*detah(h)*x(i);
end
end
detab1=eta*detah;
detab=-eta*detah;
for h=1:H
detaa(h)=-eta*detah(h)*((ixhp(h)-b(h))/a(h));
end

%引入动量因子aerfa,修正各个系数==========================================
wjh=wjh+(1+aerfa)*detawjh;
whi=whi+(1+aerfa)*detawhi;
a=a+(1+aerfa)*detaa';
b=b+(1+aerfa)*detab';
b1=b1+(1+aerfa)*detab1';
b2=b2+(1+aerfa)*detab2';

%======================================================
%引入修正算法!!

%判断所有的样本是否计算完==================================
p=p+1;
if p~=P
flag=flag+1;
else
if Err_NetOut(end)>0.05
flag=flag+1;

else
figure;
plot(Err_NetOut);
title('误差曲线');
disp('目标达到');
%disp(oxjp);
end
end
if count>2000
figure;
plot(Err_NetOut);
title('误差曲线');
disp('目标未达到');
disp(oxjp);
break;
end
end
以上是小波神经网络的matlab源程序,麻烦高手帮忙改一下是输入样本为t=[0.096 0.131 0.094;
0.131 0.094 0.125;
0.094 0.125 0.122;
0.122 0.106 0.123;
0.106 0.123 0.117;
0.123 0.117 0.100;
0.100 0.145 0.120;
0.145 0.120 0.119;
0.120 0.119 0.112;
0.112 0.105 0.095;
0.105 0.095 0.091;
0.095 0.091 0.082;
0.082 0.104 0.099;
0.104 0.099 0.106;
0.099 0.106 0.085;
0.085 0.085 0.084]'; 输出样本为targ=[0.125 0.122 0.106 0.117 0.100 0.145 0.119 0.112 0.105 0.091 0.082 0.104 0.106 0.085 0.085 0.083]; 我对这个程序不是很理解,改了老长时间改不对,请高手指点一下!
展开
 我来答
我行我素850915
2017-09-20 · TA获得超过8241个赞
知道大有可为答主
回答量:5788
采纳率:77%
帮助的人:1744万
展开全部
你这个程序错处较多,如fai,fnn,oxhp,没有定义,不能运行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
DFRobot
2024-11-10 广告
图形化编程是一种直观的编程方式,它通过拖拽图形化的编程积木来构建程序,降低了编程的学习门槛。在上海智位机器人股份有限公司,我们致力于将图形化编程应用于机器人教育等领域,使学习者能够以更加轻松、有趣的方式掌握编程技能。我们的图形化编程平台界面... 点击进入详情页
本回答由DFRobot提供
wyq17008
2010-10-12
知道答主
回答量:27
采纳率:0%
帮助的人:13万
展开全部
你只要把输入输出给搞清楚就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友eaf790c
2015-05-13
知道答主
回答量:36
采纳率:0%
帮助的人:13.5万
展开全部
请问你有小波神经网络的matlab代码吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式