蒙特卡洛法面波频散曲线反演(matlab)

面波频散曲线反演是一种地震波形反演方法,用于估计地下结构的物理参数。其原理基于面波频散现象,即地震波在地下传播时会由于地下结构的变化而导致波速的变化,从而在地震记录中形成不同频率的相位延迟。具体而言,面波频散曲线反演过程如下:

1. 收集面波频散数据:利用地震台站网络采集地震记录,在不同频率范围内获取到面波的到时信息。比如地震记录如图:

2. 计算频散曲线:根据收集到的地震记录,计算每个频率处的相位延迟。通常使用频率-时间分析方法,如多积分法或小波变换等。根据下述代码可以绘制频散曲线如图:在这幅图中黑色的点连成的线就是频率和相速度的关系即频散曲线。

3. 构建初始模型:根据已知的地质信息构建初始模型,即地下结构的物理参数初始分布。初始模型代码设置如下:

% Initial values for model parameters
n = 10;
h_initial = [1 1 2 2 4 5 4 6 5 7]; % m (array(n))
beta_initial = [75 90 150 180 240 290 290 300 320 330 340];%array(n+1) % m/s
n_unsat = n+1;
nu_unsat = 0.3;
alpha_temp = sqrt((2*(1-nu_unsat))/(1-2*nu_unsat))*beta_initial; % m/s
alpha_initial = [alpha_temp(1) 1440 1440 1440 1440 1440 1440 ...1440 1440 1440 1440]; % m/s array(n+1)
rho = [1850 1850 1850 1850 1900 1900 1900 1900 1950 1950 1950]; % kg/m^3

4. 正演模拟:以初始模型为基础,使用地震波传播的数值模拟方法,如有限差分法或有限元法等,计算面波的频散曲线。这里使用的是快速delta法,可以快速计算初始模型的频散曲线,这里使用函数MASWaves_theoretical_dispersion_curve_FDMA实现。代码如下:

%%
%  [c_t,lambda_t] = MASWaves_theoretical_dispersion_curve_FDMA...
%    (c_min,c_max,c_step,lambda,n,alpha,beta,rho,h,delta_c)
%%
%  The function MASWaves_theoretical_dispersion_curve computes the
%  theoretical fundamental mode dispersion curve for the stratified
%  soil model defined by n, alpha, beta, rho and h at wavelengths lambda.
%
%% Input
%  c_min         Minimum testing Rayleigh wave phase velocity [m/s]
%  c_max         Maximum testing Rayleigh wave phase velocity [m/s]
%  c_step        Testing Rayleigh wave phase velocity increment [m/s]
%  lambda        Wavelength vector [m]
%  n             Number of finite thickness layers
%  alpha         Compressional wave velocity vector [m/s] (array of length n+1)
%  beta          Shear wave velocity vector [m/s] (array of length n+1)
%  rho           Mass density vector [kg/m^3] (array of length n+1)
%  h             Layer thickness vector [m] (array of length n)
%  delta_c       Zero search initiation parameter [m/s] 
%                At wave number k_i the zero search is initiated at  
%                a phase velocity of max{c_(i-1)-delta_c , c_min}, where 
%                c_(i-1) is the theoretical Rayleigh wave phase velocity 
%                value at wave number k_(i-1)
%
%% Output
%  c_t           Rayleigh wave phase velocity vector (theoretical
%                dispersion curve) [m/s] 
%  lambda_t      Rayleigh wave wavelength vector (theoretical dispersion
%                curve) [m]
%
%% Subfunctions
%  MASWaves_FDMA
%%%
function [c_t,lambda_t] = MASWaves_theoretical_dispersion_curve_FDMA...(c_min,c_max,c_step,lambda,n,alpha,beta,rho,h,delta_c)% 
%  c_min= c_min
%  c_max=c_max
%  c_step=c_step
%  lambda=lambda_OBS
%  n=n
%  alpha=alpha_initial
%  beta=beta_initial
%  rho=rho
%  h=h_initial
%  delta_c=delta_c% Determine testing phase velocity values
c_test = c_min:c_step:c_max;% Wave numbers that correspond to wavelengths lambda
k = (2*pi)./lambda;% Number of modes (modes = 1, fundamental mode)
modes = 1;% Initialization
D = zeros(length(c_test),length(k));
c_t = zeros(length(k),modes);
lambda_t = zeros(length(k),modes);% For each wave number k, compute the dispersion function using 
% increasing values of c_test until its value has a sign change.
m_loc = 1;
delta_m = round(delta_c/c_step);
for j = 1:length(k)for m = m_loc:length(c_test)D(j,m) = MASWaves_FDMA(c_test(m),k(j),n,alpha,beta,rho,h);if m==m_locsign_old = sign(MASWaves_FDMA(c_test(1),k(j),n,alpha,beta,rho,h));elsesign_old = signD;endsignD = sign(D(j,m));if sign_old*signD == -1c_t(j) = c_test(m);lambda_t(j) = 2*pi/k(j);m_loc = m - delta_m;if m_loc <= 0m_loc = 1;endbreakendend
end

5. 与观测数据匹配:将模拟的频散曲线与实际观测得到的频散曲线进行比较作差,并通过某种优化算法蒙特卡洛法调整模型参数,使得模拟的频散曲线与观测数据相匹配。

   beta_test = beta_opt + unifrnd(-(b_S/100).*beta_opt,(b_S/100).*beta_opt);

h_test = h_opt + unifrnd(-(b_h/100).*h_opt,(b_h/100).*h_opt);

6. 更新模型参数:根据优化算法得到的最佳参数值,更新初始模型的物理参数分布。

7. 重复以上步骤:通过迭代的方式,一直进行正演模拟和模型参数更新,直到达到收敛条件。

这样就可以得到横波速度随深度的变化的剖面。

所有的代码包放在这个链接里,或者看我的分享资源。【免费】蒙特卡洛法面波频散曲线反演代码资源-CSDN文库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/450637.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jmeter接口测试企业级项目实战day3

1.了解Jmeter的内部细节&#xff0c;排查错误的原因 取样器&#xff1a;发送请求&#xff0c;接受响应 -> 查看结果树请求和响应&#xff08;头和正文&#xff09; 断言&#xff1a;验证响应 ->查看结果树&#xff08;采样结果&#xff09; 提取…

JavaWeb 22.Node.js_简介和安装

有时候&#xff0c;后退原来是向前 —— 24.10.7 一、什么是Node.js Node.js 是一个于 Chrome V8 的 JavaScript 运行时环境&#xff0c;可以使 JavaScript 运行在服务器端。使用 Node.js&#xff0c;可以方便地开发服务器端应用程序&#xff0c;如 Web 应用、API、后端服务&a…

FreeRTOS学习笔记1

结合汇编 ldr r3, pxCurrentTCB ldr r2 R3 value0x20000054,R2 value0x2002B950 pxCurrentTCB 020028950 pxTopOfStsck 0x2002B8FC 解释这些寄存器的值是怎么变化的 1. ldr r3, pxCurrentTCB 这一行指令将 全局变量 pxCurrentTCB 的地址加载到寄存器 r3 中。pxCu…

【网络】详解TCP协议的延时应答、捎带应答、异常处理

【网络】详解TCP协议的延时应答和捎带应答 一. 延时应答模型 二. 捎带应答模型再谈四次挥手 三. 异常处理1.一方出现进程崩溃2.一方出现关机&#xff08;正常流程关机&#xff09;3.一方出现断电4.网线断开 一. 延时应答 也是基于滑动窗口&#xff0c;想要尽可能的去提高效率。…

用Java爬虫API,轻松获取taobao商品SKU信息

在电子商务的世界里&#xff0c;SKU&#xff08;Stock Keeping Unit&#xff0c;库存单位&#xff09;是商品管理的基础。对于商家来说&#xff0c;SKU的详细信息对于库存管理、价格策略制定、市场分析等都有着重要作用。taobao作为中国最大的电子商务平台之一&#xff0c;提供…

制药企业MES与TMS的数据库改造如何兼顾安全与效率双提升

*本图由AI生成 在全球制造业加速数字化转型的浪潮中&#xff0c;一家来自中国的、年营业额超过200亿元的制药企业以其前瞻性的视角和果断的行动&#xff0c;成为该行业里进行国产化改造的先锋。通过实施数据库改造试点项目&#xff0c;该企业实现了其关键业务系统MES&#xff0…

IEC104规约的秘密之九----链路层和应用层

104规约从TCP往上&#xff0c;分成链路层和应用层。 如图&#xff0c;APCI就是链路层&#xff0c;ASDU的就是应用层 我们看到报文都是68打头的&#xff0c;因为应用层报文也要交给链路层发送&#xff0c;链路层增加了开头的6个字节再进行发送。 完全用于链路层的报文每帧都只有…

【初阶数据结构】归并排序 - 分而治之的排序魔法

文章目录 前言1. 什么是归并排序&#xff1f;1.1 归并排序的步骤 2. 归并排序的代码实现2.1 归并排序代码的关键部分讲解2.1.1 利用递归2.1.2 将拆解的数组的元素放到一个临时空间中进行重新排序2.1.3 将在临时空间中排好的数组复制到目标数组中 3. 归并排序的非递归写法 前言 …

CTFHub | HTTP协议 - 请求方式 | 题解实操

CTFHUB 的 HTTP 请求方式题目为参与者带来了独特的挑战和学习机会。在这个题目中&#xff0c;要求参与者使用特定的方式请求来获取 flag。这不仅考验了参与者对 HTTP 请求方法的理解和掌握程度&#xff0c;还促使他们探索不同的工具和技术来解决问题。 题目背景设定在网络安全…

关于MyBatis-Plus 提供Wrappers.lambdaQuery()的方法

实例&#xff1a; private LambdaQueryWrapper<XXX> buildQueryWrapper(XXXBo bo) { Map<String, Object> params bo.getParams(); LambdaQueryWrapper<XXX> lqw Wrappers.lambdaQuery(); lqw.eq(bo.getOrgId() ! null, XXX::getOrgId, bo.getOrgId()); lq…

拼三角问题

欢迎来到杀马特的主页&#xff1a;羑悻的小杀马特.-CSDN博客 目录 一题目&#xff1a; 二思路&#xff1a; 三解答代码&#xff1a; 一题目&#xff1a; 题目链接&#xff1a; 登录—专业IT笔试面试备考平台_牛客网 二思路&#xff1a; 思路&#xff1a;首先明白能组成三角形…

新生入门季 | 学习生物信息分析,如何解决个人电脑算力不足的问题?

随着生物信息学在科研和教育中的快速普及&#xff0c;越来越多的新生开始接触基因组测序、RNA分析等复杂计算任务。然而&#xff0c;在面对这些大规模数据时&#xff0c;个人电脑的算力往往显得捉襟见肘。你是否也在为自己的笔记本性能不足而苦恼&#xff1f; 这篇文章将为你提…

JavaWeb——Maven(4/8):Maven坐标,idea集成-导入maven项目(两种方式)

目录 Maven坐标 导入Maven项目 第一种方式 第二种方式 Maven坐标 Maven 坐标 是 Maven 当中资源的唯一标识。通过这个坐标&#xff0c;我们就能够唯一定位资源的位置。 Maven 坐标主要用在两个地方。第一个地方&#xff1a;我们可以使用坐标来定义项目。第二个地方&#…

FreeRTOS - 软件定时器

在学习FreeRTOS过程中&#xff0c;结合韦东山-FreeRTOS手册和视频、野火-FreeRTOS内核实现与应用开发、及网上查找的其他资源&#xff0c;整理了该篇文章。如有内容理解不正确之处&#xff0c;欢迎大家指出&#xff0c;共同进步。 1. 软件定时器 软件定时器也可以完成两类事情…

Spring AI Alibaba 接入国产大模型通义千问

整体介绍 本文是一个详细的例子&#xff0c;讲解了如何基于spring ai 来调用通义千问国产大模型&#xff0c;有详细的代码和配置&#xff0c;并且免费。 Spring AI&#xff1a;简化Java开发者构建AI应用的统一框架 在过去&#xff0c;Java 开发者在构建 AI 应用时面临的一大…

【ios】解决xcode版本过低无法真机调式的问题

最低要求和支持的 SDK&#xff1a;Xcode - 支持 - Apple Developer 我的Xcode版本是14.2 手机系统版本是iOS15.8.3 步骤一 在终端中运行 open /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport 步骤二 先去https://github.com/fi…

AI 设计工具合集

&#x1f423;个人主页 可惜已不在 &#x1f424;这篇在这个专栏AI_可惜已不在的博客-CSDN博客 &#x1f425;有用的话就留下一个三连吧&#x1f63c; ​ 前言: AI 视频&#xff0c;科技与艺术的精彩融合。它借助先进的人工智能技术&#xff0c;为影像创作带来全新可能。本书…

星海智算:【萤火遛AI-Stable-Diffusion】无需部署一键启动

部署流程 1、注册算力云平台&#xff1a;星海智算 https://gpu.spacehpc.com/ 2、创建实例&#xff0c;镜像请依次点击&#xff1a;“镜像市场”->“更换”->“AI绘画”->“萤火遛AI-Stable Diffusion”。 程序首次启动可能需要几分钟&#xff0c;待实例显示“运行…

2009年国赛高教杯数学建模A题制动器试验台的控制方法分析解题全过程文档及程序

2009年国赛高教杯数学建模 A题 制动器试验台的控制方法分析 汽车的行车制动器&#xff08;以下简称制动器&#xff09;联接在车轮上&#xff0c;它的作用是在行驶时使车辆减速或者停止。制动器的设计是车辆设计中最重要的环节之一&#xff0c;直接影响着人身和车辆的安全。为了…

MOE论文详解(4)-GLaM

2022年google在GShard之后发表另一篇跟MoE相关的paper, 论文名为GLaM (Generalist Language Model), 最大的GLaM模型有1.2 trillion参数, 比GPT-3大7倍, 但成本只有GPT-3的1/3, 同时效果也超过GPT-3. 以下是两者的对比: 跟之前模型对比如下, 跟GShard和Switch-C相比, GLaM是第一…