vb实现直流电测深正演.docxVIP

  • 2
  • 0
  • 约3.69千字
  • 约 4页
  • 2017-06-07 发布于重庆
  • 举报
vb实现直流电测深正演

1,工程添加模块,创建标准模块 正演.bas,模块中代码如下:Public h() As Double, p() As Double, ps() As Double, t() As Double, c2() As DoublePublic jmin#, jmax#, imin#, imax#, dx#, n#, pmax#, pmin#, r1!, n1!Const s = 1.25892,创建主窗体控件视图如下:其主窗体程序如下:Option Base 1Private Sub Command1_Click()Form1.Hide: Form2.ShowEnd SubPrivate Sub Command2_Click()Dim c1(), i%, j%, tt1#, tt2#c1 = Array(1.694576, -9.362162, 29.64175, -63.0814, 135.1551, -191.2021, 547.5686, -183.4755, 3394.186, 3930.026, 19737.27, 0, -10119.83, 16654.52, -13300.99, 0, -7124.035, 5136.133, -3553.391, 2281.345, -1295.845, 603.9188, -201.9338, 35.57336)ReDim c2(-8 To 15)For i = -8 To 15 c2(i) = c1(i + 9) * 10 ^ (-4) Sum = Sum + c2(i)NextPicture1.ClsPicture1.Print Sumdx = Log(10) / 10: jmin = Fix(r1 / dx): imin = -8: jmax = jmin + n1: imax = 15求核函数 ReDim ps(jmin To jmax), t(jmin - imax To jmax - imin): x = (jmax + imax - jmin - imin) * 0.07 * dx: y = (pmax - pmin) * 0.09 Picture1.Scale ((jmin - imax) * dx - x, pmax + y)-((jmax - imin) * dx + x, pmin - y) For k = jmin - imax To jmax - imin tt2 = p(n) For m = n - 1 To 1 Step -1 v = p(m) * (1 - Exp(-2 * Exp(-k * dx - s) * h(m))) / (1 + Exp(-2 * Exp(-k * dx - s) * h(m))) tt1 = (v + tt2) / (1 + v * tt2 / (p(m) * p(m))) tt2 = tt1 Next t(k) = tt1 Next For k = jmin - imax To jmax - imin - 1 Picture1.DrawWidth = 1 Picture1.ForeColor = vbBlue: Picture1.Line (k * dx, Log(t(k)) / Log(10))-((k + 1) * dx, Log(t(k + 1)) / Log(10)) 纵坐标转换为对数坐标 NextEnd SubPrivate Sub Command3_Click()Dim xmin, xmax, ymin, ymax, temp#x = (jmax - jmin) * dx * 0.07: y = (pmax - pmin) * 0.09 Picture1.Scale (jmin * dx - x, (Log(1.64) / Log(10) + pmax) + y)-(jmax * dx + x, (pmin + Log(1.64) / Log(10)) - y) Picture1.CurrentX = jmin: Picture1.CurrentY = ps(jmin) For j = jmin To jmax ps(j) = 0 For i = -8 To 15 ps(j) = ps(j) + c2(i) * t(j - i) Next Next Picture1.DrawWidth = 4 For j = jmin To jmax - 1

文档评论(0)

1亿VIP精品文档

相关文档