好几年前的课程作业,当时什么也不懂,对专业的认识蛮有趣。现在什么都想懂,却什么弄也不懂。
正演问题。就像。有人跟你提起了你的一位朋友。你开始在脑海中回忆你的这位朋友鲜明的个性特征,于是你可以得到一系列关于你这位朋友的信息。这就是,给定了一个地质模型,运用一定的地球物理方法,一定的装置下,测量得到一系列的观测值,比如视电阻率等等。
反演问题,就像,有人跟你提起了你的一位朋友的一系列的个性特征信息,而你,需要根据这些信息,回忆思考判断,这位被提起的朋友究竟是谁。这就是,给定了一系列的观测值,一定的地球物理方法,一定的地质模型的先验信息,计算推得地下的地质构造模型。比如由视电阻率值反演得到地下的电阻率分布情况。
看似简单的过程,仔细地思考起来,,这其中存在着两个问题:
正演的误差:由于了解的不够深入,也许你会对你的朋友的认识有所偏差,或者,各个人对同一个人的认识也不一样,这就是所谓的“每个人的心中都有一个哈姆雷特”。
反演的误差:如果所给的特征信息不够充分,你也许无法分辨出所描述的究竟是你的那位朋友。又或者,所给出的特征信息不够鲜明,符合这些信息的人不只一个,这个时候,你就无法正确判断得出所描述的究竟是哪一位。这是老师在课堂上所反复跟我强调的反演问题的非惟一性的一个体现。
正演是反演的基础。我本科所学为“信息与计算科学”专业,所学课程大多为数学,计算机等等,很杂。研究生阶段学地球物理,算是半路出家。我个人认为,反演是整个地球物理中最有魔力最吸引人也是最折磨人的问题,它尤其吸引着像我这样的学了很多的数学和计算机学科的地球物理门外汉。William Menke认为反演理论是一套用来从基于观测数据所描述的物理世界提取有用信息的数学方法。这也不难理解为什么老一辈的地球物理学者有着扎实的数学功底。他们可能比数学专业的老师更加关注偏微分方程的求解、变分法的应用、用于求解方程组的矩阵分析、最优化方法等等。比计算机系的老师更加关注程序语言的实用,并行平台的研究,机器精度,计算复杂度等等问题。
反演是们有魔力而且很磨人的细致活。我们首先应该意识到的是反演问题的非唯一性问题。其次,应该弄清楚整个反演过程的流程。比如偏导数矩阵的含义,比如病态方程的解决,奇异值,阻尼的含义。
显然的是,没有任何先验信息的反演不是可取的。Oldenburg先生以及合作者发展的这种反演方法,无疑,正如它们在文章末尾所说的那样,虽然是在2D直流电阻率成像上作的试验,但却是使用于其他的反演方法的.这一点,国内已有不少文章。但我个人认为,先验信息的加入,其实也是需要好好研究的。
而对于我个人,地球物理刚刚入门,对于反演问题,认识得不深,实践得不够,动手不够,经验不够。从这个简单的直流电阻率反演最后依然很混乱依然结果不好就可以看出应该努力的方向。
圣诞过了,元旦快来了,呵呵
[回复]
d:\matlabsetup\extern\include\cpp\mltif.h(2376) : error C2065: ‘mlfNConvhulln’ : undeclared identifier
d:\matlabsetup\extern\include\cpp\mltif.h(2384) : error C2065: ‘mlfConvhulln’ : undeclared identifier
d:\matlabsetup\extern\include\cpp\mltif.h(2393) : error C2440: ‘=’ : cannot convert from ‘int’ to ’struct mxArray_tag *’
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
d:\matlabsetup\extern\include\cpp\mltif.h(2405) : error C2440: ‘=’ : cannot convert from ‘int’ to ’struct mxArray_tag *’
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
d:\matlabsetup\extern\include\cpp\mltif.h(2418) : error C2065: ‘mlfConvn’ : undeclared identifier
d:\matlabsetup\extern\include\cpp\mltif.h(2418) : fatal error C1003: error count exceeds 100; stopping compilation
Error executing cl.exe.
MatGraph.obj – 102 error(s), 0 warning(s)
这是我出现的错误,前段时间我也是看你这个贴弄的,下载调试成功,左右键能有响应,弹出MESSAGEBOX,但无法在上面画线等操作,消息仍被吃掉,现在重新下载,居然出现这么多错误,混编实在搞的我很憔悴。。。。
[回复]
shunfly 回复:
12月 15th, 2009 at 05:52
左右键消息出来了,画线也就可以出来了。熟悉一下WIN32和MFC消息机制
[回复]
回复的真快,谢谢,我的邮箱(常用):124403470@qq.com
[回复]
SHUNFLY兄是这方面的高手,我想请教你个问题,想在屏幕上画些图形,然后保存,保存格式非图形格式而是关于所画图形的一些内容,例如矩形里有个圆,矩形区域为1,圆内值为100,MATLAB PDETOOL 中画区域输出值的实现,想通过VC和MATLAB混编完成,看过你的的MATLAB类方式,但没成功,鼠标消息总被吃掉,请问你有没有尝试过这些,我的问题您想通过何种方式完成?MATCOM,DLL,COM等方式我都尝试过,只能画图,欠到里头,不能鼠标或键盘互动,实在不爽,烦您回复,我的邮箱你应该能看到,可以加我或这写信,谢谢。
[回复]
shunfly 回复:
12月 14th, 2009 at 21:46
Simwe中有几个我的主题贴,参看我与SCIE的讨论部分和贴的程序,已经实现了屏蔽MATLAB FIGURE窗口消息,直接用MFC消息。http://forum.simwe.com/viewthread.php?tid=779324
关键词,窗口子类化
[回复]
shunfly 回复:
12月 14th, 2009 at 21:48
PS:看不到你的邮箱。
[回复]
没想到你也是学地球物理的,登你的主页是看你的MATLAB 画图类找到的,最近还有没有写这些,现在想请教你些问题,怎么联系?谢谢
[回复]
只要你想懂,你就能懂。。。。
[回复]