歡迎您光臨本站 登入註冊首頁

數學工具常見問題集

admin @ 2014-03-26 , reply:0

概述

文檔名稱:數學工具常見問題集語   言:簡體中文版本編號:Wiki版本文檔由[[FangQ]]維護作者主頁:http://bbs.dartmouth.edu/~fangq……

文檔名稱: 數學工具常見問題集
語    言: 簡體中文
版本編號: Wiki版

本文檔由[[FangQ]]維護

作者主頁: http://bbs.dartmouth.edu/~fangq/

任何建議、意見或參與FAQ維護,請到如下頁面
http://bbs.dartmouth.edu/~fangq/blog/index.cgi?action=discuss&id=MathTools/FAQ

    1. 第一節:一般性問題

        1.1. 關於這個FAQ
        1.2. 什麼叫數學工具?
        1.3. 數學軟體的主要分類有哪些?各有什麼特點?
        1.4. 什麼叫擬合?什麼叫插值?二者的區別是什麼?
        1.5. 如何生成任意分佈的隨機變數?
        1.6. FFT輸入和輸出的意義是什麼?
        1.7. 我有一組x,y,z值,非規則點陣,如何繪製曲面或者等高線或者插值?
        1.8. 請問哪裡能找到繪製等高線的演算法?
        1.9. 特徵值與奇異值有什麼區別?
        1.10. 條件數很大(病態)的矩陣如何求逆?
        1.11. 什麼是Gaussian擬合?

    2. 第二節:Matlab的常見問題

        2.1. Matlab 6.X在Windows 2000/XP上無法啟動
        2.2. 我有一組x,y,z值,非規則排列,如何在Matlab中繪圖?
        2.3. 如何在給定句柄的axis里繪圖?
        2.4. 由Matlab符號運算得到的公式怎麼才能將數據代進去運算?
        2.5. 在Matlab中如何求最值點?如何求一維數組的極值?
        2.6. Matlab中如何作線性擬合/線性回歸/多元線性回歸?
        2.7. Matlab中如何作圓回歸?
        2.8. Matlab中如何繪製箭頭?
        2.9. Matlab中如何作二維數據的插值?
        2.10. Matlab中如何繪製三維數據陣?
        2.11. Matlab中如何註解一大段代碼?
        2.12. Matlab中如何計算程序運行的時間?
        2.13. Matlab中如何改變默認的工作路徑?
        2.14. Matlab如何改變默認的圖形字體?
        2.15. 如何在Matlab中實現交互操作?
        2.16. Matlab中為什麼只能在小數點后顯示四位?
        2.17. Matlab如何在命令窗口按照格式輸出?
        2.18. 如何在Matlab中畫隱函數曲線?
        2.19. Matlab中什麼函數可以刪除矩陣的某一行或列?
        2.20. Matlab中能開的最大數組是由什麼決定的?
        2.21. 如何在Matlab中添加新的工具箱?
        2.22. 如何讀寫Matlab的.mat文件?
        2.23. 如何得到contour線上的坐標點?
        2.24. 如何將Matlab繪製的三維網格圖帖到word里?
        2.25. 請問可以查看Matlab中函數的源代碼嗎?
        2.26. Matlab有沒有求矩陣行數/列數/維數的函數?
        2.27. Matlab中如何中斷運算?
        2.28. Matlab中有沒有畫圓或橢圓的函數?
        2.29. Matlab下如何定義整形
        2.30. Matlab如何產生均勻分佈的白雜訊?
        2.31. 在Matlab中debug的時候能否跟蹤變數的?
        2.32. 請問在Matlab中怎樣輸入特殊符號啊或者上標、下標?
        2.33. Matlab中如何後台運行一個DOS程序?
        2.34. Matlab如何載入輸入文件(批處理模式) ?
        2.35. Matlab如何啟動時執行規定的文件?
        2.36. 如何在Matlab GUI中使用圖形背景?
        2.37. 大量數據點Matlab繪圖為什麼很慢?
        2.38. Matlab中如何求解廣義積分?即積分限到有無窮的或者有奇異點的積分(瑕積分)?
        2.39. 為什麼我的Matlab程序這麼慢?
        2.40. .Matlab中如何作非線性回歸?
        2.41. .Matlab中為什麼我對m文件、simulink模塊,mat文件的修改不起作用呢?
        2.42. .Matlab中,函數裡面怎樣使用基本工作空間中的變數?
        2.43. .怎樣在Simulink中調用m文件?
        2.44. .Matlab中怎樣進行數制轉換?
        2.45. matlab中的*.p是什麼文件?怎麼用?
        2.46. 在Matlab中有goto語句嗎?
        2.47. 請問matlab6.X的那個matlab server是做什麼的?(matlab開機運行問題)
        2.48. Matlab中如何用滑鼠取得坐標?
        2.49. Matlab中有階乘函數嗎?
        2.50. .怎樣才能把Maltab學精?
        2.51. .Matlab如何計算大階乘?
        2.52. .Matlab中怎樣求變上限二重積分?
        2.53. .用符號積分算出來Ei是什麼意思,怎樣求值?
        2.54. .Maltab中使用\n換行在notepad中顯示為小黑塊,為什麼?(Randy Poe)
        2.55. .Matlab中能開多大數組?(Steven Lord)
        2.56. .如何使用整型矩陣來節省內存?(Duane Hanselman)
        2.57. Matlab在P4晶元上無法啟動的解決方案
        2.58. 如何求解對離散點的最優橢圓擬合?(Andrew Fitzgibbon, et al)
        2.59. Matlab/Mathematica中如何中斷當前運算?(FangQ)
        2.60. .Matlab/Mathematica中如何檢查括弧匹配?(FangQ)
        2.61. .Matlab的GUI中為何無法使用uicontrol的句柄?(FangQ)
        2.62. .Matlab中如何把向量拓展成矩陣?(Zealous/FangQ)
        2.63. .Matlab的GUI中的按鈕如何在運行時移動及改變大小?(FangQ)
        2.64. .Matlab如何求解維數巨大的稀疏矩陣方程?(FangQ)

    3. 第三節:Mathematica的常見問題

        3.1. Mathematica 可以定義變數為實數么?
        3.2. Mathematica中如何中斷運算?
        3.3. 請高手推薦Mathematica參考書
        3.4. 請問在Mathematica中如何畫極坐標圖?
        3.5. Mathematica中如何對離散點作積分?
        3.6. 在Mathematica中創立palette?
        3.7. Mathematica可以作用戶界面嗎?
        3.8. Mathematica中如何使用中文?
        3.9. .Mathematica中如何使用Solve[]求解的結果?(FangQ)

    4. 第四節:Matcom的常見問題

        4.1. 什麼是Matcom?它與Matirx/MIDEVA的關係是什麼?
        4.2. 如何取出matcom矩陣的元素的值並交給C語言變數?
        4.3. Matcom中有多個輸出的函數在C++中應該怎麼調用?
        4.4. 如何在VC或C++Builder中使用matcom數學庫?
        4.5. 使用了matcom4.5數學庫的VC/C++Builder程序如何發布?
        4.6. 安裝matcom在搜索matlab路徑時說找不到matcom.m,怎麼辦?
        4.7. 如何將C語言變數轉換為Mm?
        4.8.使用MIDEVA在編譯有些工具箱和simulink的程序時出錯,請問是什麼原因?

    5. 第五節:Matlab與其他語言和軟體的介面問題

        5.1. 如何在Matlab中讀取Excel的xls數據文件?
        5.2. 如何在Excel中嵌入Matlab?
        5.3. mcc,mex,mbuild都是作什麼用的?
        5.4. 用mcc生成的獨立執行exe文件怎麼發布?
        5.5. 如何在VC中調用Matlab engine?
        5.6. 如何在Matlab調用外部的c/c++/fortran函數?
        5.7. 如何在Delphi中調用Matlab(ActiveX)?
        5.8. 如何在C++ Builder中調用Matlab(ActiveX)?
        5.9. 如何在VB中調用Matlab(ActiveX)?
        5.10. 如何在VC中調用Matlab編譯的cpp文件
        5.11. 如何在VC中調用mcc編譯的dll?
        5.12. 如何在Matlab中調用其他軟體的ActiveX介面?

    6. 第六節:高級語言數值、數學編程的問題

        6.1. 如何在Visual Fortran中畫圖?
        6.2. 在FORTRAN中如何動態開數組
        6.3. 如何在Visual Fortran中使用LAPACK?
        6.4. 如何在各種平台上編譯含有Lapack的Fortran程序?

    7. 第七節:其他數學軟體常見問題
    8. 第八節:數學排版輸入語言和軟體

        8.1. LaTeX如何修改行間距
        8.2. LaTeX如何讓表格的cell能寫多行?
        8.3. 如何轉換Word->PDF?
        8.4. 如何轉換Word->Latex?
        8.5. LaTeX如何使用中文?
        8.6. 如何在LaTeX中使得希臘字母顯示為粗體,\mathbf不起作用?
        8.7. LaTeX中引用參考文獻[1~10]怎麼產生?
        8.8. LaTeX中的計數器怎麼用?
        8.9. Mathematica中繪製的圖,如何插入到LaTeX文檔中?
        8.10. Matlab中繪製的圖,如何插入到LaTeX文檔中?
        8.11. Tecplot中繪製的圖,如何插入到LaTeX文檔中?
        8.12. Word/Powerpoint中繪製的圖,如何插入到LaTeX文檔中?

    9. 第九節:數學建模競賽

        9.1. 什麼是全國大學生數學建模競賽CUMCM?
        9.2. 什麼是美國數學建模競賽MCM?
        9.3. 哪裡能找到合適的數學建模書籍和試題資料?
        9.4. 我是研究生,是否還可以參加數學建模競賽?
        9.5. 哪裡能找到最新的全國大學生數學建模競賽的優秀論文?
        9.6. 請問哪裡可以找到C/C++/Fortran數學函數庫
        9.7. 請推薦好的中文數學軟體論壇或網站
        9.8. 如何使用國外新聞組(newsgroup)資源?

MathTools FAQ正文

1.

[返回]

1.1.

    #FangQ,2002/6/22, [SMTH/MathTools] #

        為什麼要寫這個FAQ呢?簡單一點,就是為了避免重複,慢慢積累,提高水平。

        簡單問題的重複其實是BBS上學術板塊的一個老問題,以前就有人提過,最近在水木清華的MathTools上lll又提出來,所以決定借鑒國外newsgroup的傳統,自己動手寫中文的FAQ,把那些幾年前就在問、現在仍然在問的一些老問題全部都收錄在這裡,給他們畫一個句號。等版面上沒有了這些老問題,自然會有新的、難的問題出來,等這些問題又成為FAQ的時候,大家的水平就慢慢提高了。

        不過自己想來,其實這仍然不是長久解決這個問題的辦法,這是一個學術傳統的問題,需要大家去創造這樣一種勤奮、踏實的學術大環境,告訴在這樣一個環境中參與交流和尋求幫助的人,當你遇到問題,首先要有自己鑽研的精神,不要輕易地把這樣鍛煉自己能力的機會給否定掉,而去期待或者"懇求"別人的幫助來替自己尋找偷懶的理由,然後才是去有效地尋找資料,或者當自己考慮比較成熟的時候在公眾論壇上提出自己的問題。

        當然,上面主要是對於你本專業的問題而言,要先思考,再提問,但 如果非專業的,僅僅用一下就不再使用的,不妨去儘早尋求幫助的好。

        這個FAQ今後每個月會更新一次,最新的文檔地址參見文件頭。如果有新的問題收錄,文檔開頭會有一個小的更新列表。原有的解答會被更詳細和正確的解答代替,但原解答的作者信息將繼續保存。

        每個問題的答覆開頭都有一行作者信息,格式為

        :#作者姓名或者ID(聯繫方式或Email地址),更新日期,發表地址#

        在本FAQ中引用WWW上獲得的代碼或者文檔時,都將作者信息附在文檔中,以表示對作者的尊重。

        本文檔的維護原則:歡迎轉載到其他BBS或學術網站,但在轉載時請將文件頭完整保留。如果僅轉載文章內個別問題的回復,請將該
        回復的作者信息保留。本文檔未經維護人或各問題回復的作者的許可  ,嚴禁以商業目的將本文全部或者部分內容出版。本文檔的維護人及各問題回復的作者具有文章的所有權和最終解釋權。

        本文檔的使用原則為免費,本文檔維護人對使用本文檔內容所造成的任何不當後果不承擔任何意義上的責任,文檔作者不對文檔中的代碼的安全性和正確性作任何形式的承諾。

[返回]

1.2.

    #FangQ,2002/6/19, BigGreen/MathTools#

        廣義的講,我們可以把數學本身看作一種工具,她是人類認識這個紛繁複雜的世界的眼睛和鑰匙,數學用量化和邏輯為描述事物的運動變化提供了統一的和嚴密的基礎,並通過不斷衍生新的數學分支來為描述人類所認知的日趨複雜的世界體系提供強大有力的工具。

        狹義的講,我們這裡涉及的"數學工具"除了部分數學理論和演算法之外 ,主要內容為數學軟體,即通過使用計算機,進行特定數學計算或者數學表述來實現功能的軟體。

        再狹義地講,數學工具是水木清華和BigGreen BBS上兩個版面的名字,這裡面聚集了很多很多認識的和不認識的熱愛數學、使用數學軟體的朋友,這個FAQ就是獻給他們的。

[返回]

1.3.

    #FangQ,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)

        上述分類比較籠統,很多軟體的功能也有交叉,經驗和篇幅限制,不能逐一而論。

[返回]

1.4.

    #FangQ,2002/6/21, BigGreen/MathTools #

        插值和擬合都是函數逼近或者數值逼近的重要組成部分

        他們的共同點都是通過已知一些離散點集M上的約束,求取一個定義 在連續集合S(M包含於S)的未知連續函數,從而達到獲取整體規律的目的,即通過"窺幾斑"來達到"知全豹"。

        簡單的講,所謂擬合是指已知某函數的若干離散函數值{f1,f2,…,fn},通 過調整該函數中若干待定係數f(λ1, λ2,…,λ3), 使得該函數與已知點集的差別(最小二乘意義)最小。如果待定函數是線性,就叫線性擬合或者  線性回歸(主要在統計中),否則叫作非線性擬合或者非線性回歸。表達式也可以是分段函數,這種情況下叫作樣條擬合。

        而插值是指已知某函數的在若干離散點上的函數值或者導數信息,通過求解該函數中待定形式的插值函數以及待定係數,使得該函數在給 定離散點上滿足約束。插值函數又叫作基函數,如果該基函數定義在整個定義域上,叫作全域基,否則叫作分域基。如果約束條件中只有函數值的約束,叫作Lagrange插值,否則叫作Hermite插值。

        從幾何意義上將,擬合是給定了空間中的一些點,找到一個已知形式未知參數的連續曲面來最大限度地逼近這些點;而插值是找到一個( 或幾個分片光滑的)連續曲面來穿過這些點。

        具體插值擬合的計算參見本節7和第二節6/7/9/40的回復.

[返回]

1.5.

    #FangQ,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無法求解反函數的,可以在資料上查找"變換抽樣法"。

[返回]

1.6.

    #FangQ,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)))為相位

[返回]

1.7.

    #FangQ,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));
                         [xi,yi,zi]=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}];

        當然,其他還有很多繪圖工具,有待補充

[返回]

1.8.

    #FangQ,2002/7/23, [SMTH/MathTools] #

         在一般的計算機圖形學的教材中都有常見演算法的描述,下面的網址有免費的C代碼
                 http://members.bellatlantic.net/~vze2vrva/thesis.html

[返回]

1.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方陣而言,特徵值與奇異值是一一對應的

[返回]

1.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.

[返回]

1.11.

    #FangQ,2002/9/23, BigGreen/MathTools #

        高斯擬合(Gaussian Fitting)即使用形如:

          Gi(x)=Ai*exp((x-Bi)^2/Ci^2)

        的高斯函數對數據點集進行函數逼近的擬合方法。

        其實可以跟多項式擬合類比起來,不同的是多項式擬合是用冪函數系,而高斯擬合是用高斯函數系。

        使用高斯函數來進行擬合,優點在於計算積分十分簡單快捷。這一點在很多領域都有應用,特別是計算化學。著名的化學軟體Gaussian98就是建立在高斯基函數擬合的數學基礎上的。

2.

[返回]

2.1.

    #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.2.

    #FangQ,2002/6/12, BigGreen/MathTools #

        參見第一節問題7)

[返回]

2.3.

    #FangQ,2002/6/12, [SMTH/MathTools] #

        plot(data,'parent',haxis);
        或者
        hbar=bar(data);
        set(hbar,'parent',haxis);

[返回]

2.4.

    #ramjet (德芙)2002/3/3, [SMTH/MathTools] #

        使用subs(),或先將值賦予一個符號變數,然後用eval()

[返回]

2.5.

    #FangQ,2002/6/18, [SMTH/MathTools]#

        最值:
        一維或多維數組最值用max(data(:))
        如果想返回最值所在的位置,用[Y,I]=max(data)

    #FangQ, 2001/4/21,UESTC/Math#

        極值:
        data是你的數據,
        find(diff(sign(diff(data)))==-2)+1
        找到極大值的位置

        find(diff(sign(diff(data)))==2)+1
        找到極小值的位置

        data(find(diff(sign(diff(data)))==-2)+1)和
        data(find(diff(sign(diff(data)))==2)+1)
        返回的是極大值和極小值

[返回]

2.6.

    #FangQ,2002/6/21, BigGreen/MathTools #

        即用y=a*x+b來擬合一組數據{{x1,y1},{x2,y2}…{xn,yn}}
        matlab中使用polyfit
        x=data(:,1);
        y=data(:,2);
        p=polyfit(x,y,1);
        p(1)為斜率a,p(2)為截距b

        多元線性回歸即用y=a1*x1+a2*x2+..+am*xm來擬合數據點{x1i,x2i,…xmi,yi}
        (i=1~n)

          |x11,x21,…xm1|
        A=|x12,x22,…xm2|
          |……………   |
          |x1n,x2n,…xmn|

        Y={y1,y2,y3,…,yn}'

        則係數{a1,a2,…,am}'=pinv(A)*Y
        在matlab中使用
        coeff=A\Y
        則可以得到最小二乘意義上的擬合係數

[返回]

2.7.

    #Peter Boettcher (boettcher@ll.mit.edu),2002/5/16, comp.soft-sys.matlab#

        Q5.5: How can I fit a circle to a set of XY data?

==============

           An elegant chunk of code to perform least-squares circle fitting was written by Bucher Izhak and has been floating around the newgroup for some time.  The first reference to it that I can find is in:

                 function [xc,yc,R,a] = circfit(x,y)
                 %CIRCFIT  Fits a circle in x,y plane
                 %
                 % [XC, YC, R, A] = CIRCFIT(X,Y)
                 % Result is center point (yc,xc) and radius R.A is an
                 % optional output describing the circle's equation:
                 %
                 %   x^2+y^2+a(1)*x+a(2)*y+a(3)=0

                 % by Bucher izhak 25/oct/1991

                 n=length(x);  xx=x.*x; yy=y.*y; xy=x.*y;
                 A=[sum(x) sum(y) n;sum(xy) sum(yy)...
                    sum(y);sum(xx) sum(xy) sum(x)];
                 B=[-sum(xx+yy) ; -sum(xx.*y+yy.*y) ; -sum(xx.*x+xy.*y)];
                 a=A\B;
                 xc = -.5*a(1);
                 yc = -.5*a(2);
                 R  =  sqrt((a(1)^2+a(2)^2)/4-a(3));

           Tom Davis provided a more sophisticated approach that works for more cases in  and Code included.

[返回]

2.8.

    #FangQ,2002/6/21, [SMTH/MathTools] #

        到http://www.mathworks.com/matlabcentral/fileexchange/index.jsp
        2-D Plotting and Graphics中查找arrow.m,或者
        http://www.mathworks.com/matlabcentral/spotlight/arrows.shtml
        http://www.math.umd.edu/~jec/matcomp/matcompmfiles/mfiles.html

[返回]

2.9.

    #FangQ,2002/6/21, BigGreen/MathTools #

        對於一維、二維、三維規則數據點陣使用interp1/interp2/interp3,
        二維、三維非規則數據用griddata/griddata3

[返回]

2.10.

    #FangQ,2002/6/21, BigGreen/MathTools #

        如果使用matlab,打開幫助窗口,在目錄樹上找到MATLAB\Using Matlab            3-D Visualization: Volume Visualization Techniques

        如果圖形複雜,建議使用Tecplot,參見Tecplot手冊中數據格式,將你的三維數據讀入Tecplot,雙擊zone,可以設置mesh/contour/surface transparency等。

        在Field菜單中有3D Iso-surface Details和3D Slice Details,可以繪製等值面和任意平面的截面圖。

[返回]

2.11.

    #hyphone,2002/7/6, [SMTH/MathTools] #

        註釋大段代碼選中代碼,Ctrl+R;取消註釋,選中代碼,Ctrl+T。或者用Edit菜單或者右鍵彈出中的註釋。

    #misc,2002/6/21, [SMTH/MathTools] #

        if(0)
        大段的代碼
        end

[返回]

2.12.

    #misc,2002/6/21, [SMTH/MathTools] #

        tic
          your_code;
        toc
        或者使用
        t=cputime;
          your_operation;
        cputime-t

[返回]

2.13.

    #SindyGong, 2002/4/7, [SMTH/MathTools] #

        編輯一個startup.m文件,其中cd yourpath
        或者在X:\matlab\toolbox\local\matlabrc.m的最後添加cd yourpath
        參見:
        http://www.mathworks.com/support/solutions/data/25164.shtml

[返回]

2.14.

    #comp.soft-sys.matlab FAQ#

        編輯一個startup.m文件,其中
        set(0,'DefaultObjectnamePropertyName',Value)
        或者在X:\matlab\toolbox\local\matlabrc.m的最後添加
        set(0,'DefaultObjectnamePropertyName',Value)

[返回]

2.15.

    #FangQ,2002/6/21,BigGreen/MathTools #

        如果只在命令窗口進行交互操作,請參見demo中的例子,主要是
        通過input命令和pause/clear/disp等實現的,還有一些窗口資源可以使
        用:
        uigetfile,uiputfile,uiwait,uisetcolor,uisetfont, uiopen,uisave
        inputdlg,msgbox,helpdlg,questdlg,warndlg,errordlg

[返回]

2.16.

    #FangQ,2002/6/21,BigGreen/MathTools #

        用format命令來改變命令窗口數字的顯示格式和精度,但不會影響matlab的計算精度,matlab的矩陣運算默認都是雙精度浮點型運算。

[返回]

2.17.

    #FangQ,2002/6/21,SMTHTools #

        fprintf(1,"your_format_string",var1,var2,…);

[返回]

2.18.

    #FangQ,2002/6/21,BigGreen/MathTools #

        在http://www.mathworks.com/matlabcentral/fileexchange/index.jsp
        查找implicit,會找到一個Arthur Jutan寫的implot.m
        Mathematica中繪製隱函數用ImplicitPlot[]
        或者ImplicitPlot3D[]
        Maple中為implicitplot(),implicitplot3d()
        參見
        http://engineering.dartmouth.edu/~fangq/MATH/download/source/

         ImplicitPlot3D.htm

[返回]

2.19.

    #FangQ,2002/6/21,BigGreen/MathTools #

        A(j,:)=[];  %刪除A的第j行
        A(:,i)=[];  %刪除A的第i列

[返回]

2.20.

    # chenft (mike),2002/6/1, [SMTH/MathTools] #

      I have had similar problems. Below is an explanation I received from  Ian Boyd from Mathworks (just giving credit where credit is due) that explains what's happening. You solution is to run matlab with the -nojvm mode."The heap memory system in JAVA consists of data and handle elements. When you allocate a variable you get a handle and data. As long as  data has an associated handle, the JVM considers it valid and will not clean it up.

      However, when you call the clear function in MATLAB, all handles are destroyed, and the data associated is now invalid. This means that  the JAVA engine can free up that data (garbage collection), but does not mean that it will clean it up at that moment.

      Calling the PACK command encourages JAVA to run the garbage collector and de-fragment the memory. But it does not force it to (This is part 
      of the JAVA design). Even though the memory is 'freed' on the heap,  it is not actually free to the OS, it is only free to the JVM. Here  is one way to think of it:

      [MATLAB]
      [JAVA]
        [OS]
      MATLAB runs on JAVA (virtual machine), and Java runs on the OS (physical machine). So when MATLAB is running in JAVA mode memory allocations  are requested from the JRE, not the OS.

      One problem you may be running into is that the default maximum JAVA heap size is relatively low ( <= 64 MB), so that is all the memory one session of MATLAB will ever get on your system.

      The good news is that you can increase this value. You will need to create a java.opts file in $MATLAB/bin/$ARCH (or in the current directory when  you start MATLAB) and put the following command:

      %%%BEGIN CODE%%%
      maxHeapSize = 268435456
      %%%END CODE%%%

      This will give you 256MB of JVM memory and you can adjust the parameter as needed.

      Note: $MATLAB is the root directory and $ARCH is your system architecture. This solution works on Windows as well as Solaris, Linux,Alpha, and SGI. A similar operation is possible on IBM and HPUX, but with a different syntax.

      For the 1.1.8 JVM (Windows, Linux, Solaris, Alpha, SGI) our defaults are:

         minHeapSize = 16000000
         maxHeapSize = 64000000

      These are the structure field names in  that correspond to -ms and -mx, and the settings above are roughly 16MB and 64MB.To investigate the Java heap a bit, ask via the following:
         >> java.lang.Runtime.getRuntime.totalMemory
         >> java.lang.Runtime.getRuntime.freeMemory

      When the free memory hits zero, Java will double the heap size (up to the maximum setting).

      If you choose to run without Java, you will remove the overhead of the middle man, but you will also lose some MATLAB functionality (mostly graphics and the Editor). You will still have most of the computational power though.

      Without JAVA, memory management will come directly from the OS, and a CLEAR operation will result in memory being freed back to the OS.

[返回]

2.21.

    #FangQ,2002/6/21,BigGreen/MathTools #

        如果是Matlab安裝光碟上的工具箱,重新執行安裝程序,選中即可。如果是單獨下載的工具箱,一般情況下僅需要把新的工具箱解壓到某個目錄,然後用addpath(對於多個目錄的使用genpath()或者pathtool添加工具箱的路徑,然後用which newtoolbox_command.m來檢驗是否可以訪問。如果能夠顯示新設置的路徑,則表明該工具箱可以使用了。具體請看工具箱自己代的README文件。

[返回]

2.22.

    #FangQ,2002/6/21,BigGreen/MathTools #

        文件結構參見:
        http://www.mathworks.de/access/helpdesk/help/pdf_doc/matlab/
          matfile_format.pdf
        http://www.mathworks.com/support/solutions/data/8757.shtml

        ftp://ftp.mathworks.com/pub/tech-support/solutions/s8757/
          readmemat.txt

        建議使用matlab自己提供的函數來讀寫簡單安全,或者參考:
        http://engineering.dartmouth.edu/~fangq/MATH/download/
           source/mat_file.txt
        來自matlab的c math library

[返回]

2.23.

    #FangQ,2002/6/21,BigGreen/MathTools #

        lcount=5;
        [c,h]=contour(peaks,lcount);
        x=get(h,'xdata');
        y=get(h,'ydata');

        這裡得到的x和y都是cell數組,用x{1}/y{1}來得到每條線上的坐標對,注意,每條線的最後一個數據是NaN

[返回]

2.24.

    #FangQ,2002/6/21,BigGreen/MathTools #

        如果需要點陣圖,好處是所見即所得,壞處是圖像精度差,不能放縮:
                1.用拷屏 Alt+PrintScreen
                2.在圖形窗口菜單Edit\Copy Options….\選擇Bitmap,可以選擇透明背景,然後Edit\Copy Figure

        如果需要拷貝矢量圖:
                在圖形窗口菜單Edit\Copy Options….\選擇Metafile,然後Edit\Copy Figure,在Word中粘貼

        經常地,按照Metafile方式粘貼的圖片曲線會出現鋸齒,最好的方式是使用eps文件:
                1.將需要拷貝的圖作為當前窗口
                2.再轉換到matlab命令窗口,print -deps filename.eps
                3.-deps還可以用depsc,deps2,depsc2
                4.在word中插入圖片,選中該eps,如果是word 2000以前版本,不會顯示圖片內容,但可以列印,word XP即可顯示,又可列印。
                5.如果不滿意,可以在word中雙擊編輯,如果安裝有Adobe Illustrator等矢量圖像編輯軟體,也可以進行編輯。

[返回]

2.25.

    #FangQ,2002/6/21,BigGreen/MathTools #

        Matlab除了buildin函數和mex/dll文件看不到原碼,其他如工具箱等都可
        以直接看到代碼,首先確認該文件安裝在matlab中,即which
        filename.m存在,然後可以edit filename.m

[返回]

2.26.

    #FangQ,2002/6/21,BigGreen/MathTools #

        ndims(A)返回A的維數
        size(A)返回A各個維的最大元素個數
        length(A)返回max(size(A))
        [m,n]=size(A)如果A是二維數組,返回行數和列數
        nnz(A)返回A中非0元素的個數

[返回]

2.27.

    #FangQ,2002/6/21,BigGreen/MathTools #

        在命令窗口按Ctrl+C,在UNIX/LINUX會立即中斷運算,在Windows可能由於操作系統的原因,有時會出現死機和等待的情況。

[返回]

2.28.

    #FangQ,2002/6/21,BigGreen/MathTools #

        沒有,Matlab沒有提供直接繪圓的圖元函數,需要自己寫代碼,其實就兩句:
        sita=0:pi/20:2*pi;
        plot(r*cos(sita),r*sin(sita)); %半徑為r的圓

        plot(a*cos(sita+fi),b *sin(sita+fi)); %橢圓

        如果是單位圓,可以使用rectangle('Curvature', [1 1])

[返回]

2.29.

    #修改:fhorse (馬不停蹄),2002/6/21,[SMTH/MathTools] #

        Matlab默認的矩陣數據結構都是雙精度浮點型,即64位來表示一個數字,大多數的函數和操作都定義在double數據結構,如果你需要把double的數據轉換為整形,然後再參與運算,需要使用double(int32(x))或者floor/round/ceil等函數

        如果為了節省內存,只進行賦值、列印等簡單操作,可以參見uint8/uint16/uint32命令的幫助

[返回]

2.30.

    #misc,2002/6/21,[SMTH/MathTools] #

        help rand  均勻分佈百雜訊
        help randn高斯分佈百雜訊

[返回]

2.31.

    #FangQ,2002/6/21,BigGreen/MathTools #

        可以,如果使用medit,設置斷點后可以用滑鼠移到所看的變數上,顯示當前的值,或者在命令窗口打該變數名直接回車。如果在代碼中實現調試斷點等功能,參
        見dbstop,dbcont,dbstep,dbclear,dbtype,dbstack,dbup,dbdown,dbstatus,dbquit

[返回]

2.32.

    #FangQ,southerner(笑著),2002/6/6,[SMTH/MathTools]#

        matlab的text/title/xlabel/ylabel對象支持簡單的TeX排版語法,如希臘字母,上下標等例如text(0.5,0.5,'\alpha^\beta_2');

[返回]

2.33.

    #FangQ, 2002/6/4. BigGreen/en_Matlab#

        這裡是一個後台執行一個需要外部輸入的DOS命令的例子,需要的輸入實事先都寫在同目錄下的input.txt文件中:

        dos('myexe < input.txt &')

[返回]

2.34.

    #翻譯自:comp.sys-soft.Matlab FAQ. BigGreen/en_Matlab#

        PC上可以使用matlab /r參數來在matlab啟動的時候直接載入運行m文件,在UNIX上,使用matlab < MyMFile > MyOutputFile來外部執行MyMFile,

        以上執行方式都可以通過腳本文件實現批處理

[返回]

2.35.

    #FangQ, 2002/5/29.BigGreen/en_Matlab#

        參見上一個問題的回答

[返回]

2.36.

    #FangQ, 2002/5/29.BigGreen/en_Matlab#

        這是一個簡單的例子:

        [A,map]=imread('yourimg.gif');

        imagesc(A)
        colormap(map)
        set(gca,'position',[0 0 1 1])
        axis off

        ax2=axes('position',[0.2,0.2,0.6,0.6]);
        plot(rand(1,10),'parent',ax2);  
        set(ax2,'color','none')      

[返回]

2.37.

    #FangQ, 2002/6/22.BigGreen/en_Matlab#

        1.首先看能否用已有函數對整個矩陣繪圖,比如mesh/plot3/trimesh等
        2.如果必須一點一點/或者一條線一條線的添加,最好作如下設置:
          doublebuffer=on
          erasemode=none
          backingstore=off
          renderer=opengl
          以及參考MathWorks對於高速繪圖的tips:
          http://www.mathworks.com/support/tech-notes/v5/1200/1203.shtml,

[返回]

2.38.

    #FangQ, 2002/6/22. BigGreen/en_Matlab#

        Matlab的quad/quad8隻能作定積分,廣義積分需要自己來寫程序逼近,流程大概如下:

                1.設定收斂限epsi
                2.把為inf/-inf或者歧義點的積分限設置為一個初始值,k=1
                3.計算定積分Q(k)
                4.然後朝著inf/-inf或者歧義點移動一個步長,然後計算定積分Q(k+1)
                5.判斷(abs(Q(k+1)-Q(k))

        Mathematica中可以使用NIntegrate[],對於無窮振蕩的函數,可以使用Method->QuasiMonteCarlo或者Oscillatory]

[返回]

2.39.

    #FangQ, 2002/6/22. BigGreen/en_Matlab#

        我們工學院的收發室的門上貼著一張小紙條,寫的是"Our policy is always blaming the computer"

        大多數的人在遇到問題的時候,總是責備計算機如何如何,別人如何如何,其實,最最主要的因素是在於自己。

        一個程序運行快慢,有很多因素決定,最主要的是演算法,簡煉而優美的的數學公式勝過100遍的優化。能從演算法上改進,才能比別人有根本的優勢。計算機也很重要,以前我總把自己用的PC看成萬能的加以崇拜,對UNIX嗤之以鼻,結果當自己真正開始算起來,才知道差別有多大。搞大型數值計算的,沒有好的工作站或者并行系統,就輸在了起跑線上了。然後是程序的優化,看看變數是否佔用太多內存,看看是否有功能重複的模塊或者計算,經常的是用犧牲內存來換取速度,具體取捨,具體需要來決定。用profile看看哪些語句佔用時間最多,然後把核心部分進行優化。

        如果是使用Matlab,使用vectorization和矩陣整體操作的代碼要比大量的for循環快很多,eval/inline函數如果出現在核心循環,也會讓速度下降幾時倍的。

[返回]

2.40.

    #FangQ, 2002/6/22. BigGreen/en_Matlab#

        請參考
        http://www.mathworks.com/support/solutions/data/10652.shtml

        matlab默認只提供了多項式擬合的函數polyfit,對於其他稍微簡單一點的擬合,如標準的指數、對數、高階多項式擬合,都有解析公式,參見:
        http://mathworld.wolfram.com/LeastSquaresFitting.html
        對於更加複雜的非線性函數,建議使用Mathematica或者DataFit

        Mathematica中提供了Fit[],以及<< Statistics`NonlinearFit`NonlinearFit[],NonlinearRegress[]可以擬合任意複雜的表達式。

        DataFit可以自定義擬合模型,適用於複雜系統的擬合。

[返回]

2.41.

    hyphone,2002/7/6,[SMTH/MathTools]#

        檢查Matlab路徑中是否有與你的m文件、mdl文件或者mat文件同名的m文件、mdl文件或者mat文件。Matlab執行搜索到的第一個文件。

[返回]

2.42.
為什麼inline函數不能使用外面的變數?

    hyphone,2002/7/6,[SMTH/MathTools]#

        函數只能存取它自己的工作空間中的變數。要在函數之間,或者函數與基本工作空間之間傳遞數值,嘗試以下方法:
        1、使用全局變數,用global定義全局變數
        2、使用evalin:
                evalin('base','v=1;');  %在基本工作空間中執行命令:v=1;
                evalin('caller','v=1;');%在調用該函數的函數的工作空間中執行命令:v=1;
        3、參數傳遞
        4、使用assignin:
                assignin('base','v',v); %將v賦給基本工作空間中的變數v;
                assignin('caller','v',v);  %將v賦給調用者工作空間中的變數v;
        inline函數裡面只能出現函數和參數,要傳遞一個可變係數,需要用evalin。
        如:fzero('f(evalin(base,x1(i)),x3)',求解區間)

[返回]

2.43.

    hyphone,2002/7/6,[SMTH/MathTools]#

        函數m文件可以使用Function & Tables中的Fcn模塊。如果有多個輸入,用Mux組合成一個向量,然後在Fcn模塊的Expression填MyFunction(u(1),u(2))"。如果有多個輸出,用Demux分解成多個標量。

[返回]

2.44.

    hyphone,2002/7/6,[SMTH/MathTools]#

        參見:hex2dec,oct2dec,bin2dec,dec2bin,dec2oct,dec2hex.

[返回]

2.45.

    #David Martin(dg.martin@home.deleteme.com), 2000/07/07,comp.soft-sys.matlab#

        p文件是pre-parsed的縮寫,即matlab在第一次運行某m文件時,matlab把該文件先編譯成一種matlab的pseudo-code,當你再次運行該m文件時,節省了parse的時間。

        p文件可以離開m文件單獨運行

</a>

    #Mike Robbins (michael.robbins@us.cibc.com),2001/04/20,comp.soft-sys.matlab#

        在matlab中用pcode('yourfilename')來生成p文件

[返回]

2.46.

    #FangQ, 2002/7/23. BigGreen/en_Matlab#

        matlab中沒有提供goto,因為結構化程序設計不推薦使用goto,但在matlab中,goto的功能可以部分用結構化的異常處理機制來實現,比如從多重循環中跳出,具體代碼為:

        try
           for i=1:10
             for j=1:10
                   for k=1:10
                      do_something;
                          if(jump_condition)
                             errorid=-2;
                             error('I want to get out!');
                          end
                    end
                  end
                end
        catch
            fprintf(1,'catch error:%d',errorid);
        end

[返回]

2.47.

    #hairhead, 2002/4/3. [SMTH/MathTools]#

      如果你在安裝matlab時選擇了web server的話,在每次重新啟動后系統進程中就會出現matlab/matlabserver兩個進程,如果你不需要使用matlab webserver服務的話,建議在安裝時不要選擇web server,如果已經安裝的話,可以在"控制面板->管理工具->服務"中找到matlab webserver,然後把它disable掉。

[返回]

2.48.

    #FangQ, 2002/11/19. BigGreen/en_Matlab#

      matlab中用ginput來取得圖像上的一點。注意:image()/imagesc()對象的y軸是和一般圖的y軸反的。

      如果複雜的話,可以在ButtonDownFcn中get(0,'PointerLocation')或者get(gcf,'Position');

[返回]

2.49.

    #FangQ, 2002/7/23. BigGreen/en_Matlab#

      matlab沒有提供直接的階乘函數,但可以用prod(1:n)來求n!用prod(1:2:2n-1)或者prod(2:2:2n)來求解n!!

[返回]

2.50.

    #energy(長白山), 2002/9/23. [SMTH/MathTools]#

      "帶著問題學,活學活用,學用結合,急用先學,立竿見影,在'用'字上狠下功夫。"

[返回]

2.51.

    #lll, 2002/9/18. [SMTH/MathTools]#

      如果只需要大致的值,取log10,計算出result=log10(1000!)=log10(1)+log10(2)+...log10(1000)然後求10^result=10^result的小數部分*10^result的整數部分

[返回]

2.52.

    #hyphone,2002/9/22, [SMTH/MathTools] #

        對於解析函數,用兩次int即可。
        如求x+y在0<y<1;0<x<y上的積分:
        int(int('x+y','x',0,'y'),'y',0,1)

[返回]

2.53.

    #hyphone,2002/9/22, [SMTH/MathTools] #

        Ei是maple中的指數積分函數,表示exp(-x*t)/t^n對t從1到正無窮大的積分。
        Ei(n,x) = int(exp(-x*t)/t^n, t=1..infinity)
        用命令“mhelp Ei”可以查看詳細說明;用符號計算得到的不明白的函數都可以通過mhelp命令得到幫助。
        求Ei(1,2)可以用maple命令得到:str2num(maple('evalf(Ei(1,2))'))。

[返回]

2.54.

    #Randy Poe,2002/10/21,comp.soft-sys.matlab#</a>
    #Peter J. Acklam(pjacklam@online.no),2002/6/26,comp.soft-sys.matlab#

        換行和回車是不同的,而且在不同的操作系統,解釋也不相同。
        \n一般會操作系統被翻譯成"行的結束",即LF(Line-Feed)
        \r會被翻譯成"回車",即CR(Cariage-Return)
        對於文本文件的新行,在UNIX上,一般用\n(LF)來表示,Mac上用\r(CR)來表示,
        Windows上是用\n\r(CR-LF)來表示。

        所以在matlab中使用\n來寫回車,在windows上打開會出現小方塊。如果想避免這種情況,打開文件時使用t參數:

            fid = fopen('myfile.dat','wt');

[返回]

2.55.

    #Steven Lord (slord@mathworks.com),2002-10-22,comp.soft-sys.matlab#

        使用computer命令:
        [C,MAXSIZE] = computer

[返回]

2.56.

    #Duane Hanselman (masteringmatlab@yahoo.com),2002/10/22,comp.soft-sys.matlab#

        如下方法無需先生成一個double的數組,然後轉換為int8

        >> rc=[3 4] % row and column sizes
        >> a(prod(rc))=int8(0) % example using int8
        >> class(a)  % they are all int8s
        >> reshape(a,rc) % make it the size you want

        同時也可以使用repmat來實現上述功能:

        >> repmat(int8(0),rc)

[返回]

2.57.

    #FangQ(Qianqian.Fang@dartmouth),2002/11/10,[SMTH/MathTools]#

        如果不想安裝補丁,只能使用matlab -nojvm的形式啟動matlab,否則需要參照如下頁面的解決方案來安裝補丁:
        http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&selm=
               NQ8a9.6835%24ob2.611653%40newsread1.prod.itd.earthlink.net
        http://www.mathworks.com/support/solutions/data/27293.shtml

[返回]

2.58.

    #Authors: Andrew Fitzgibbon, Maurizio Pilu, Bob Fisher

"Direct Least Squares Fitting of Ellipses", IEEE T-PAMI, 1999#

        http://bbs.dartmouth.edu/~fangq/MATH/Source/fitellipse.m

[返回]

2.59.

    #FangQ(Qianqian.Fang@dartmouth),2002/11/19,BigGreen/MathTools#

        Mathematica中使用:   Alt+./Alt+,
        Matlab中使用:        Ctrl+C

[返回]

2.60.

    #FangQ,2002/11/11,[SMTH/MathTools]#

        Mathematica中使用:   Ctrl+.
        Matlab editor中使用: Ctrl+B

[返回]

2.61.

    #FangQ,2002/11/11,[SMTH/MathTools]#

        如果你在執行GUI時出現"handles not defined"的錯誤時,打開GUIDE,把figure的HandleVisibility設置為on或者callback,則你可以在各個callback中直接使用handles,而不用聲明global

        例如:

        dat=get(handles.figure1,'userdata');
        dat2=fliplr(dat);
        se(handles.edit1,'userdata');

[返回]

2.62.

    #Zealous/FangQ,2002/11/9,[SMTH/MathTools]#

        可以使用repmat(),例如:  repmat([1,2,3]',1,5)
        或者使用kron(),例如:      kron([1 2 3]',ones(1,5))

[返回]

2.63.

    #FangQ(Qianqian.Fang@dartmouth),2002/11/19,refer to comp.soft-sys.matlab#

        使用selectmoveresize函數,例如:

        figure
        h=uicontrol('style','pushbutton');
        set(h,'ButtonDownFcn',...
            'selectmoveresize;set(h,selected,off)',...
            'Enable','inactive')

[返回]

2.64.

    #FangQ(Qianqian.Fang@dartmouth),2002/11/19,BigGreen/MathTools#

        Matlab提供了非常豐富的迭代型矩陣求解器,方法包括CG,BiCG,BiCGSTAB,
        CGS,GMRES,LSQR,MINRES,P-CG,QMR,SYMMLQ等,為了加快矩陣求解速度,還
        提供了兩個Preconditioner函數:luinc(不完全LU分解),和cholinc(不完全
        Cholesky分解)。下面是一個使用GMRES求解方程Amat*x=rhs的一個簡單例子:

        [L2,U2] = luinc(Amat,1e-3);
        tic
           x=gmres(Amat,rhs,[],1e-6,100,L2,U2);
        toc

[返回]

3.

3.1.

    #FangQ, 2002/6/22.BigGreen/en_Mathematica #

        1. 在Simplify/FullSimplify可以使用\[Element],如
                Simplify[Re[a+b*I],a\[Element]Reals]
        2. 可以使用ComplexExpand[]來展開表達式,默認:符號均為實數:
                Unprotect[Abs];
                Abs[x_] := Sqrt[Re[x]^2 + Im[x]^2];
                ComplexExpand[Abs[a + b*I], a]
        3. 使用/:,對符號關聯相應的轉換規則
                x /: Im[x] = 0;
                x /: Re[x] = x;
                y /: Im[y] = 0;
                y /: Re[y] = y;
                Re[x+y*I]

[返回]

3.2.

    #FangQ, 2002/6/22.BigGreen/en_Mathematica#

        Alt+. 直接終止當前執行的運算
        Alt+, 詢問是否終止或者繼續
        如果不能終止,用菜單Kernel\Quit Kernal\Local來退出當前運算

[返回]

3.3.

    #FangQ, 2002/6/22.BigGreen/en_Mathematica#

        我迄今為止看到的最好的一本就是Mathematica自己帶的幫助裡面的The Mathematica Book,內容全面,循序漸近,非常容易學習使用  。其他所見到的一些中文書籍基本上都是直接翻譯幫助的內容,沒有什麼新意。

[返回]

3.4.

    #FangQ, 2002/6/4. [SMTH/MathTools] #

        << Graphics`Graphics`
        PolarPlot[]
        PolarListPlot[]

[返回]

3.5.

    #FangQ, 2002/5/9. [SMTH/MathTools]#

        離散的點通過插值或者擬合就可以得到連續的函數,然後可以對該函數求積分和微分。下面是一個例子:

        f[x_] := NIntegrate[Sin[Cos[x]], {x, 0, a}];
        data = Table[{a, f[x]}, {a, 0, 10}];
        expr = Interpolation[data];

        Plot[expr[a], {a, 0, 10}];
        Plot[Evaluate[D[expr[a], a]], {a, 0, 10}]

        如果想實現Matlab中的cumsum的功能:
        Drop[FoldList[Plus, 0, {a1,a2,…,an}], 1]

[返回]

3.6.

    #FangQ, 2002/6/18. [SMTH/MathTools]#

        在幫助中查找"Creating Palettes (Windows)"

[返回]

3.7.

    #FangQ, 2002/5/31. [SMTH/MathTools]#

        Mathematica的GUI設計是通過它的互動式的NoteBook實現的,可以參考Mathematica幫助文件中的demo例子,或參考幫助2.10.6

[返回]

3.8.

    #FangQ, 2002/7/23. BigGreen/en_Mathematica#

        Mathematica3/4/4.1中如果使用中文,需要先選中所在的cell,或者選中輸入的中文亂碼,在菜單format font中選中對應的中文字體后才能正確顯示。

        最新的4.2在國際化有較大的改進,可以直接輸入中文,參見
        http://www.wolfram.com/products/mathematica/newin42/publishing.html

[返回]

3.9.

    #FangQ, 2002/11/19. BigGreen/en_Mathematica#

        Solve[]求解的結果是以一個"表"或者"替換規則"的形式給出來的,並沒有把結果真正替換給未知量。如果

        sol = Solve[a*x^2 + b*x + c == 0, x];
        x=x /. sol1

        也可以使用對錶元素的操作把結果取出來,比如在上面的例子中:

        x1=sol1,1,2
        x2=sol2,1,2       

[返回]

4.

4.1.

    #FangQ, 1999/11/2. [SMTH/MathTools]#

        Matcom是MathTools公司(UPenn)開發的一個基於C++矩陣函數庫Matrix的一個matlab m文件與cpp文件的轉換程序。MIDEVA為他的一個集成調試編譯環境(界面)。

        Matcom獨立於matlab之外,但需要外部的c++ compiler,在安裝時需要指定c++ compiler的未知,否則無法工作。安裝的時候需要指定matlab的位置主要是為了編譯文件中需要的一些系統函數來找到路徑用的。

        現在MathTools公司已經被生產Matlab的MathWorks公司兼并,Matcom最後版本為4.5,之後部分matcom的內容被合併到mathworks的visual matlab中。

[返回]

4.2.

    #FangQ, 1999/11/2. [SMTH/MathTools]#

        double mydata[3][3];
        dMm(amatrix);
        amatrix=rand(3);
        for(int i=1;i<=3;i++)
          for(int j=1;j<=3;j++)
                mydata[i-1][j-1]=amatrix.r(i,j);
        //or    mydata[i-1][j-1]=amatrix.fastindex(i,j);

        也可以用memcpy() 把amatrix.pr指針的內容讀出來,交給mydata,但行列可能要轉置。

        如果amatrix=sparse(…),用amatrix.r()方法不能取出需要的值

[返回]

4.3.

    #FangQ, 1999/11/2. [SMTH/MathTools]#

        使用i_o作為分割符
        meshgrid(colon(0.0,1.0),colon(0.0,1.0),i_o,xi,yi);
        與matlab中的
        [xi,yi]=meshgrid(0:1,0:1);

        是等價的

[返回]

4.4.

    #FangQ, 1999/11/2. [SMTH/MathTools]#

        1.在Project\Add to project\選擇\lib\v4500.lib
        2.文件頭寫#include "matlib.h"然後就可以用了

[返回]

4.5.

    #FangQ, 1999/11/2. [SMTH/MathTools]#

        在VC/CB中調用了matcom庫,通過編譯生成獨立執行的程序,所以,不需要matlab系統,但一些必要的dll文件還是需要的,這些dll在window\system\下面,(在4.5版本中)大概有ago4500.dll,v4500v.dll,opengl32.dll,glu32.dll等四個文件

[返回]

4.6.

    #FangQ, 2002/6/22. [SMTH/MathTools]#

        原因是matlab 6.x的Windows版本matlab.exe不在matlab\bin下,而在matlab\bin\win32,所以,在安裝matcom時,把bin\win32\matlab.exe移動到bin\,即上移一層目錄,安裝matcom后,再移動回去就可以了。

        其實是否安裝有matlab對matcom沒有什麼影響,你完全可以選擇沒有安裝matlab,仍然可以編譯大多數文件。需要matlab\toolbox下的文件時,用addpath()添加路徑或者拷貝到當前目錄下就可以了。

[返回]

4.8

    # techsoft (SoftMAN), 2000/4/2.[SMTH/MathTools]#

        目前MIDEVA/MATCOM僅是純.M文件的開發平台(通俗地說是MATLAB的替代物),但MATLAB外,還有SIMULINK/STATEFLOW及其它TOOLBOX/BLOCKSET對於MIDEVA/MATCOM來說無法COMPILER,因為MIDEVA/MATCOM是JIT機制,它不能訪問MATLAB的其它工具包尤其是它們的DLL庫。要是其它工具包都是純文本的.M文件那該多好啊!不過可用出自MATHWORKS的MATLAB COMPILER。

[返回]

4.7.

    #FangQ, 2002/7/23. [SMTH/MathTools]#

        仍然使用Mm的.r()函數或者.fastindex()函數,在本節2)中的例子中把賦值語句左右兩側互換即可。

        A.r(i,j)=(double)mydata[j][i];

[返回]

5.

5.1.

    #FangQ, 2002/6/22. BigGreen/MathTools#

        使用xlsread()函數,或者使用excel的ActiveX介面來進行更複雜的操作,參見:
        http://www.mathworks.com/support/solutions/data/25179.shtml

[返回]

5.2.

    #FangQ, 2002/6/22.BigGreen/MathTools#

        如果你的Matlab安裝有ExcelLink,它可以實現Excel與Matlab直接的數據交換,可以在Excel中直接調用matlab的函數,進行繪圖或者數據處理。

        不過如果沒有安裝ExcelLink,你仍然可以使用Matlab的ActiveX介面來調用matlab,下面是一個Excel宏函數,作為例子:

 #Brett Shoelson(bshoelson@cox.rr.com),2001/11/01,comp.soft-sys.matlab#

        Sub CallMatlab()
        ' Dimension variables
        Dim MatLab As Object
        Dim Result
        Dim Invals(3, 4) As Double
        Dim MImag() As Double
        Dim i, j As Integer
        ' Invoke Matlab
        Set MatLab = CreateObject("Matlab.Application")
        ' Read Invals from current spreadsheet
        ' (Assume Invals stored in B3:E5)
        For i = 0 To 2
        For j = 0 To 3
        Invals(i, j) = ActiveSheet.Range(Cells(i+3,j+2),
          Cells(i+3,j+2)).Value
        Next j
        Next i
        ' Send Invals to Matlab
        Call MatLab.PutFullMatrix("a", "base", Invals, MImag)
        ' Send instructions to Matlab
        Result = MatLab.Execute("b=a.^2;")
        ' Retrieve Result
        Call MatLab.GetFullMatrix("b", "base", Invals, MImag)
        ' Store Result in B8:E10
        ActiveSheet.Range("B8:E10").Value = Invals
        End Sub

[返回]

5.3.

    #FangQ, 2002/6/22.BigGreen/MathTools#

        這個問題我一直都不是很清楚,看過compiler的PDF幫助之後,知道個大概,也不知道說得對不對:

     mcc(生成c/cpp文件)m--mex mex/dll
                        |---x--mbuildC/C++ compiler獨立執行的程序

        mex文件是一種編譯后的動態連接文件,需要在matlab中執行,優點是執行速度比m文件快,而且如果你不想提供m文件源碼,可以使用編譯后的mex/dll文件。

        mbuild通過調用外部的c/c++編譯器,把mcc翻譯成的c/c++源碼與matlab的c/c++數學庫、圖形庫鏈接,得到獨立執行的可執行程序。

[返回]

5.4.

    #FangQ, 2002/6/22.BigGreen/MathTools#

        使用matlab自己提供的mglinstaller,路徑在
        \extern\lib\win32\mglinstaller.exe
        參考C++ Math Lib,C++ Graphic Lib,Compiler的PDF幫助中都有關於打包和安裝的詳細介紹。

[返回]

5.5.

    #FangQ, 2002/6/22.BigGreen/MathTools#

        matlab提供了ActiveX介面,你可以功過調用介面的底層函數來實現在你的C++/VB/Delphi程序中啟動、執行matlab並交換數據,但matlab提供了一個對這些底層ActiveX介面函數的封裝,叫作maltab engine,在C語言中調用engine的例子參見:

        http://www.mathworks.com/access/helpdesk/help/techdoc/

          matlab_external/ch06eng4.shtml#25603
        或者
        http://www.matlab-world.com/matlab_and_c.htm#VC_ml
        http://bbs.dartmouth.edu/cgi-bin/bbscon?
          board=MathTools&file=M.1022120287.A&num=23

        可以使用engEvalString直接在matlab中執行語句,也可以用mxCreateDoubleMatrix, mxDestroyArray,engPutArray,engGetArray等函數創建矩陣和數據交換。
        具體參見:
        http://www.mathworks.com/access/helpdesk/help/techdoc/
          matlab_external/matlab_external.shtml

[返回]

5.6.

    #FangQ, 2002/6/22.BigGreen/MathTools#

        在用matlab的mex把外部c/for程序編譯成mex/dll之前,你需要在你的外部函數的源碼中添加一個mexFunction(),具體書寫格式和例子參見
    http://www.mathworks.com/access/helpdesk/help/pdf_doc/matlab/apiext.pdf

[返回]

5.7.

    #FangQ, 2002/6/22.BigGreen/MathTools#

        從這個地址下載例子:
        http://www.djpate.freeserve.co.uk/Matlab.htm

        還有一種方法是利用DelphiMEX,下載地址:
        http://Radio-BIP.qc.ca/DelphiMEX/DelphiMEX.html

        下面是把Alex Conradie的例子中選了一些主要的語句:

        var

         V : Variant;
         MReal : OleVariant;
         MImage : OleVariant;

        begin
         i,j : integer;

         MReal  := VarArrayCreate([0, 1, 0, 3], varDouble);
         MImage := VarArrayCreate([0,0,0,0], varDouble);

         V := CreateOLEObject('Matlab.Application');
         V.Execute('a=[1 2 3 4; 5 6 7 8]');
         V.GetFullMatrix('a','base',VarArrayRef(MReal),VararrayRef(MImage));
         for i := 0 to 1 do
          for j := 0 to 3 do
           Stringgrid1.Cells[j,i] := MReal[i,j];

         V.Execute('peaks');

         MReal  := VarArrayCreate([0, 1, 0, 3], varDouble);
         MImage := VarArrayCreate([0,0,0,0], varDouble);

         for i := 0 to 1 do
          for j := 0 to 3 do
           MReal[i,j] := i+4;

          V.PutFullmatrix('b','base',VarArrayRef(MReal),VararrayRef(MImage));

        end

[返回]

5.8.

    # Serge Kanilo (skanilo@hotmail.com), 2000/08/01. comp.soft-sys.matlab #

        I once called a Matlab function out of Borland Builder 4.0.
        I used an automation

        #include
        ...
        Variant matlab;
        matlab = Variant::CreateObject("Matlab.Application");
        Procedure exec("Execute");
        matlab.Exec(exec << "calc");
        …

[返回]

5.9.

    # Taras Chaban (taras@camcontrol.co.uk), 1999/03/09.

comp.soft-sys.matlab #

        Hi,

        You can call MATLAB from VB using ActiveX interface.
        A simple example could be:

        Sub tot1()

        Dim MatLab As Object
        Dim Result As String
        Dim MReal(1, 3) As Double
        Dim MImag() As Double

        Set MatLab = CreateObject("MatLab.Application")
        Result = MatLab.Execute("a = [1 2 3 4; 5 6 7 8;]")
        Call MatLab.GetFullMatrix("a", "base", MReal, MImag)

        End Sub

[返回]

5.10.

    #FangQ, 2002/6/22.BigGreen/MathTools#

        參見
        http://www.mathworks.com/support/solutions/data/21291.shtml
        中文地址請大家推薦

[返回]

5.11.

    #FangQ, 2002/6/22.BigGreen/MathTools#

        參見
        http://www.mathworks.com/support/solutions/data/28621.shtml
        中文地址請大家推薦

[返回]

5.12.

    #FangQ, 2002/6/22.BigGreen/MathTools#

        在Matlab中參見actxserver和actxcontrol的幫助
        這裡是一個在matlab中操縱PowerPoint的例子:
        http://groups.google.com/groups?
        selm=370E09E2.275EF5E8%40mail.northgrum.com&output=gplain

        中文地址請大家推薦

[返回]

6.

6.1.

    #FangQ, 2002/6/22.BigGreen/MathTools#

        可以使用ArrayVisualizer提供的函數,非常方便,一兩句話就可以繪圖,缺點是系統必須安裝有ArrayVisualizer,而且只能繪製比較簡單的圖形。

        如果要用Windows的繪圖API,請在超星閱讀器上查找鄧巍巍,王越男編輯的Visual Fortran編程指南一書的第八章、第九章

[返回]

6.2.

    #FangQ, 2002/6/22.BigGreen/MathTools#

        FORTRAN 90提供了動態開數組的功能,主要是兩個函數:

        Real*8, Allocatable :: My1DData(:),My2DData(:,:)
        …
        Allocate(My1DData(0:10),My2DData(10,20))
        …
        DeAllocate(My1DData,My2DData)

[返回]

6.3.

    #halifax (抗震王子), 2002/6/29. SMTH/NumComp#

            這兩天為了在WIN98/2K下用CVF6.6調用LAPACK函數庫查了不少資料,也請教了很多網上的牛人,現在有個初步的調用方法,願意寫出來,希望為後來者節省些時間。但是遺憾的是目前我當初調用它的本意還是沒有達到,所以希望有大蝦能再指 點一二。                                                               

        (1)、CVF所包含的LAPACK函數庫並不完全,在"\Microsoft   Visual Studio\DF98\CXML\DOC\Cxmlref.pdf"中的Table 8-3和8-4中列出了大多數LAPACK DRIVER ROUTINE。但這並不表示CVF中就能直接調用這麼多routine,具體哪些能調用可以參見 \Microsoft Visual Studio\DF98\CXML\INCLUDE\LAPACK_{S、D、C、Z}_INCLUDE.F90 等四個文件。他們中有的就可以直接在CVF中調用,沒有的就要參見(3)。

        (2)、CVF的環境變數設置。為了調用CVF的LAPACK函數,需要  將一些*.lib函數調入庫函數的搜索範圍,也需要設置CVF為查找 這些庫函數所需要的搜索路徑。具體方法是:                               

        Ⅰ  project->setting->link->category->input->在object/library  modules   框內加入cxml.lib cxmldll.lib 兩個文件名,中間以空格間隔。              

        Ⅱ  分別在"tools->options->directories->"下的include files和library  files加上……\Microsoft Visual Studio\DF98\CXML\Include和……\Microsoft Visual Studio\DF98\CXML\Lib 的搜索路徑。

        Ⅲ  如果在做了以上兩個設置之後,程序仍然會出編譯或連接錯誤,可以做以下兩項嘗試(當然也可以不管錯沒錯事先就做好):
            一、在"project->setting->fortran->libraries"中勾上->use cxml選項
            二、在調用LAPACK函數的程序單元內的所有變數定義和可執 行語句之前加上: include 'cxml_include.f90' 語句。

        (3)、如果你通過各種途徑查到LAPACK有某個函數,但LAPACK_{S、D、C、Z}_INCLUDE.F90四個文件中又沒有,那就請到http://www.cs.colorado.edu/~lapack/網頁下,在網左邊選擇你要的是何種routine。然後依提示逐步找到你所要的演算法源程序文件。注意如果選擇"with dependencies"是不能下載的,要選擇"without dependencies"。當然也可以 到http://www.cs.colorado.edu/~lapack/packages.html將所的LAPACK都下載下來。

                然後你就可以將你下載下來的源程序拷貝到你的程序中作為一個subroutine了。                                 

        [ACKNOWLEGEMENT]感謝hansom、lodger、nfdx、handbarrow、beefly各位大蝦提供的幫助!                                             

[返回]

6.4.

    #FangQ (<a href="mailto: Qianqian.Fang@dartmouth.edu">Qianqian.Fang@dartmouth.edu</a>), 2002/11/19. BigGreen/MathTools#

        在Windows,使用Visual Fortran
           df yoursource.f90 -o exename /cxml
           df /optimize:5 /fast yoursource /link CXML.LIB /stack:4000000
        在LINUX中,使用
            -llapack 編譯指令
        使用Compaq Alpha Tru64的f90,使用
           f90 yoursource.f90 -o exename -lcxml
        在SGI IRIX上使用MIPSpro 7 f90編譯器,使用
           f90 yoursource.f90 -o exename -lcomplib.sgimath
        Sun Solaris/IBM AIX上還沒有試過

        如果使用Intel Math Kernel Library(MKL),可以使用如下鏈接指令:
        Compile and Link Flags (Pentium III/Athlon):
            -L$MKL_HOME/lib/32 -lmkl_lapack32 -lmkl_p3 -lpthread (使用LAPACK)
            -L$MKL_HOME/lib/32 -lmkl -lmkl_p3 -lpthread (使用BLAS)
        Compile and Link Flags (Pentium 4):
            -L$MKL_HOME/lib/32 -lmkl_lapack32 -lmkl_p4 -lpthread (使用LAPACK)
            -L$MKL_HOME/lib/32 -lmkl -lmkl_p4 -lpthread (使用BLAS)

[返回]

7.

        暫無,有待補充

[返回]

8.

8.1.

    #fiya(採薇在勤), 2002/6/12. [SMTH/MathTools]#

        \renewcommand{\baselinestretch}{**}
        把行距改為默認行距的**倍。

[返回]

8.2.

    #FangQ, 2002/6/22.BigGreen/MathTools#

        我能找到的辦法是一個最笨的辦法,就是將多行的cell分成幾個row,這幾個row之間沒有橫線

        \begin{table}[htb]
        \caption{Table Title}
        \begin{tabular}{|c|c|c|}
          \hline
          text1 & long text1 part1 & long text2 part1\                            & long text1 part2 & long text2 part2\           \hline
          next line & next line & next line \         \hline
        \end{tabular}
        \end{table}

[返回]

8.3.

    #FangQ, 2002/6/22.BigGreen/MathTools#

        1.安裝Acrobat完全版本,安裝好后在印表機中會出現一個PDF Writer,在Word中列印需要轉換的文件到這個印表機即可。
        2.安裝postscript印表機,Word列印該文件到ps印表機,然後用Acrobat Distiller打開生成的ps文件,轉換為PDF。
        3.使用5D Pdf Creator等外部程序也可以實現轉換。

[返回]

8.4.

    #FangQ, 2002/6/22.BigGreen/MathTools#

        到http://www.word2tex.com/下載Word2TeX

[返回]

8.5.

    #FangQ, 2002/6/22.BigGreen/MathTools#

        使用CJK或者CCT,參見
        http://ctex.dhs.org/chinese/cjk.htm
        http://ctex.dhs.org/chinese/cct.htm

[返回]

8.6.

    #UK TeX Users' Group (http://www.tex.ac.uk/cgi-bin/texfaq2html#

        具體解釋參見
        http://www.tex.ac.uk/cgi-bin/texfaq2html?label=boldgreek
        需要安裝bm package或者amsbsy package

[返回]

8.7.

    #yangzi2000 (yangzi), 2002/5/10. [SMTH/MathTools]#

        \usepackage{cite}

[返回]

8.8.

    #fortran95 (TeX), 2002/4/4. [SMTH/MathTools]#

        \arabic{計數器名}
        or \Roman {計數器名 }
        or \roman {計數器名}
        or \alph  {計數器名}
        or \Alph  {計數器名}
        or \fnsymbol{計數器名}
        總之
        \你希望的數字體{計數器名} 來顯示

[返回]

8.9.

    #FangQ, 2002/6/22.BigGreen/MathTools#

        1.可以用Display[pipe,imgobj,"EPS"]或者Export["filename",imgobj,"EPS"]來輸出到文件
        2.選中所繪的圖形,在菜單Edit\Save Selection As\EPS

[返回]

8.10.

    #FangQ, 2002/6/22.BigGreen/MathTools#

        參見第二節,第24問

[返回]

8.11.

    #FangQ, 2002/6/22.BigGreen/MathTools#

        菜單File\Export\EPS,然後選擇All Frame或者Current Frame

[返回]

.12.

    #FangQ, 2002/6/22.BigGreen/MathTools#

        先繪製矢量圖形,然後將圖形Group后,拷貝到Powerpoint的一個新的頁面,然後在菜單中選擇Save As\WMF,然後用Adobe Illustrator 10轉換為EPS圖像。也可以列印為ps圖,在LaTeX中使用,但有時會有一些顯示的問題。

[返回]

9.

9.1.

    #FangQ, 2002/6/22.BigGreen/MathTools#

        全國大學生數學建模競賽(China Undergraduate Mathematical Contest in Modeling)是由中國工業與應用數學協會(CSIAM)發起組織的每年一度的大學生數學建模比賽。比賽時間一般為每年9月的第四個周末,每個參賽隊由三名隊員組成,要求在三天(嚴格說是兩天,最後一天是論文寫作和列印)時間內從給出的兩個題目中選擇一個(一般是連續模型和離散模型各一個),利用數學和計算機對問題進行表述、分析、計算,得出可行的,有創造性的結果、方案、設計,並撰寫報告。隊員在比賽中可以使用一切非人力資源,包括計算機、網路、圖書館,但不能與三人以外的任何人針對試題進行交流。

        這是一項非常具有創造性和挑戰性的活動,通過數學建模的鍛煉,最重要的是學會一種責任感和敬業精神,一種創造性,一種團隊精神,你可以在計算機編程、數學軟體使用、論文寫作,口語表達、組織調度能力等各個方便得到最大限度的展現和鍛煉,而這些內容正是國內高等教育中的盲點。

        CUMCM的評獎結果一般設置三個等級,一個是全國獎,一個是省級獎,一個是成功參賽獎。全國獎又有1、2、3等之分,省級獎品也分為1、2等獎。

        目前CUMCM已經成為國內規模最大的數學建模活動,具體參賽信息、比賽章程、每年的獲獎名單,請參見CSIAM的主頁:
        http://csiam.edu.cn/mcm/ 

        另外推薦一個好的地址:
        http://bbs.uestc.edu.cn/cgi-bin//bbs0an?path=/groups/GROUP_1/MATH
        這是電子科技大學數學建模與應用科技學社(Society of Mathematical Modeling & Applied Science)的數學建模討論區,精華區的社刊部分收錄了一些數學建模隊員的的體驗、比賽試題和數學軟體使用說明。學社的主頁參見:
        http://engineering.dartmouth.edu/~fangq/smmas/

[返回]

9.2.

    #FangQ, 2002/6/22.BigGreen/MathTools#

        MCM: The Mathematical Contest in Modeling,是美國的SIAM(工業與應用數學協會)和COMAP(the Consortium for Mathematics and Its App.)於1985發起的一項面向全世界大學生的一個數學建模比賽,參賽隊員要求用英語完成最後的,我國每年都有很多大學派隊參加,並獲得過比較優秀的成績。比賽時間一般為寒假期間。比賽優勝者設置Outstanding Winners,Meritorious Winners,Honorable Mentions,Successful Participants四個獎項。

        具體試題樣本和詳細說明參見COMAP的主頁:
        http://www.comap.com/undergraduate/contests/mcm/

[返回]

9.3.

    #FangQ, 2002/6/22.BigGreen/MathTools#

        美國賽和全國賽部分試題參見CSIAM和SIAM的主頁,其他一些個人網頁參見:
        http://free.prohosting.com/~sxjm/
        http://www.math.grin.edu/mcm-1999.html
        http://bbs.uestc.edu.cn/cgi-bin//bbs0an?path=/groups/GROUP_1/MATH

[返回]

9.4.

    #FangQ, 2002/6/22.BigGreen/MathTools#

        很抱歉,這兩項比賽都是針對本科生的,研究生可以參與集訓的指導工作。

[返回]

9.5.

    #popo1999/FangQ, 2002/6/15.[SMTH/MathTools]#

        《數學的認識與實踐》  中國應用數學會編寫,各大學圖書館都應該能找到,上面有各年的CMCM或MCM優秀論文,還有點評

[返回]

9.6.

    #FangQ, 2002/6/22.BigGreen/MathTools#

        較好的函數庫:
        1.netlib: http://www.netlib.org

        2.numerical recipe: http://lib-www.lanl.gov/numerical/index.html
        3.source forge: http://sourceforge.net/
        4.特殊函數fortran代碼:
          http://iris-lee3.ece.uiuc.edu/~jjin/routines/routines.html

        下面的兩個地址也提供了非常全面的鏈接列表:
        http://tonic.physics.sunysb.edu/docs/num_meth.html
        http://web.comlab.ox.ac.uk/oucl/work/nick.trefethen/tools.html

[返回]

9.7.

    #FangQ, 2002/6/22.BigGreen/MathTools#

        薛定宇教授的:
            http://www.matlab-world.com/
        本人的數學主頁:(重新開始更新)
            http://bbs.dartmouth.edu/~fangq/MATH/mindex.htm       
        aloft ,ggs的:
            http://ctex.dhs.org/

        mikie的
            http://fractals.home.sohu.com/?sohu=yes
        流體中文網:
            http://cfluid.com/
        CAD論壇:技術專欄:
            http://www.cad-china.com/bbs/techindex.html

[返回]

9.8.

    #FangQ, 2002/11/22.BigGreen/MathTools#

        新聞組在國外是用戶自由交流的主要渠道,其實BBS是新聞組在國內的一種演變形式。新聞組到現在已經有二十多年的歷史,討論組涉及的內容的廣泛性和專業性已遠非大家所能想想。單就本FAQ涉及的數學軟體,各種專門軟體新聞組已經都發展到了很大的規模。這裡就列舉一些常用的新聞組和加入辦法。

        如果你想通過WWW方式加入討論,推薦http://groups.google.com/,這裡收集了非常豐富的新聞組資源,你僅需要檢索若干關鍵字就可以找到你需要的新聞組,如果想參與討論,需要註冊一個有效的email地址即可。

        如果想通過email的方式參與討論,你需要搜索新聞組的說明,並找到郵件列表的地址,然後subscript即可。

        下面是幾個有用的新聞組:
        Matlab Newsgroup:
        news://comp.soft-sys.matlab/
        http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&group=comp.soft-sys.matlab
        http://bbs.dartmouth.edu/cgi-bin/bbsdoc?board=en_Matlab

        Mathematica Newsgroup:
        news://comp.soft-sys.math.mathematica/
        http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&group=comp.soft-sys.math.mathematica
        http://bbs.dartmouth.edu/cgi-bin/bbsdoc?board=en_Mathematica

        Maple Newsgroup:
        news://comp.soft-sys.math.maple/

        http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&group=comp.soft-sys.math.maple

        FORTRAN Newsgroup:
        news://comp.lang.fortran/
        http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&group=comp.lang.fortran

        http://bbs.dartmouth.edu/cgi-bin/bbsdoc?board=en_FORTRAN

        TeX Newsgroup:
        news://comp.text.tex/
        http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&group=comp.text.tex
        http://bbs.dartmouth.edu/cgi-bin/bbsdoc?board=en_TeX

        Numerical Analysis Newsgroup:
        news://sci.math.num-analysis/
        http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&group=sci.math.num-analysis
        http://bbs.dartmouth.edu/cgi-bin/bbsdoc?board=en_NumAnalysis

        Math Newsgroup:
        news://sci.math/

        http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&group=sci.math
        http://bbs.dartmouth.edu/cgi-bin/bbsdoc?board=en_Math


[admin via 研發互助社區 ] 數學工具常見問題集已經有13380次圍觀

http://cocdig.com/docs/show-post-43219.html