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

bp神经网络

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
用bp神经网络确定抽水试验含水层参数。但所求结果与实际相差较大
4 m$ R: K7 k! l9 h& u, b+ gclear all; close all;clc
; A2 @7 c9 Y: a1 q; cload t.txt    %导入数据7 X) R6 G; P: q8 E
load newinput.txt
3 S9 H4 ^9 p( C' ?: Z7 S3 n; t" Y% 随机生成测试和验证数据) o/ Y3 K3 L* l( }6 r, u. M
T = 0.12 + 0.04*rand(1,120)+ u6 |* C2 O" u
U = 0.0002 +0.0001*rand(1,120). y0 H+ s+ k* o3 w5 N

& M/ Z+ j8 O  j8 c# V%根据公式计算求得输入数据6 F% }1 A. m1 f$ l9 b, l

. J2 M9 s' R, L) G8 cM=zeros(18,120)! s3 l' z1 {2 M
for i=1:1206 {: N% {0 h2 U) }2 k6 C! v
    for c=1:18. l- }; a$ v8 G5 O5 I  c; j* d
    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;
$ E% ^; B. p. n7 o% O) }    end; L. w' H5 ]$ `5 Q+ A% k
end
( `5 g7 b: K9 s- d- z: o3 t% P& ]1 {; _3 x' P+ C
data  = [T;U]9 ]! Z- B  H& h" n. t3 n7 _

" e  W/ y# q& j+ \p = M) |7 I& f# M% [
t = data
1 B3 F: f1 k+ A0 H; c8 S% 划分数据,分成测试和验证数据) E3 t' d+ q. F$ O! [% P* A8 f
[trainsample.p,valsample.p,testsample.p] =dividerand(p,0.8,0.15,0.15) ;- |2 W. l- a% k0 i  J- l8 ^6 ?* J- F
[trainsample.t,valsample.t,testsample.t] =dividerand(t,0.8,0.15,0.15);
' \8 u( x1 f% z6 i- {7 ]' s7 K4 }9 E* d; |) x. w* P
% 数据归一化处理
$ r/ k& q2 J5 J# y7 x7 R4 o' b/ q[trainsample.P, ps] = mapminmax(trainsample.p,0,1)
4 E* m) b, a9 O3 o8 s0 x) }testsample.P = mapminmax('apply',testsample.p,ps)
. E% Y# x- m+ r/ [5 T4 n: v[trainsample.T, ts] = mapminmax(trainsample.t, 0,1)( M+ U( b; O" }) t5 y) l- w
$ V4 T: `' ^% B: E
% 初始化网络
0 _  L4 |/ A0 anet = newff(trainsample.P,trainsample.T,[1,27])/ F1 p, K1 c' a) m5 R

7 \! Q+ ]' B! m' r% h% 设置网络参数
+ ?: Z( X$ E9 Dnet.trainParam.epochs = 50000;
% v. P% i" u/ d/ ^+ K$ V  Gnet.trainParam.show=50;2 Q% _) o3 H4 s
net.trainParam.lr = 0.68;# h; E+ c# k2 e- r; B, \, w" q
net.trainParam.goal = 1E-15;! T# G' Q% [7 Q- [
: S6 W7 v8 ?( x
net.traiNFCn='trainbr';7 ?# U4 J  k8 ^1 X. D
[net,tr]=train(net,trainsample.P,trainsample.T);0 Y% N2 ]( }5 k- _6 H, U: c' o

8 W5 w1 U, N; g8 E" S/ ^% 仿真处理
2 I. V1 S# i0 A( h' ?% Up_sim=sim(net,testsample.P);
9 k8 b# U2 Y- q6 }3 n' j3 `P_sim = mapminmax('reverse', p_sim, ts);
! X) M+ M5 \- B
6 X0 K! Y3 q7 l8 ^+ U% 数据预测# M* Z: Q3 @% d
newinput = mapminmax('apply', newinput, ps);1 ?: D! _1 Z! _/ f  C
newOutput = sim(net, newinput);( P' _6 a4 w) q  Z5 R# N2 M
newOutput = mapminmax('reverse',newOutput, ts)
& i; Y1 ]/ m/ w  \4 S2 F* b. r5 g* T6 P! I, l2 i

9 n, X; ]+ L* L9 n
% I+ B( k' L) {( `" P

该用户从未签到

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

该用户从未签到

3#
发表于 2021-3-4 15:53 | 只看该作者
我的理解是:/ f  D/ I9 @( F" B8 n% {
①有一组已知数据来自t.txt,它们是某模型的输入变量;该模型另有参数U和参数T;模型的输出为形如newinput.txt中的数据。; e/ t5 |: D! I% X
②目标是根据实际输出newinput.txt中的数据,拟合得到参数U和参数T的数值。1 M3 r, s# y2 c& p
③实现过程则是,先随机生成一系列的参数U和T,并根据该模型计算得到对应的输出;接着构造一个神经网络,使用前述模型计算输出作为训练的输入,使用参数U和T的数据作为训练的输出,开始进行反馈训练;最后使用经过训练的神经网络,完成目标②。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-20 06:33 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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