matlab 有理逼近,BP神经网络函数逼近

模糊神经网络函数逼近

====比较简单,直接贴出来就好

% 利用BP网络实现函数逼近

clear

% NEWFF--生成一个新的前向神经网络

%TRAIN---对BP网络进行训练

% SIM----对BP网络进行仿真

clc

%定义训练样本矢量

%P为输入矢量

P=[-1:0.05:1];

%T为目标矢量

T= sin(2*pi*P)+3*cos(2*pi*P);

%对训练数据进行归一化处理

[Pn,minp,maxp,Tn,mint,maxt]=premnmx(P,T);

clc

%创建BP神经网络

net=newff(minmax(Pn),[15 1],{'tansig','purelin'},'trainbr');

clc

% 设置训练参数

net.performFcn='sse';

net.trainParam.goal=0.0001;

net.trainParam.show=1;

net.trainParam.epochs=15;

net.trainParam.Mu_max=1e-5;

net.trainParam.min_grad=1e-16;

% net.trainParam.mc=0.95;

net.trainParam.mem_reduc=1;

% 重新初始化网络

net=init(net);

% 对BP神经网络进行训练

[net,tr]=train(net,Pn,Tn);

% 对BP神经网络进行仿真分析

Yn=sim(net,Pn);

% 恢复被归一化的数据

[Y]=postmnmx(Yn,mint,maxt);

%计算均方误差

E=T-Y;

MSE=mse(E);

clc

%画图描绘仿真结果

figure;

plot(P,T,'r+',P,Y,'b-');

axis([-1 1 -5 5]);

title('BP神经网络的函数逼近结果');

xlabel('输入');

ylabel('输出');

legend('训练样本数据','神经网络仿真',1);

grid on;

%用未经训练的数据对训练成功的BP网络进行验证测试

p1=[-0.9:0.3:0.9];

t1=sin(2*pi*p1)+3*cos(2*pi*p1);

%对测试数据进行归一化处理

%tramnmx:利用预先计算的最大和最小值对数据进行变换

p1n=tramnmx(p1,minp,maxp);

%对变换后的测试数据进行仿真

yn=sim(net,p1n);

% 将仿真结果还原成原始数据

[y]=postmnmx(yn,mint,maxt);

figure;

plot(p1,t1,'r+');

hold on;

plot(p1,y,'b.');

axis([-1 1 -5 5]);

title('BP神经网络的函数逼近结果检验');

xlabel('输入');

ylabel('输出');

legend('测试样本数据','神经网络仿真',1);

[本帖最后由 robin1 于 2008-12-4 13:25 编辑]

f5c3d56501a3d0261ce0cb81cbf824a7.gif

2008-12-4 10:41 上传

点击文件名下载附件

1.56 KB, 下载次数: 18971

模糊神经网络函数逼近

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值