• 基于遗传算法与神经网络的测井预测(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代码实现

  • 相关阅读:
    基于swing的人事管理系统
    六、程序员指南:数据平面开发套件
    怎么提取视频中的音乐保存到本地?其实方法很简单
    Telegraf 使用小结
    redis三(3-2)
    【无标题】
    【Ubuntu18.04】Livox Tele-15使用教程
    C/C++ 课程设计 | 银行管理系统
    vue+element后台菜单权限动态配置
    Linux中执行bash脚本报错/bin/bash^M: bad interpreter: No such file or directory
  • 原文地址:https://blog.csdn.net/weixin_46039719/article/details/127980842