找回密码
 注册
关于网站域名变更的通知
查看: 586|回复: 3
打印 上一主题 下一主题

bp神经网络

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-3-4 13:23 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
用bp神经网络确定抽水试验含水层参数。但所求结果与实际相差较大$ k/ u- y8 Q4 f0 L
clear all; close all;clc
# R) }- I2 p" x* M- [load t.txt    %导入数据" k- [5 K) ~6 ?1 |9 T4 z
load newinput.txt
9 o8 I* N" T7 _( p! C% 随机生成测试和验证数据" \9 T8 m- N  L/ p$ o" m4 H
T = 0.12 + 0.04*rand(1,120)
% V  U4 r9 D) w: [2 `, NU = 0.0002 +0.0001*rand(1,120)
* |( Y+ y* H/ I: m4 S' n3 M2 A7 }
3 Y7 {6 p4 p& s%根据公式计算求得输入数据" [  [" p" ?$ i+ @- c; Y8 D' {
+ a* Y  `% n, f) t# l! t6 |
M=zeros(18,120)3 K0 y# m/ A% t) @
for i=1:120
6 S, ]7 K9 t' d$ o3 z4 n+ y2 _3 |/ i    for c=1:18$ m5 W9 S& ?6 X5 s9 c( c
    m=43*43*U(1,i)/4/T(1,i)/t(c,1);n=-0.577216-log(m)+m;s=1*n/4/T(1,i )/pi;M(c,i)=s;  C, x' y6 C+ N; Q
    end
/ m" n9 ]% I4 S- H9 Send
4 k# G* n8 C7 S" t, {9 w; w2 _. E) f  U" z
data  = [T;U]
2 C3 H6 J& c& _- V; _' ?5 o1 m& p4 v2 V, l, f5 d9 Q
p = M
/ s( |- s6 d& |. H( n# [, C# Mt = data
/ y& ~! f5 k# Y# \% 划分数据,分成测试和验证数据
4 o: p+ g1 X: T1 E8 \[trainsample.p,valsample.p,testsample.p] =dividerand(p,0.8,0.15,0.15) ;
  G4 ]& o6 w+ g" A+ I[trainsample.t,valsample.t,testsample.t] =dividerand(t,0.8,0.15,0.15);" Q$ D4 p: r" c) G0 F! _+ n4 }, C$ G

/ i$ Z* x6 r9 g, E* r* ~% 数据归一化处理
7 B0 A4 t' y, E/ m4 [0 N$ ~- p[trainsample.P, ps] = mapminmax(trainsample.p,0,1)
! X- t2 ^5 `* Wtestsample.P = mapminmax('apply',testsample.p,ps)
0 E( W& _$ w# K& m. x[trainsample.T, ts] = mapminmax(trainsample.t, 0,1)( L9 M9 ]0 I' C( O, C' T& @

* g- M. V9 C9 A" Y$ ~- i& U& D% 初始化网络: B( }4 w. _  V4 Z0 U
net = newff(trainsample.P,trainsample.T,[1,27])
4 r- T2 J; x. J: M2 `' A1 x: }9 e- R7 s: J+ s- ?% ~
% 设置网络参数
2 D! L) m4 p" D& o- onet.trainParam.epochs = 50000;
5 D! R! Q' ]3 K% r  Snet.trainParam.show=50;4 l1 Q6 |: [* I& F* i9 H! T
net.trainParam.lr = 0.68;
2 f+ l$ `1 D( Ynet.trainParam.goal = 1E-15;
/ y+ T. |+ S$ s6 _
, X& I6 Y- Q: p+ a5 `8 n/ F$ Wnet.traiNFCn='trainbr';
( x8 o( `% D7 ?6 [  [$ I3 L[net,tr]=train(net,trainsample.P,trainsample.T);
" }  H9 t) ^: L! r) p* P1 j
; g( e; Y+ H# W+ Z- ?. S% 仿真处理
% Q0 K1 @/ E2 ^# w( f. ~: Lp_sim=sim(net,testsample.P);
9 k8 m5 w6 a) W6 B8 W2 [9 d/ lP_sim = mapminmax('reverse', p_sim, ts);% r) ^7 S; o3 o# B( m

( U# e7 h9 w6 C% }# p2 L% 数据预测
4 w( d$ H2 p6 X) `$ Y- Z; pnewinput = mapminmax('apply', newinput, ps);* l. }- l$ Y; M" D
newOutput = sim(net, newinput);
% A6 v0 q9 R+ Y3 F5 U! n- NnewOutput = mapminmax('reverse',newOutput, ts)
: x# L6 W5 l' i/ M7 j% W- i2 b& q4 Y5 i, ?6 S; C

1 A; t2 [* q$ f  O, l) v% ^
- r- E7 Y/ q" v/ b, t) b

该用户从未签到

2#
发表于 2021-3-4 13:33 | 只看该作者
帮你顶一下

该用户从未签到

3#
发表于 2021-3-4 15:53 | 只看该作者
我的理解是:1 x, b0 {1 J* n  T, t2 c
①有一组已知数据来自t.txt,它们是某模型的输入变量;该模型另有参数U和参数T;模型的输出为形如newinput.txt中的数据。" C- }; _* [/ ~( S4 V
②目标是根据实际输出newinput.txt中的数据,拟合得到参数U和参数T的数值。
2 h  Q: P; n) P) F- f+ L& ^7 q③实现过程则是,先随机生成一系列的参数U和T,并根据该模型计算得到对应的输出;接着构造一个神经网络,使用前述模型计算输出作为训练的输入,使用参数U和T的数据作为训练的输出,开始进行反馈训练;最后使用经过训练的神经网络,完成目标②。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-11 17:03 , Processed in 0.140625 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表