比较研究测井预测:遗传算法与神经网络(Matlab代码实现)

news2024/11/28 4:51:24

 🍒🍒🍒欢迎关注🌈🌈🌈

📝个人主页:我爱Matlab


👍点赞➕评论➕收藏 == 养成习惯(一键三连)🌻🌻🌻

🍌希望大家多多支持🍓~一起加油 🤗

💬语录:将来的我一定会感谢现在奋斗的自己!

🍁🥬🕒摘要🕒🥬🍁

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

✨🔎⚡运行结果⚡🔎✨

 ​

 

 

 

 

 

 

💂♨️👨‍🎓Matlab代码👨‍🎓♨️💂

clear
clc
close all 


data_reference=importdata('ikpikpuk Ivishak fm_reference.txt') 
%sesuaikan dengan nama formasi /Kingak/Shublik/Ivishak
ft_reference=data_reference(:,1)
DEPT_reference=0.3048.*ft_reference
GR_reference=data_reference(:,6)
SP_reference=data_reference(:,2)
CALI_reference=data_reference(:,7) 
ILD_reference=data_reference(:,3)
ILM_reference=data_reference(:,4)
LL8_reference=data_reference(:,5)
DT_reference=data_reference(:,11)
RHOB_reference=data_reference(:,8)
NPHI_reference=data_reference(:,10)
DRHO_reference=data_reference(:,9)

vp_reference=304800./DT_reference


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;


*b2_pop(pick1);
    beta=rand(1);
    b2_pop(i+1)=(1-beta)*b2_pop(pick1)+beta*b2_pop(pick2);
    beta=rand(1);
    a3_pop(i)=(1-beta)*a3_pop(pick2)+beta*a3_pop(pick1);
    beta=rand(1);
    a3_pop(i+1)=(1-beta)*a3_pop(pick1)+beta*a3_pop(pick2);
    beta=rand(1);
    b3_pop(i)=(1-beta)*b3_pop(pick2)+beta*b3_pop(pick1);    
    beta=rand(1);
    b3_pop(i+1)=(1-beta)*b3_pop(pick1)+beta*b3_pop(pick2);
    beta=rand(1);
    a4_pop(i)=(1-beta)*a4_pop(pick2)+beta*a4_pop(pick1);
    beta=rand(1);
    a4_pop(i+1)=(1-beta)*a4_pop(pick1)+beta*a4_pop(pick2);
    beta=rand(1);
    b4_pop(i)=(1-beta)*b4_pop(pick2)+beta*b4_pop(pick1);
    beta=rand(1);
    b4_pop(i+1)=(1-beta)*b4_pop(pick1)+beta*b4_pop(pick2);

  完整代码:比较研究测井预测:遗传算法与神经网络

📜📢🌈参考文献🌈📢📜

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/26916.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

day071:网络编程(IP、端口、协议)、InetAddress类、UDP协议、TCP协议

目录 一、网络编程 1.网络编程三要素 2.IP地址 (1)IP地址(每台计算机指定的标识号) (2)类InetAddress:方便对IP地址获取和操作;此类表示Internet(IP)地址 3.端口&am…

LVS+Keepalived高可用群集

目录 一、keepalived简介 二、keepalived工作原理 三、LVS-DR模式keepalived 高可用集群部署 1、部署2台web服务器 2、部署2台负载调度器 四、总结 一、keepalived简介 Keepalived是通过vrrp 协议的实现高可用性,对网络比较了解的IT人,对这个技术应…

[操作系统笔记]调度与死锁杂项知识点

部分定义截取自书本 管态和目态 这说的是处理机的执行状态 管态又称为特权态,系统态,核心态。CPU在管态下可以执行指令系统的全集。如果程序处于管态,则该程序可以访问计算机的任何资源,它的资源访问权限不受限制,通常…

iOS16 中的 3 种新字体宽度样式

前言 在 iOS 16 中,Apple 引入了三种新的宽度样式字体到 SF 字体库。 Compressed Condensed Expend UIFont.Width Apple 引入了新的结构体 UIFont.Width,这代表了一种新的宽度样式。 目前已有的四种样式。 standard:我们总是使用的默认…

centos安装nacos

一、安装JDK环境和MySQL环境 jdk环境安装:centos安装jdk1.8_java-zh的博客-CSDN博客 MySQL环境安装:centos安装mysql5.7_java-zh的博客-CSDN博客 二、拉取nacos项目 GitHub主页:https://github.com/alibaba/nacos GitHub的Release下载页:https://…

ClickHouse教程 — 第一章 ClickHouse单机版安装

ClickHouse教程 — 第一章 ClickHouse单机版安装1 版本区别1.1 clickhouse-client-21.1.9.41以上版本1.2 clickhouse-client-21.1.9.41以下版本2 clickhouse-client-21.1.9.41以上版本2.1 下载2.2 解压安装2.3 启动2.4 clickhouse相关目录2.5 允许远程访问3 clickhouse-client-…

应用地球物理+AI:智能地球勘探

《地球物理人工之智能和信息前沿技术学术报告会》 主讲人:陆文凯 1. 地球物理学 地球科学的主要学科之一,是通过定量的物理方法(如:地震、重、磁、电、测井、地热和放射能等方法)研究地球以及寻找地球内部矿藏资源的一…

TD集群内存占用过高

1 TD简介 TDengine 是一款开源、云原生的时序数据库,专为物联网、工业互联网、金融、IT运维监控等场景设计并优化。它能让大量设备、数据采集器每天产生的高达 TB 甚至 PB级的数据得到高效实时的处理,对业务的运行状态进行实时的监测、预警,从…

pyinstaller打包记录|| 打包成功,含xgboost打包遇到的问题

文章目录1 requirements.txt2 项目介绍3 matplotlib的问题4 xgboost打包遇到的问题4.1 解决办法:5 总结流程5.1 打开命令行5.2 键入打包指令5.3 执行文件5.4 双击exe运行1 requirements.txt python3.6.15tensorflow-cpu2.2.0 netCDF41.5.6 Keras2.3.1 pandas1.0.3 …

盘点 | 云原生峰会重磅发布

11 月 5 日,2022 杭州云栖大会上,阿里巴巴研究员、阿里云智能云原生应用平台总经理丁宇在云原生峰会上发表主题演讲,提出云原生激活应用构建新范式。在分享中发布阿里云在云原生领域多款新产品与全新升级,持续引领行业云原生技术趋…

交通大数据应用场景——高速落地检

自11月11日进一步优化疫情防控二十条措施发布以来,国内各地针对核酸检测、人员管控等防控重点领域,陆续出台相关调整政策,进一步提高疫情防控的科学性、精准性、有效性。 “躺平”不可取,“躺赢”不可能,优化疫情防控…

【云原生 | Kubernetes 系列】--Gitops持续交付 ArgoCD自动同步策略

1. ArgoCD自动同步策略 自动同步策略允许ArgoCD在检测到GitRepo与实际状态之间存在差异时,自动启动同步操作. Prune Resource(自动修剪):在集群上某个资源在GitRepo中找不到对应的配置时,自动删除集群上的该资源 Self Heal(自愈): 因各种原因(如手动修改)集群上资源的实时状态…

艾美捷nickases-Cas9内切酶裂解试验展示

核酸内切酶(endonuclease)在核酸水解酶中,为可水解分子链内部磷酸二酯键生成寡核苷酸的酶,与核酸外切酶相对应。从对底物的特异性来看,可分为DNaseⅠ、DNaseⅡ等分解DNA的酶;RNase、RNaseT1等分解RNA的酶。…

ETF轮动+RSRS择时,加上卡曼滤波:年化48.41%,夏普比1.89

原创文章第112篇,专注“个人成长与财富自由、世界运作的逻辑, AI量化投资”。 昨天我们设计了一个不错的策略:etf动量轮动大盘择时:年化30%的策略。ETF动量轮动RSRS择时,动量其实一直都有效,如何定义动量可…

java图形验证码到底是怎么生成的?

真正的大师,永远都怀着一颗学徒的心! 一、项目简介 java图形验证码到底是怎么生成的?支持中文、gif、算术等类型 二、实现功能 支持gradle方式的引入 支持maven方式引入 支持jar包下载 支持10种漂亮的内置字体,不依赖系统字体 支持输出…

Codeforces Round #835 (Div. 4) A~G

比赛链接&#xff1a;https://codeforces.com/contest/1760 A. Medium Number 题目大意&#xff1a; t组测试&#xff0c;每组给三个数求中位数。 代码&#xff1a; #include<bits/stdc.h> #define rep(i,a,b) for (register int ia;i<b;i) #define per(i,a,b) …

无人驾驶(二)---室外导航之RTK配置与接入及GPS与UTM坐标转换

1. RTK 概述 RTK 载波相位差分技术&#xff0c;是实时处理两个测量站载波相位观测量的差分方法&#xff0c;将基准站采集的载波相位发给用户接收机&#xff0c;进行求差解算坐标。一般包含流动站 (移动站) 和基准站 (基站) 。本文中RTK定位采用千寻定位&#xff0c; 参考的也是…

39Java System类

目录 System类 1.定义 2.预备知识 3.常用方法 (1).currentTimeMillis返回系统时间 (2).exit终止虚拟机 (3).arraycopy拷贝数组 System类 1.定义 Java System类是一个提供与系统相关的方法 System类所在包为java.lang包&#xff0c;因此在使用的时候不需要进行导包。并且Sy…

外汇天眼:FCA 已向交易应用程序运营商发出警告,要求其停止交易游戏化

英国市场监管机构希望交易应用程序开发商重新考虑关键设计元素。 根据新的研究&#xff0c;游戏化可能会导致类似赌博的行为。 负责监管英国金融市场的金融行为监管局 ( FCA )周一发布了有关交易应用程序设计的市场警告。金融业监管机构担心零售交易越来越像一场游戏&#xff…

A. Row GCD(更相减损术+gcd的性质)

Problem - 1458A - Codeforces 给你两个正整数序列a1,...,an和b1,...,bm。对于每个j1,...,m&#xff0c;求a1bj,...,anbj的最大公除数。 输入 第一行包含两个整数n和m&#xff08;1≤n&#xff0c;m≤2⋅105&#xff09;。 第二行包含n个整数a1,...,an&#xff08;1≤ai≤101…