?? mathtools faq.txt
字號:
每個問題的答復開頭都有一行作者信息,格式為
:#作者姓名或者ID(聯系方式或Email地址),更新日期,發表地址#
在本FAQ中引用WWW上獲得的代碼或者文檔時,都將作者信息附在
文檔中,以表示對作者的尊重。
本文檔的維護原則:歡迎轉載到其他BBS或學術網站,但在轉載
時請將文件頭完整保留。如果僅轉載文章內個別問題的回復,請將該
回復的作者信息保留。本文檔未經維護人或各問題回復的作者的許可
,嚴禁以商業目的將本文全部或者部分內容出版。本文檔的維護人及
各問題回復的作者具有文章的所有權和最終解釋權。
本文檔的使用原則為免費,本文檔維護人對使用本文檔內容所造成的
任何不當后果不承擔任何意義上的責任,文檔作者不對文檔中的代碼
的安全性和正確性作任何形式的承諾。
===================================
2).什么叫數學工具?
:#FangQ(Qianqian.Fang@dartmouth.edu),2002/6/19, BigGreen/MathTools#
廣義的講,我們可以把數學本身看作一種工具,她是人類認識這個紛
繁復雜的世界的眼睛和鑰匙,數學用量化和邏輯為描述事物的運動變
化提供了統一的和嚴密的基礎,并通過不斷衍生新的數學分支來為描
述人類所認知的日趨復雜的世界體系提供強大有力的工具。
狹義的講,我們這里涉及的"數學工具"除了部分數學理論和算法之外
,主要內容為數學軟件,即通過使用計算機,進行特定數學計算或者
數學表述來實現功能的軟件。
再狹義地講,數學工具是水木清華和BigGreen BBS上兩個版面的名字
,這里面聚集了很多很多認識的和不認識的熱愛數學、使用數學軟件
的朋友,這個FAQ就是獻給他們的。
===================================
3).數學軟件的主要分類有哪些?各有什么特點?
:#FangQ(Qianqian.Fang@dartmouth.edu),2002/6/19, BigGreen/MathTools#
數學軟件從功能上分類可以分為通用數學軟件包和專業數學軟件包,
通用數學包功能比較完備,包括各種數學、數值計算、豐富的數學函
數、特殊函數、繪圖函數、用戶圖形屆面交互功能,與其他軟件和語
言的接口及龐大的外掛函數庫機制(工具箱)。常見的通用數學軟件包
包括Matlab和Mathematica和Maple,其中Matlab以數值計算見
長,Mathematica和Maple以符號運算、公式推導見長。
專用數學包包括繪圖軟件類(MathCAD,Tecplot,IDL,Surfer,Origin,
SmartDraw,DSP2000),數值計算類:(Matcom, IDL,
DataFit,S-Spline,Lindo,Lingo,O-Matrix,Scilab,Octave), 數值計算
庫(linpack/lapack/BLAS/GERMS/IMSL/CXML), 有限元計算類(ANSYS,
MARC,PARSTRAN, FLUENT, FEMLAB,FlexPDE,Algor,COSMOS,
ABAQUS,ADINA),計算化學
類(Gaussian98,Spartan,ADF2000,ChemOffice),數理統計類(GAUSS
,SPSS,SAS, Splus,statistica,minitab), 數學公式排版類(MathType,
MikTeX,Scientific Workplace,Scientific Nootbook)
上述分類比較籠統,很多軟件的功能也有交叉,經驗和篇幅限制,不
能逐一而論。
===================================
4).什么叫擬合?什么叫插值?二者的區別是什么?
:#FangQ(Qianqian.Fang@dartmouth.edu),2002/6/21, BigGreen/MathTools #
插值和擬合都是函數逼近或者數值逼近的重要組成部分
他們的共同點都是通過已知一些離散點集M上的約束,求取一個定義
在連續集合S(M包含于S)的未知連續函數,從而達到獲取整體規律的
目的,即通過"窺幾斑"來達到"知全豹"。
簡單的講,所謂擬合是指已知某函數的若干離散函數值{f1,f2,…,fn},通
過調整該函數中若干待定系數f(λ1, λ2,…,λ3), 使得該函數與已知點集的
差別(最小二乘意義)最小。如果待定函數是線性,就叫線性擬合或者
線性回歸(主要在統計中),否則叫作非線性擬合或者非線性回歸。表
達式也可以是分段函數,這種情況下叫作樣條擬合。
而插值是指已知某函數的在若干離散點上的函數值或者導數信息,通
過求解該函數中待定形式的插值函數以及待定系數,使得該函數在給
定離散點上滿足約束。插值函數又叫作基函數,如果該基函數定義在
整個定義域上,叫作全域基,否則叫作分域基。如果約束條件中只有
函數值的約束,叫作Lagrange插值,否則叫作Hermite插值。
從幾何意義上將,擬合是給定了空間中的一些點,找到一個已知形式
未知參數的連續曲面來最大限度地逼近這些點;而插值是找到一個(
或幾個分片光滑的)連續曲面來穿過這些點。
具體插值擬合的計算參見本節7和第二節6/7/9/40的回復.
===================================
5).如何生成任意分布的隨機變量?
:#FangQ(Qianqian.Fang@dartmouth.edu),2002/6/21, BigGreen/MathTools #
首先要生成一個平均分布的偽隨機數a
最簡單的一種算法是同余法:
y(n+1)=a*y(n) mod M
其中(M, a) 常見的一組取值為(2^31-1= 2147483647, 7^5=16807),可以
生成[0~M-1]上的隨機數,通過線性變換可以得到0~1上的均勻隨機數
如果你需要產生概率分布函數(PDF)為f(x)的一維隨機變量,首先計算
它的概率累積函數(PCF) F(x)=Integrate[f(t),{t,0,x}],則F^-1(y)
既為所需要的隨機變量。其中F^-1為PCF的反函數,y為一個[0~1]上的
平均分布隨機變量。對于復雜的PDF無法求解反函數的,可以在資料上
查找"變換抽樣法"。
===================================
6).FFT輸入和輸出的意義是什么?
:#FangQ(Qianqian.Fang@dartmouth.edu),2002/6/21, BigGreen/MathTools #
我們可以把FFT簡單地看作一個變換器,輸入N+1個數,輸出N+1個數
,但他們對應的意義不同,如果把輸入當作時域,則輸出為頻域,表
怔了其對應域的變化快慢。
假設輸入信號本身的頻率為fc(或者說頻帶寬為fc),被頻率為fs的沖擊
串采樣(由采樣定理,fs >= 2*fc),則變換前的N+1個數字對應的x
軸為{t0,t1,…tN}={0,Ts,2*Ts,....,N*Ts} (其中Ts為1/fs,為采樣周期)
則變換后的N+1個數對應的x軸變為頻率,范圍為0~fs,以fs/N為間隔,
既為頻率點{0,fs/N,2*fs/N,……,fs},在matlab中如果用fftshift(fft(data))
,則變換后對應x軸為-fs/2~fs/2,如果滿足采樣定理的化,信號頻帶-fc~fc
就包含在轉換后的頻譜里面了,就不會有失真。
注意:變換后的數字為復數,因為其中包括了幅度的信
息,abs(fftshift(fft(data)))為幅度,angle(fftshift(fft(data)))為相位
===================================
7).我有一組x,y,z值,非規則點陣,如何繪制曲面或者等高線或者插值?
:#FangQ(Qianqian.Fang@dartmouth.edu),2002/6/12, SMTH/MathTools #
1.如果你使用matlab,有如下四種解決辦法
1.1:
tri=delaunay(x,y);
trimesh(tri,x,y,z); or trisurf(tri,x,y,z);
1.2: 如果你想得到更加精細和光滑的曲線,而且想繪制coutour
則需要用griddata()插值:
[xi,yi]=meshgrid(min(x):dx:max(x),min(y):dy:max(y));
[zi,xi,yi]=griddata(x,y,z,xi,yi,'cubic');
contourf(xi,yi,zi,20);
1.3: 如果你的matlab安裝有PDE Toolbox,可以使用pdeplot(),參見幫助
1.4: 如果你可以連接國外,可以使用MIT的Kirill K. Pankratov寫的SaGA
工具箱,下載地址在:
http://www.ai-geostats.org/software/Geostats_software/SAGA.htm
http://globec.whoi.edu/software/saga/
2.如果你使用Tecplot
1.先將三列數據按照順序保存在一個文本文件中
data.dat文件格式為
x1 y1 z1
x2 y2 z2
...
2. Tecplot菜單File\Load Data file,在左上角選擇2D
3. 選中zone,菜單Data\Triangulate
4. 雙擊該zone,將mesh掩藏掉,把contour打開,然后在
左上角選擇3D
5. 如果想插值,先創建一個更細的網格,然后用data菜單中
Interpolation
3.如果你使用Mathematica
data={{x1,y1,z1},{x2,y2,z2},......};
fun=Interpolation[data];
Plot3D[fun[x,y],{x,xmin,xmax},{y,ymin,ymax}];
ContourPlot[fun[x,y],{x,xmin,xmax},{y,ymin,ymax}];
當然,其他還有很多繪圖工具,有待補充
===================================
8).請問哪里能找到繪制等高線的算法?
:#FangQ(Qianqian.Fang@dartmouth.edu),2002/7/23, SMTH/MathTools #
在一般的計算機圖形學的教材中都有常見算法的描述,下面的網址
有免費的C代碼
http://members.bellatlantic.net/~vze2vrva/thesis.html
===================================
9).特征值與奇異值有什么區別?
:#dimond,2002/6/25, SMTH/MathTools #
特征值就不用說了,大家都知道。
奇異值的定義:對于任一個復(實)矩陣A(m*n),設A^為A的共軛轉置矩陣,
即A^是n*m階,則 A^*A (n*n階)的特征值的非負平方根為 A 的奇異值,
也就是A共有n個奇異值,且全部>=0.
A^*A 是一個半正定矩陣,所以它的特征值>=0
對于半正定的Hermit方陣而言,特征值與奇異值是一一對應的
===================================
10).條件數很大(病態)的矩陣如何求逆?
:#granule,2002/7/4, SMTH/MathTools #
有許多解法!實際上這作為數學的一個分支已經數學家
們抽象出來研究了很多年(ill-posed problems).文獻
多的不得了。
簡單的解法就是用regularization tools.(典型的是
Tikhonov regularization).還有許多迭代解法。
基本思想是要加約束。
for Ax=b, its standard Tikhonov solution is
x=inv(trans(A)*A+alfa*I)*Trans(A)*b
trans() means transpose; inv() is inverse;
alfa is a positive sclar. The quality of solution
depends on alfa directly. There is a optimal alfa
You can refer to the relevant topics such as:
inverse problems, ill-conditioned problems.
===================================
11).什么是Gaussian擬合?
:#FangQ(Qianqian.Fang@dartmouth.edu),2002/9/23, BigGreen/MathTools #
高斯擬合(Gaussian Fitting)即使用形如:
Gi(x)=Ai*exp((x-Bi)^2/Ci^2)
的高斯函數對數據點集進行函數逼近的擬合方法。
其實可以跟多項式擬合類比起來,不同的是多項式擬合是用冪函數系,
而高斯擬合是用高斯函數系。
使用高斯函數來進行擬合,優點在于計算積分十分簡單快捷。這一點
在很多領域都有應用,特別是計算化學。著名的化學軟件Gaussian98
就是建立在高斯基函數擬合的數學基礎上的。
>************************************************************************<
> 第二節:Matlab的常見問題
>************************************************************************<
===================================
1).Matlab 6.X在Windows 2000/XP上無法啟動
:#highsun,2001/3/2, SMTH/NewSoftware #
MathWorks的解決辦法雖然是針對繁體中文系統的,我試過在簡體
中文系統下一樣可以用。
http://www.mathworks.com/support/solutions/data/26985.shtml
http://www.mathworks.com/support/solutions/data/26990.shtml
Solution Number: 26990
Date Last Modified: 2001-01-30
Product: MATLAB 6.0 ==> Current Version
Platform: Windows
Problem Description
Why do I encounter problems when running MATLAB 6.0 (R12) on Hebrew
or
Traditional Chinese (Taiwan) Windows? I try to start MATLAB but after
the splash screen disappears, MATLAB exits.
PLEASE NOTE: This solution only applies to MATLAB 6.0. If you have a
similar problem with MATLAB 5.0 or the Student Edition of MATLAB 5.0,
see solution 7213.
Solution:
This problem is caused by a bug in one of the font properties files
we ship with MATLAB. The font.properties file is used by Java to map
the standard Java font names to system fonts for a particular
However, we made a few assumptions that do not hold for the Hebrew or
language operating system. Traditional Chinese Windows, causing
We have created a fixed version of the mwt.jar file that you can use
this problem. correct this. To use the fix, first rename your mwt.jar
to file as mwt.old. This file is found in the $MATLAB\java\jar
directory, where $MATLAB is your MATLAB root directory. Then
download the newer mwt.jar file from:
ftp://ftp.mathworks.com/pub/tech-support/solutions/s26990
and place it in your $MATLAB\java\jar directrory. Then restart
MATLAB;this should correct the problem you're seeing.
===================================
2).我有一組x,y,z值,非規則排列,如何在Matlab中繪圖?
:#FangQ(Qianqian.Fang@dartmouth.edu),2002/6/12, BigGreen/MathTools #
參見第一節問題7)
===================================
3).如何在給定句柄的axis里繪圖?
:#FangQ(Qianqian.Fang@dartmouth.edu),2002/6/12, SMTH/MathTools #
plot(data,'parent',haxis);
或者
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -