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

bp神经网络

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
用bp神经网络确定抽水试验含水层参数。但所求结果与实际相差较大& P/ X# R' {! X/ M" g3 Y/ `! e
clear all; close all;clc
! P- K, [9 [( @4 s+ Tload t.txt    %导入数据
) v7 G- Z( G! u+ f* H& n, A$ n+ gload newinput.txt
3 P5 ^9 e2 b* M. O% 随机生成测试和验证数据' ]3 l- s6 m/ L: N) F# ~
T = 0.12 + 0.04*rand(1,120)
: s- X* D2 s6 @7 U! X7 aU = 0.0002 +0.0001*rand(1,120)- Q! l7 j+ K* a

/ }1 A, [& \0 c5 [%根据公式计算求得输入数据. H5 H2 t: a2 X* H! e# {( ], ?9 ~

" m7 p, J8 o& W0 E# ~2 YM=zeros(18,120)' b5 c7 s% @- g4 r  n
for i=1:120: O- L7 V( r/ L1 O
    for c=1:18! a* s1 V) O5 ^0 J6 Y# ], U
    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;
) P1 q! z& [; ~. k    end8 }4 ]1 r3 C2 g4 D1 ^5 H7 t% m
end
$ d; [- ?$ ^0 }/ L7 B3 y3 O9 a- f- w0 L0 _% i1 Y
data  = [T;U]' l; a; P( o) ?- [5 q8 d3 E
/ P. d1 o( `! R: G7 ^% Z
p = M
- P$ E/ k0 q9 F$ ct = data* G0 {+ m' ^- Z2 A
% 划分数据,分成测试和验证数据) L$ Q, D( a( w) [/ B
[trainsample.p,valsample.p,testsample.p] =dividerand(p,0.8,0.15,0.15) ;! U' Z5 p. Z0 I1 X& v- T5 b
[trainsample.t,valsample.t,testsample.t] =dividerand(t,0.8,0.15,0.15);
7 w# z, q/ h! R1 A5 a$ }5 D/ v+ W
) y% y8 p' d. g, E% 数据归一化处理- k, s1 g( X: F7 N+ i
[trainsample.P, ps] = mapminmax(trainsample.p,0,1)
8 x4 ]- s2 ~2 _! t& d5 Ttestsample.P = mapminmax('apply',testsample.p,ps)/ o* Z8 v) i* a. o
[trainsample.T, ts] = mapminmax(trainsample.t, 0,1)
! P; p( i3 t7 [  X7 p/ f/ v" |, t$ \+ o3 r7 N
% 初始化网络$ x- W4 b' T  e( g5 k
net = newff(trainsample.P,trainsample.T,[1,27])$ Z1 z- ^% u* r, i+ g- R
( P8 u" h! w7 ?3 i
% 设置网络参数6 @; E, a. ^8 k- S8 ?* d8 z
net.trainParam.epochs = 50000;! Y0 T' u6 R8 B% o' k% `! m9 v# o
net.trainParam.show=50;6 n, X3 l6 @' a4 g2 @
net.trainParam.lr = 0.68;9 q8 [- L) v$ U$ @* ?6 \
net.trainParam.goal = 1E-15;* |/ u4 Q+ E% G% P: M! G# i

: F. c) e8 Z- b7 onet.traiNFCn='trainbr';
4 P0 K3 x9 G# X( C$ {7 p) c8 k! Z0 H+ J[net,tr]=train(net,trainsample.P,trainsample.T);' t# U; r5 Z) ]
7 [- }( B5 E2 Q( \9 l5 q1 f: T
% 仿真处理5 x$ d9 d, c  _% ^
p_sim=sim(net,testsample.P);" f; O% D, @' L4 h3 H. A0 m: Y
P_sim = mapminmax('reverse', p_sim, ts);
; M" D( o. f  x* }* i0 H6 H  q' L1 g5 \. e- h
% 数据预测
0 ?, [! c2 P& ?' I! j  I8 Y, Cnewinput = mapminmax('apply', newinput, ps);, u0 k6 w3 v7 L/ I9 l3 X- {
newOutput = sim(net, newinput);
. r( M/ U" ?$ l- U" s. RnewOutput = mapminmax('reverse',newOutput, ts)6 ^$ u: S/ ^! I! e5 b% Y( T, E% G  @

1 I- N6 m& U! v, K% d

$ J. b/ l$ |& Q7 y) h2 ~3 g% O
! C0 T2 A/ e( r4 w

该用户从未签到

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

该用户从未签到

3#
发表于 2021-3-4 15:53 | 只看该作者
我的理解是:
+ i# B; s8 ^( p" u: R①有一组已知数据来自t.txt,它们是某模型的输入变量;该模型另有参数U和参数T;模型的输出为形如newinput.txt中的数据。
! u) j" o8 e. Z  g7 Q7 G②目标是根据实际输出newinput.txt中的数据,拟合得到参数U和参数T的数值。
: o  G" o. i3 z- [$ L③实现过程则是,先随机生成一系列的参数U和T,并根据该模型计算得到对应的输出;接着构造一个神经网络,使用前述模型计算输出作为训练的输入,使用参数U和T的数据作为训练的输出,开始进行反馈训练;最后使用经过训练的神经网络,完成目标②。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-23 23:41 , Processed in 0.156250 second(s), 26 queries , Gzip On.

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

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

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