立方体引起的引力异常计算&画图

4 篇文章 0 订阅
2 篇文章 0 订阅

地球重力学需要我们计算立方体引起的重力异常,公式见《重力学与固体潮》。
这个程序取的z方向是竖直向下的,也就是说地面向下为正,地面向上为负

%定义一个立方体函数%
function [gravity]=draw_square(a,b,c,x0,y0,H,ph,z)
%长方体模型参数说明%
%a=2000;%长%b=200;%宽%c=100;%高%
%质心坐标x0,y0,z0 %H=1000立方体深埋深度;
%质心埋深H
%ph=2*10^3;%剩余密度
%z是测点的z坐标,比如如果在地面上就取0%
%采样区间%
x=(-40:2:40);
y=(-40:2:40);

%常数%
G=6.67e-11;

%计算异常%
[x1,y1]=meshgrid(x,y);   %生成计算用的网格线
r=(x0-x1).^2+(y0-y1).^2+(H-z).^2;
gravity=-G*ph.*(a.*log(r+b)+b.*log(r+a)-c.*atan(a*b./(r*c)))*10^5;%单位mGal

%画图%
%矩阵要和前面的那个矩阵取一样的%
x=(-40:2:40);
y=(-40:2:40);

[x1,y1]=meshgrid(x,y);%生成画图用的矩阵
figure(1)%图1
mesh(x1,y1,gravity);%三维
colorbar;
xlabel('x');
ylabel('y');
title('立方体异常');
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的立方体重力异常正演的MATLAB代码,供您参考: ```matlab % define constants G = 6.674e-11; % gravitational constant rho = 2670; % density of the cube L = 1000; % length of the cube x = -5000:100:5000; % x-coordinates y = -5000:100:5000; % y-coordinates z = 0:100:10000; % z-coordinates [X,Y,Z] = meshgrid(x,y,z); % create the grid % calculate gravity anomalies gx = zeros(size(X)); gy = zeros(size(Y)); gz = zeros(size(Z)); for i = 1:numel(x) for j = 1:numel(y) for k = 1:numel(z) % calculate the distance between the grid point and the cube r = sqrt((X(i,j,k)^2) + (Y(i,j,k)^2) + (Z(i,j,k)^2)); % calculate the gravitational attraction gx(i,j,k) = gx(i,j,k) + (G*rho*L*(X(i,j,k)/r^3)); gy(i,j,k) = gy(i,j,k) + (G*rho*L*(Y(i,j,k)/r^3)); gz(i,j,k) = gz(i,j,k) + (G*rho*L*(Z(i,j,k)/r^3)); end end end % plot the results figure; subplot(1,3,1); imagesc(x,y,squeeze(gx(:,:,end))); colorbar; title('gx'); subplot(1,3,2); imagesc(x,y,squeeze(gy(:,:,end))); colorbar; title('gy'); subplot(1,3,3); imagesc(x,y,squeeze(gz(:,:,end))); colorbar; title('gz'); ``` 这个代码用了一个立方体模型,以100m为间隔生成x、y、z三个方向的网格,然后计算每个网格点上的重力异常。最后,将计算结果通过三个子的方式展示出来,分别对应x、y、z三个方向上的重力异常。需要注意的是,这个模型非常简单,只是为了演示立方体重力异常正演的基本过程。如果您需要更复杂的模型或更多的计算参数,可以根据自己的需求进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值