共轭梯度bp算法在储层孔隙度**中的应用。
储层孔隙度是表征储层特性、描述流体模式和建立储层地质模型最重要的参数之一。因此,准确获取储层的孔隙度是进行地层解释和降低石油和天然气开采工程风险的基础和关键。传统的孔隙度求取是利用威利时间平均公式和它的一些改进形式,这是一种综合大量实验数据的简单、方便但假想的形式,是没有任何物理依据的。
通过岩心取样进行室内测试,获取岩心的孔隙度精度很高,但取样和测试的费用很高,致使获取的储层孔隙度有限,不能覆盖整个工区。由于神经网络可以实现输入和输出之间的复杂非线性性映射,并具有较高的容错性和自学习能力,很适合用来求解那些不能用确定的函数关系来表达的模糊映射问题,这样既可以避免建模,又可以避免数据分析过程中的误差。本文采用共轭梯度bp算法,具有收敛速度快和良好的泛化能力等优点。
原理:共轭梯度法是一种改进搜索方向的方法,它是把前点的梯度乘以适当的系数,加到该点的梯度上,得到新的搜索方向。因此,可以说共轭梯度法是把过去的梯度和现在某点的梯度信息综合利用,用它的线性组合来构造更好的搜索方向。
共轭梯度算法的fletcher-reeves算法(traincgf)如下:
式中:搜索方向是一组共轭向量;是步长,且:
式中:。函数traincgf的训练参数包括:epochs,show,goal,time,rain-grad,max-fail,srchfcn,scal-tol,alpha,beta,delta,gama,low-lim,maxstep,minstep,bmax。
其中参数srchfcn表示线性搜寻函数。
算法程序:神经网络模型。
建立上图所示形式1-35-1bp神经网络逼近函数。
在上图所示形式的1-35-1网络中:输入神经元1个,中间层35个,输出层1个;中间层传递函数为正切s形函数tansig;输出层传递函数为线性函数purelin。
clear清除内存变量和函数。
echo on显示被执行指令。
clc清除指令窗。
k=[-1:.05:1输入数据。
l=sin(2*pi*k)+cos(2*pi*k目标输出数据。
net=newff(minmax(k),[35,1],;
net=i nit(net初始化网络权值和阈值。
设定显示间隔次数。
设定最大循环次数。
设定最小梯度。
设定目标误差。
net,tr]=train(net,k,l网络训练。
程序运行结果如下图所示:
共轭梯度算法程序运行结果。
直观显示共轭梯度算法收敛速度提高,而且保持了良好的泛化能力,所以对于训练具有大规模权值的bp神经网络是一个非常好的选择。
应用:建立的神经网络经过训练后,确立了网络各层的连接权值,从而形成了稳定的网络结构。样本训练数据见下表:
样本训练数据。
取训练样本的物性的平均值来作为标准储层模型的物性参数,**样本1和样本2,结果如下表:
测试样本数据。
从表2可以看出,样本1的相似度为0.90,用建立的bp神经网络模型**的孔隙度和实测的孔隙度误差为2.4%,样本2的相似度为0.
68,用所建立的bp神经网络模型**的孔隙度与实测的孔隙度的误差为18.8%。由此可以看出,当所**样本与训练样本的相似度高时,**精度很高;反之,当所**样本与训练样本的相似度低时,**精度不高,存在较大的误差。
数值分析上机作业
一。上机作业任务一 用五点差分格式求解poisson方程边值问题,p 任选一题 二。上机作业任务二 用simpson求积法计算定积分。下面两种方法任选一。1 变步长复化simpson求积法2 自适应simpson求积法。三。上机作业任务三 用matlab语言编写连续函数最佳平方逼近的算法程序 函数式...
数值分析上机作业
今天的上机作业。1.lagrange 插值。给出的数值表。用lagrange 插值计算的近似值。2 newton插值。用newton插值计算x 0.41的近似值。3.插值法的全部内容。把chap 2试验。doc的全部内容作一边,粘在这个文件里 包括图形 答 插值。function f lagrang...
数值分析上机作业
第二次上机作业。一。任务 用matlab语言编写连续函数最佳平方逼近的算法程序 函数式m文件 并用此程序进行数值试验,写出计算实习报告。二。程序功能要求 在后面的附一的基础上进行修改,使其更加完善。要求算法程序可以适应不同的具体函数,具有一定的通用性。所编程序具有以下功能 1.用lengendre多...