电阻率测深法理论曲线正演matlab,多条绘制于一图
时间: 2023-07-20 22:09:43 浏览: 401
电阻率测深法的理论曲线正演可以通过有限元法或有限差分法进行模拟计算,然后绘制出电阻率深度剖面图。下面是一个简单的matlab程序,可以绘制出多条电阻率深度剖面图:
```matlab
% 电阻率测深法理论曲线正演程序
% 输入参数
r = 50; % 电极距离
n = 20; % 电极数目
rho1 = 100; % 地下介质电阻率
rho2 = [500, 1000, 2000]; % 地下目标电阻率,多个值用逗号隔开
h = 2000; % 探测深度
dh = 100; % 深度间距
% 计算电极间距
d = r / (n - 1);
% 计算电极位置
elec_pos = (0:(n-1)) * d;
% 初始化电位数组
potential = zeros(n, n);
% 计算目标电位
for i = 1:n
for j = 1:n
if i ~= j
distance = abs(elec_pos(i) - elec_pos(j));
if distance <= r
potential(i, j) = rho2(1);
else
potential(i, j) = rho1;
end
end
end
end
% 有限差分法计算电阻率深度剖面
resistivity_profile = zeros(h/dh, numel(rho2));
for i = 1:numel(rho2)
rho = rho2(i);
for j = 1:(h/dh)
z = j * dh;
G = zeros(n-1, n-1);
for k = 1:(n-1)
G(k, k) = (rho1 + rho) / (2 * pi * (elec_pos(k+1) - elec_pos(k)) * z);
for l = (k+1):n-1
G(k, l) = -1 * (rho1 + rho) / (2 * pi * (elec_pos(l+1) - elec_pos(l)) * z);
G(l, k) = -1 * (rho1 + rho) / (2 * pi * (elec_pos(l+1) - elec_pos(l)) * z);
end
end
U = potential(2:end, 2:end) - potential(2:end, 1:end-1);
I = G \ U(:);
resistivity_profile(j, i) = (rho1 + rho) / (dh * sum(I));
end
end
% 绘制电阻率深度剖面图
figure;
for i = 1:numel(rho2)
loglog(resistivity_profile(:, i), (1:(h/dh)) * dh, 'LineWidth', 2);
hold on;
end
xlabel('电阻率(Ωm)');
ylabel('深度(m)');
title('电阻率测深法理论曲线正演结果');
legend('rho2_1 = 500', 'rho2_2 = 1000', 'rho2_3 = 2000');
```
这个程序主要是通过有限差分法计算电阻率深度剖面,然后绘制出电阻率深度剖面图。在程序中,我们可以设置不同的目标电阻率rho2,然后在同一张图上绘制出多条电阻率深度剖面曲线,方便比较分析。
阅读全文