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

news2024/11/26 10:49:29

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

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

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

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

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

目录

💥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代码实现

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

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

相关文章

【序列召回推荐】(task4)多兴趣召回MIND模型

note Hinton在2011年提出的capsule network,通过EM期望值最大化算法,用动态路由代替反向传播进行更新参数,学习不同capsule之间的连接权重,实现比CNN更优秀的空间关系建模效果(CNN可能对同一个图像的旋转版本识别错误…

Java笔记(十四)

文献种类:专题技术总结文献 开发工具与关键技术: IntelliJ IDEA、Java 语言 作者: 方建恒 年级: 2020 撰写时间: 2022 年 11 月 28 日 Java笔记(十四) 今天我给大家继续分享一下我的Java笔记, 我们继续来…

终于读完了阿里云p9专家分享云原生Kubernetes全栈架构师实战文档

都说程序员工资高、待遇好, 2022 金九银十到了,你的小目标是 30K、40K,还是 16薪的 20K?作为一名 Java 开发工程师,当能力可以满足公司业务需求时,拿到超预期的 Offer 并不算难。然而,提升 Java…

Linux便捷操作

1. Tab 这是你不能没有的 Linux 快捷键。它将节省你 Linux 命令行中的大量时间。 只需要输入一个命令,文件名,目录名甚至是命令选项的开头,并敲击 tab 键。它将自动完成你输入的内容,或为你显示全部可能的结果。 如果你只记一个…

中国住宅设施杂志中国住宅设施杂志社中国住宅设施编辑部2022年第9期目录

景观园林《中国住宅设施》投稿:cnqikantg126.com 市政园林景观工程施工项目管理的基本方法与措施 蒋伟;刘巍;张辉; 1-3 低成本风景园林设计与相关问题分析 魏小静; 4-6 城市文化公园景观设计探究——以临夏河州牡丹文化公园为例 姜丽; 7-9 建筑设计 …

一文读懂:低代码和无代码的演进历程、应用范围

低代码和无代码技术的演进发展 整个软件开发的演进路径大致可以分为四个阶段:第一代程序设计语言;第二代是汇编语言;第三代是现在常见的高级语言,比如 Python、Java 等;第四代就是低代码和无代码技术。低代码、无代码…

Pro_11丨跟踪+目标出场自适应切换

量化策略开发,高质量社群,交易思路分享等相关内容 『正文』 ˇ 大家好,今天我们分享第11期策略——跟踪目标出场自适应切换策略。本期策略是2022年度倒数第2期策略,2023年度松鼠俱乐部内容会更加丰富,12月出预告敬请…

【Vagrant】使用 Vagrant 快速创建多台 centos7 虚拟机

问题场景: 最近在学习数据库的主从复制,因此需要安装两个虚拟机,一个放主数据库,一个放从数据库(不会用 Docker ,咱就多搭几个虚拟机吧 ),因此记录使用 Vagrant 快速搭建两个 CentOS 7 的教程&a…

Python海龟turtle基础知识大全与画图集合

Turtle图形库 Turtle 库是 Python 内置的图形化模块,属于标准库之一,位于 Python 安装目录的 lib 文件夹下,常用函数有以下几种: 一.Turtle绘图的基础知识 画布是turtle用于绘图区域,我们可以设置它的大小和初始位置。…

使用支持向量机的基于异常的入侵检测系统

使用支持向量机的基于异常的入侵检测系统使用支持向量机的基于异常的入侵检测系统学习目标:学习内容:1.⼀种智能⼊侵检测系统第⼀阶段第⼆阶段:分类总结2.使用支持向量机的基于异常的入侵检测系统1.预处理入侵数据集2.基于信息增益的特征排名…

c++ CJsonObject 读写json

CJsonObject简介 CJsonObject是Bwar基于cJSON全新开发一个C版的JSON库,CJsonObject的最大优势是简单、轻量、跨平台,开发效率极高,尤其对多层嵌套json的读取和生成、修改极为方便。CJsonObject比cJSON简单易用得多,且只要不是有意…

Linux —— 文件操作

目录 1.内核提供的文件系统调用 1.1open和close 1.2write和read 2.文件描述 2.1文件描述符 2.2文件描述符分配规则 3.重定向 3.1最“挫”的重定向 3.2使用系统调用 3.3重定向原理 3.4让我们的"shell"支持重定向操作 4.一切皆文件 1.内核提供的文件系统调用…

什么是杜邦分析?杜邦分析法的公式及示例

什么是杜邦分析? 杜邦分析也称为杜邦恒等式、杜邦方程、杜邦框架、杜邦模型或杜邦方法,是一个多步骤的财务方程式,可以深入了解企业的基本绩效。杜邦模型对影响公司股本回报率 (ROE) 的关键指标进行了全面分析。杜邦分析的另一个术语是杜邦模型。这些名…

做app的测试,你大概率会用到这个命令,尤其是做monkey测试

1.普通命令 1.1 devices命令 语法格式 :adb devices [-l] # 作用 :返回已连接设备的信息 # 示例 :adb devices : 返回设备的信息adb devices -l : 返回设备的详细信息1.2 help命令 语法格式 :adb --help # 作用 &#xff1…

人工智能:人工神经网络的应用场景

❤️作者主页:IT技术分享社区 ❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉: 数据库领域优质创作者🏆&#x…

android接入微信API相关细节

细节1 想要接入微信,如接入分享微信功能、跳转小程序功能等;首先需要到微信开放平台申请AppId,如何申请在开放平台上的流程很清楚,就不赘述了 但有个细节就是应用包名签名,这个应用包名签名记得是以app有正式签名文件…

WebDAV之葫芦儿·派盘+思源笔记

思源笔记 支持webdav方式连接葫芦儿派盘。 想要一款支持全平台,支持Markdown语法,还支持大纲、块级双向链接、全文搜索、标签分类、数学公式、思维导图 / 流程图、代码片段、跨平台同步等全功能的笔记APP吗?推荐您使用思源笔记与葫芦儿派盘结合方案。 思源笔记是一款本地…

位 运 算

位运算符 在处理整形数值时&#xff0c;可以直接对组成整形数值的各个位进行操作。这意味着可以使用屏蔽技术获得整数中的各个位&#xff08;&#xff1f;&#xff1f;&#xff09; &(与)、|(或)、^(异或)、~(非/取反) “>>” 和 “<<” 运算符将二进制位进行…

06 Job/CronJob: 为什么不直接用Pod来处理业务?

文章目录1. 前言2. 为什么不直接使用pod?2.1 面向对象的设计思想3. 为什么要有Job/CronJob3.1 离线业务的种类4. 如何使用 YAML 描述 临时任务 Job4.1 Job 的 YAML“文件头”4.2 使用kubectl create 生成模板文件4.3 Job 的 YAML body 部分“spec ”4.4 如何在Kubernetes 里操…

【C++ STL容器】:vector存放数据

前言 时不可以苟遇&#xff0c;道不可以虚行。 STL 中最常用的容器为&#xff1a;vector&#xff0c;暂且把它理解为我们之前学过的数组Array。 一、创建一个vector容器&#xff08;数组&#xff09; 添加头文件&#xff1a;#include <vector> vector<int> v;二、…