山野莽夫

  • 归档
    • 随笔
    • 建站资源
    • 分享
    • 代码
  • 地球物理学
    • 专业课
    • 概念解释
  • 计算机
  • 互联网
  • 教程
  • 规划
  • 实验室
    • 珍藏的软件
    • 贴吧云签到
    • A1账号自助申请
山野莽夫
小学生的挣扎的点点滴滴
  1. 首页
  2. 地球物理学
  3. 正文

一维层状大地电磁(MT)正演

2019年5月31日 3902点热度 0人点赞 0条评论
最近忙先把代码放上吧,图以后再补。杨大神处女作。
C++代码
#include <iostream>
#include <fstream>
#include <time.h>
using namespace std;
const int N = 5; //层数
const int TN = 10; //时间个数
const double PI = 3.0415926535897932384626;
//const double T[100] = { 0.001000,0.001233,0.001520,0.001874,0.002310,0.002848,0.003511,0.004329,0.005337,0.006579,0.008111,0.010000,0.012328,0.015199,0.018738,0.023101,0.028480,0.035112,0.043288,0.053367,0.065793,0.081113,0.100000,0.123285,0.151991,0.187382,0.231013,0.284804,0.351119,0.432876,0.533670,0.657933,0.811131,1.000000,1.232847,1.519911,1.873817,2.310130,2.848036,3.511192,4.328761,5.336699,6.579332,8.111308,10.000000,12.328467,15.199111,18.738174,23.101297,28.480359,35.111917,43.287613,53.366992,65.793322,81.113083,100.000000,123.284674,151.991108,187.381742,231.012970,284.803587,351.119173,432.876128,533.669923,657.933225,811.130831,1000.000000,1232.846739,1519.911083,1873.817423,2310.129700,2848.035868,3511.191734,4328.761281,5336.699231,6579.332247,8111.308308,10000.000000,12328.467394,15199.110830,18738.174229,23101.297001,28480.358684,35111.917342,43287.612811,53366.992312,65793.322466,81113.083079,100000.000000,123284.673944,151991.108295,187381.742286,231012.970008,284803.586844,351119.173422,432876.128108,533669.923121,657933.224658,811130.830790,1000000.000000 };
const double T[10] = { 0.000100,0.001000,0.010000,0.100000,1.000000,10.000000,100.000000,1000.000000,10000.000000,100000.000000 };

//const double rhow[3] = { 50,19*50,19*19*50 };
//const double h[2] = {50,200*50};
const double rhow[5] = { 100,10,1000,1,1000 };
const double h[4] = { 500,500,500,1000 };
class Cfun
{

public:
double L_P(double v, double u, int n);
double L_Q(double v, double u, int n);
double con_Gm(int n, int m);
double R_A(double P, double Q, int n, int m);
double R_B(double P, double Q, int n, int m);
double R_U(double Am, double Bm);
double R_V(double Am, double Bm);
};

double Cfun::L_P(double v, double u,int n)
{
double p1;
double p2;
double p;
p1 = 1.0 - pow(sqrt(rhow[n] / rhow[n - 1]) * u, 2) - pow(sqrt(rhow[n] / rhow[n - 1]) * v, 2);
p2 = pow(1.0 + sqrt(rhow[n] / rhow[n - 1]) * u, 2) + pow(sqrt(rhow[n] / rhow[n - 1]) * v, 2);
p = p1 / p2;
return p;
}
double Cfun::L_Q(double v, double u, int n)
{
double q1;
double q2;
double q;
q1 = -2.0*sqrt(rhow[n] / rhow[n - 1])*v;
q2 = pow(1.0 + sqrt(rhow[n] / rhow[n - 1]) * u, 2) + pow(sqrt(rhow[n] / rhow[n - 1]) * v, 2);
q = q1 / q2;
return q;
}

double Cfun::con_Gm(int n,int m)
{
double g;
g = 4 * PI*h[n] / sqrt(1e7 * rhow[n] * T[m]);
return g;
}

double Cfun::R_A(double P, double Q,int n,int m)
{
double Am;
double Gm = con_Gm(n,m);
Am = exp(-1*Gm)*(P*cos(Gm) - Q*sin(Gm));
return Am;
}
double Cfun::R_B(double P, double Q,int n,int m)
{
double Bm;
double Gm = con_Gm(n,m);
Bm = exp(-1*Gm)*(Q*cos(Gm) + P*sin(Gm));
return Bm;
}
double Cfun::R_U(double Am, double Bm)
{
double u;
u = (1 - Am*Am - Bm*Bm) / (pow(1 + Am, 2) + Bm*Bm);
return u;
}

double Cfun::R_V(double Am, double Bm)
{
double v;
v = (-2 * Bm) / (pow(1 + Am, 2) + Bm*Bm);
return v;
}
int main()
{
time_t start, end;
time(&start);
double p;
double q; 
double Am;
double Bm;
double um;
double vm;
double rt[TN];
//double rabh[TN];
cout << "计算开始……" << endl;

cout << endl;
cout << "**********************************************" << endl;
cout << "* *" << endl;
cout << "* 大地电磁1D_层状正演 *" << endl;
cout << "* Cong Yang *" << endl;
cout << "* CDUT *" << endl;
cout << "* 2017/8/20 *" << endl;
cout << "* *" << endl;
cout << "**********************************************" << endl;
cout << endl;
Cfun Cf;
for (int j = 0; j < TN; j++)
{
um = 1;
vm = 0;
for (int i = N-2; i >= 0; i--)
{
p = Cf.L_P(vm, um, i+1);//m+1
q = Cf.L_Q(vm, um, i+1);//m+1
Am = Cf.R_A(p, q, i, j);//m
Bm = Cf.R_B(p, q, i, j);
um = Cf.R_U(Am, Bm);
vm = Cf.R_V(Am, Bm);
}
rt[j] = rhow[0]*(um*um + vm*vm);
//rabh[j] = sqrt(1e7 * rhow[0] * T[j]) / h[0];
}
ofstream ou("T_rhowT.dat", ios::out);
for (int i = TN-1; i >= 0; i--)
{

//ou << T[i] << "\t" << rabh[i] << endl;
ou << 1/T[i] << "\t" << rt[i] << endl;

}
ou.close();

cout << "结束" << endl;
time(&end);
cout << "用时:" << end - start << "s" << endl;
system("pause");
return 0;
}

标签: 大地电磁 正演
最后更新:2020年2月9日

yang

这个人很懒,什么都没留下

打赏 点赞
< 上一篇

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据。

联系方式

QQ群 | TG群 | 邮箱

最新 热点 随机
最新 热点 随机
Azure Student 微软云 学生订阅 免费12个月用量避坑注意点集合 MP3音频文件格式详细解析 python按固定采样点个数分割wav格式音频 愉快使用谷歌免费人工智能平台colab,训练你的神经网络模型,为你的学术生活添砖加瓦 华为云版轻量应用服务器-云耀云服务器简单体验评测 Cloudflare 免费CDN自定义节点ip之自选cloudflare 高速节点ip工具分享
本地web环境架设网站如何配置DNS解析 谈谈莫名其妙的搜索引擎---搜狗 太子妃升职记360云盘资源 Azure Student 微软云 学生订阅 免费12个月用量避坑注意点集合 大明王朝1566云盘资源 C语言简单文件读取代码(使用fscanf)
标签聚合
wordpress 模板 地震学程序 c语言 ppt onedrive 虚拟机 宝塔面板
最近评论
小菜菜 发布于 6 个月前(11月24日) 这玩意已经废了,成收割工具了,不能再用了。
eamon 发布于 7 个月前(11月07日) 我一年不用了才发现这个休眠管理费每月15,一共扣了我135元,然后我消费还消费不了,我宁愿消费掉也不...
magic 发布于 11 个月前(07月03日) 请问账号不注销会有什么影响吗?
magic 发布于 11 个月前(07月01日) 我想问一下 如果不注销账号就留着会怎么样
qwp6601 发布于 12 个月前(06月04日) 有没有方法改为bing

COPYRIGHT © 2021 shanyemangfu.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备15031791号-2