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

bp神经网络

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
用bp神经网络确定抽水试验含水层参数。但所求结果与实际相差较大: z9 j2 `* H$ t! @  t
clear all; close all;clc
8 T# ^. I; r9 U3 wload t.txt    %导入数据# m. w5 \0 B+ \8 f3 w8 f8 b) p6 [
load newinput.txt2 F, n" c8 Z7 k( ?* E
% 随机生成测试和验证数据- W8 `$ t+ l: ^1 b
T = 0.12 + 0.04*rand(1,120)
( R% N. _$ [, H/ P" H, `U = 0.0002 +0.0001*rand(1,120)
& Q0 f% ^4 t! u) K! @. I$ v8 O' [) a& `+ G/ \$ p7 M
%根据公式计算求得输入数据
4 X! i* k7 b/ B( C7 J
" w1 @2 W2 c' Q1 t2 n4 I) aM=zeros(18,120)7 z) q/ r! y( w* O1 @
for i=1:1202 {( @/ e; K# u' T- K4 F
    for c=1:18
& b4 L: r/ \' q7 P1 T- N0 ~- `) 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;) I3 X. z4 D% o% v4 J
    end
! k: I4 b4 T( |end
4 y/ k$ Y1 t0 p% X9 o6 m7 U6 [( y8 q2 Z; m; x" Z
data  = [T;U]
2 w3 A! g& A# h- L* y. u! |0 j. W! o5 Y9 V$ l2 n9 g8 u$ ?
p = M  J! K7 |, c* d" p* H& a& K
t = data
% D4 ?6 L' @$ }4 D" J- ~% 划分数据,分成测试和验证数据* }8 V* s6 `8 d3 U9 [
[trainsample.p,valsample.p,testsample.p] =dividerand(p,0.8,0.15,0.15) ;
6 R5 [- S* q$ F[trainsample.t,valsample.t,testsample.t] =dividerand(t,0.8,0.15,0.15);- G, i5 X' `% k) b8 \9 {0 e
9 f1 R/ A. b8 T6 H1 O) K! U
% 数据归一化处理2 b6 \& j& m1 a2 }/ v
[trainsample.P, ps] = mapminmax(trainsample.p,0,1): j3 n( j# N# _8 m# o
testsample.P = mapminmax('apply',testsample.p,ps)
4 Q/ x8 c) ]3 z+ }/ n+ \[trainsample.T, ts] = mapminmax(trainsample.t, 0,1)6 D: i$ A( o) b. B" n" R

, X& D  X( G# y) C+ f% 初始化网络
$ o" H% F# m) K! J! `3 c; fnet = newff(trainsample.P,trainsample.T,[1,27]), G9 K8 ~9 a. f  z6 X

& j* l6 L1 ^8 s0 ?$ e" U- B6 D% 设置网络参数9 h# q3 I5 i& C. H# y
net.trainParam.epochs = 50000;/ D9 z- C2 p# N1 c5 c  J
net.trainParam.show=50;
, U0 w9 I0 H; [# I% i$ I9 {net.trainParam.lr = 0.68;
5 }& g# C# H5 j0 `* a5 anet.trainParam.goal = 1E-15;
- i$ \. H% |! c" z: }6 V+ L! e5 r3 a! q
net.traiNFCn='trainbr';( \4 N8 k& z. Z+ B
[net,tr]=train(net,trainsample.P,trainsample.T);# ?* r1 R- I8 T$ ?! m3 k
" H3 x9 o, m2 Y; E! s/ f* k
% 仿真处理; X' Y6 q  d. x% d6 |& A
p_sim=sim(net,testsample.P);9 ]- y; ^; f3 }: E( u) ^. E/ u; o
P_sim = mapminmax('reverse', p_sim, ts);4 V/ [7 c% k; ^! h
/ m& E' p0 |1 a/ j/ B- O' n! w
% 数据预测
6 ?' u, t# F1 Y: t6 K0 ~  D; [' T9 onewinput = mapminmax('apply', newinput, ps);
) G1 n+ o- R# J8 Z$ RnewOutput = sim(net, newinput);
& D& i% {9 P% O9 i$ I6 ^+ U. \newOutput = mapminmax('reverse',newOutput, ts)
+ D  o" M1 T$ T- w5 ^+ x" S; @% }( K3 g* m+ Z
% q9 `- c' L3 E8 T# y2 [
# b0 b/ q6 E& E1 u3 ]) J- L- B( o- Y

该用户从未签到

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

该用户从未签到

3#
发表于 2021-3-4 15:53 | 只看该作者
我的理解是:
, X5 r0 o5 b9 T①有一组已知数据来自t.txt,它们是某模型的输入变量;该模型另有参数U和参数T;模型的输出为形如newinput.txt中的数据。
  f# }1 F7 z; f# R6 i- ^②目标是根据实际输出newinput.txt中的数据,拟合得到参数U和参数T的数值。4 w7 [7 `9 s: f$ N6 o6 e: d
③实现过程则是,先随机生成一系列的参数U和T,并根据该模型计算得到对应的输出;接着构造一个神经网络,使用前述模型计算输出作为训练的输入,使用参数U和T的数据作为训练的输出,开始进行反馈训练;最后使用经过训练的神经网络,完成目标②。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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