基于遗传算法与神经网络的测井预测(Matlab代码实现)

 👨‍🎓个人主页:研学社的博客 

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

传统的测井解释需要建立精确的数学模型,并常伴有严格的条件限制,因此很难得到真实反映储层特性的结果。采用遗传算法与BP神经网络相结合,利用遗传算法的全局寻优特点,优化神经网络的连接权值和阀值,提高网络的训练精度和预测精度,避免了BP算法易陷入局部极小的缺点,提高运算速度。将相似度的概念引入到测井中,定义相似度在测井中的计算公式,提出相似度与遗传神经网络相结合的方法。实例研究表明,预测准确性较高,可以有效控制预测精度,避免因储层差别大而造成的预测精度降低的现象。 

📚2 运行结果

 

 部分代码:

data=importdata('ikpikpuk Ivishak fm_test.txt')
%sesuaikan nama formasi /Kingak/Shublik/Ivishak
ft=data(:,1)
DEPT=0.3048.*ft
GR=data(:,6)
SP=data(:,2)
CALI=data(:,7) 
ILD=data(:,3)
ILM=data(:,4)
LL8=data(:,5)
DT=data(:,11)
RHOB=data(:,8)
NPHI=data(:,10)
DRHO=data(:,9)


vp=304800./DT


y=vp_reference
nv=8; %jumlah unknown parameter
x=DEPT_reference';
np=150; % ukuran populasi awal
ns=75; %jumlah individu survive
cm=0.5; %peluang mutasi


maxiter=100; %maximum generasi/iterasi
average=0; % average distribusi normal
std=4; %standar deviasi distribusi normal

%membuat populasi dari kumpulan parameter
a1_pop=normrnd(average,std,[1,np]); 
b1_pop=normrnd(average,std,[1,np]);  
a2_pop=normrnd(average,std,[1,np]);   
b2_pop=normrnd(average,std,[1,np]);
a3_pop=normrnd(average,std,[1,np]);
b3_pop=normrnd(average,std,[1,np]);
a4_pop=normrnd(average,std,[1,np]);
b4_pop=normrnd(average,std,[1,np]);


a1_popawal=a1_pop'
b1_popawal=b1_pop'
a2_popawal=a2_pop'
b2_popawal=b2_pop'
a3_popawal=a3_pop'
b3_popawal=b3_pop'
a4_popawal=a4_pop'
b4_popawal=b4_pop'


fx=zeros(2,np);
fx(2,:)=1:1:np;
prob=zeros(1,ns);

errplot=zeros(1,maxiter);

for iter=1:maxiter

%hitung fitness tiap populasi
for i=1:np 
a1=a1_pop(i);
b1=b1_pop(i);
a2=a2_pop(i);
b2=b2_pop(i);
a3=a3_pop(i);
b3=b3_pop(i);
a4=a4_pop(i);
b4=b4_pop(i);

y1=a1.*DEPT_reference.^b1+a2.*GR_reference.^b2+a3.*RHOB_reference.^b3+a4.*ILD_reference.^b4;
fx(1,i)=immse(y,y1); %fitness MSE 
end

[Y,I]=sort(fx(1,:),2,'ascend'); %memilih best candidate yg bakal survive
best=fx(:,I); 
prob=zeros(1,ns);

%clearing variable
a1_pop0=a1_pop;
b1_pop0=b1_pop;
a2_pop0=a2_pop;
b2_pop0=b2_pop;
a3_pop0=a3_pop;
b3_pop0=b3_pop;
a4_pop0=a4_pop;
b4_pop0=b4_pop;

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]杜宇,潘遥.基于GA-BP神经网络岩石可钻性预测模型[J].科学技术创新,2020(25):57-59.

🌈4 Matlab代码实现

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荔枝科研社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值