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

bp神经网络

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
用bp神经网络确定抽水试验含水层参数。但所求结果与实际相差较大7 y" K' Q0 |, B5 K$ s* M
clear all; close all;clc- U9 y$ s1 [3 z! c1 d" F
load t.txt    %导入数据9 m0 P1 y$ D* ^6 m1 |( t
load newinput.txt
* m6 e6 G5 }# O  m0 |% K1 w% 随机生成测试和验证数据
' H% z# q( l; l" j# ZT = 0.12 + 0.04*rand(1,120)
  f% t9 M- O9 T+ C  _% U1 W* v9 H' L# TU = 0.0002 +0.0001*rand(1,120)
- z1 s3 z! {; E  f. U
3 f6 r  N2 {; o%根据公式计算求得输入数据' V& P- K- e1 F5 e- m2 X

+ w, z5 I  N' |1 DM=zeros(18,120)
, r" @0 ?' N. b( c' Q- Sfor i=1:120! I* @4 C5 X4 Z: D8 P
    for c=1:18; ]) x' V9 r( F- A- Y2 x1 v* Q$ }
    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;
0 M$ x! u! Q' ~  m    end0 H0 F  z& H* M8 p
end
, c9 U3 Z8 V: G; i( B! a1 _2 ?, g5 s, K
data  = [T;U]
) s1 A, x. P* e: e
' ^% M$ ?9 F: P4 B1 i( x# Sp = M
& |1 x5 w/ d+ H6 o3 gt = data0 `4 y, L. F0 ~
% 划分数据,分成测试和验证数据7 ~5 ^' G. m/ Q0 I- `% |" N# e
[trainsample.p,valsample.p,testsample.p] =dividerand(p,0.8,0.15,0.15) ;
4 X% E& T3 g' ]. t5 {[trainsample.t,valsample.t,testsample.t] =dividerand(t,0.8,0.15,0.15);
% v7 L3 j! ^1 @. f5 X  q4 u/ f! s( K3 C
% 数据归一化处理
  m3 ~& g; f, {[trainsample.P, ps] = mapminmax(trainsample.p,0,1)
: T3 t; Q3 @  k$ w* q# ?4 v$ |testsample.P = mapminmax('apply',testsample.p,ps)$ v5 T1 ]: H! v! V9 K# r* ^- z
[trainsample.T, ts] = mapminmax(trainsample.t, 0,1)
) V, C& G: E0 r( s; L9 x# ~' {4 i8 W* ~: G% h0 \
% 初始化网络
; C5 o4 Z$ l# P, M7 rnet = newff(trainsample.P,trainsample.T,[1,27])
/ x. _2 j7 O7 h# L) v6 z/ \% l+ Y9 d8 t" v" G' j* l, \$ r$ @4 F! U5 u
% 设置网络参数
6 r! f1 _2 T3 Fnet.trainParam.epochs = 50000;9 x+ _7 m+ [% z7 T
net.trainParam.show=50;2 h  k" {$ b: c/ n
net.trainParam.lr = 0.68;$ x9 K" _% o0 M) p+ ~8 a
net.trainParam.goal = 1E-15;
, M" L% c, L& W' S
9 ]: ~0 g9 y( r+ c0 F; M6 Ynet.traiNFCn='trainbr';
0 a" H+ D- ?, R$ {6 I  t[net,tr]=train(net,trainsample.P,trainsample.T);
6 m* C: j- c2 P# k! `0 `* C0 p9 i2 l' T* F8 `. r  @
% 仿真处理1 ?3 k# g# |0 Y; O3 h* x
p_sim=sim(net,testsample.P);
9 C7 T# D1 o6 U6 V7 _: t" u" UP_sim = mapminmax('reverse', p_sim, ts);8 @, k9 j/ l7 K( t6 R, j

: D2 Q4 K: x  x4 W$ v% g, U3 O5 t% 数据预测
1 I( r" P8 L: Y: I& Snewinput = mapminmax('apply', newinput, ps);
# r; J1 t- e/ z  E' k. [" G6 o/ TnewOutput = sim(net, newinput);
0 _& o: a1 E9 MnewOutput = mapminmax('reverse',newOutput, ts): R: n4 |% \& L3 H9 F

) m3 C8 V2 z( h7 P7 v
9 `0 `! Y5 n( t% ^

# U6 n% f1 T% \/ ?( _! {( z. c. i# M

该用户从未签到

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

该用户从未签到

3#
发表于 2021-3-4 15:53 | 只看该作者
我的理解是:
( D8 Q; ^- v9 s/ R. U5 g8 }①有一组已知数据来自t.txt,它们是某模型的输入变量;该模型另有参数U和参数T;模型的输出为形如newinput.txt中的数据。
; G4 Q$ O, Q$ U$ v. h1 u8 _②目标是根据实际输出newinput.txt中的数据,拟合得到参数U和参数T的数值。9 C. p5 }+ W. \! J* w0 H% O* w
③实现过程则是,先随机生成一系列的参数U和T,并根据该模型计算得到对应的输出;接着构造一个神经网络,使用前述模型计算输出作为训练的输入,使用参数U和T的数据作为训练的输出,开始进行反馈训练;最后使用经过训练的神经网络,完成目标②。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-16 09:02 , Processed in 0.078125 second(s), 26 queries , Gzip On.

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

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

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