A. 對即將學習大數據專業的學生有什麼建議和推薦的書籍
對於即將學習大數據專業的學生,個人認為主要取決於,自己對大數據的理解,其實很多人對大數據僅限於知道,而並非真正了解大數據,個人的主要建議就是,一定要明白什麼是數據,大數據的入門基礎,如果大數據的基本概念,都不明白,那怎麼來學習。
B. gcc的結構
GCC的外部介面長得像一個標準的Unix編譯器。使用者在命令列下鍵入gcc之程序名,以及一些命令參數,以便決定每個輸入檔案使用的個別語言編譯器,並為輸出程序碼使用適合此硬體平台的組合語言編譯器,並且選擇性地執行連接器以製造可執行的程序。
每個語言編譯器都是獨立程序,此程序可處理輸入的原始碼,並輸出組合語言碼。全部的語言編譯器都擁有共通的中介架構:一個前端解析符合此語言的原始碼,並產生一抽象語法樹,以及一翻譯此語法樹成為GCC的暫存器轉換語言〈RTL〉的後端。編譯器最佳化與靜態程序碼解析技術(例如FORTIFY_SOURCE,一個試圖發現緩沖區溢位〈buffer overflow〉的編譯器)在此階段應用於程序碼上。最後,適用於此硬體架構的組合語言程序碼以Jack Davidson與Chris Fraser發明的演算法產出。
幾乎全部的GCC都由C寫成,除了Ada前端大部分以Ada寫成。 前端的功能在於產生一個可讓後端處理之語法樹。此語法解析器是手寫之遞歸語法解析器。
直到2004年,程序的語法樹結構尚無法與欲產出的處理器架構脫鉤。而語法樹的規則有時在不同的語言前端也不一樣,有些前端會提供它們特別的語法樹規則。
在2005年,兩種與語言脫鉤的新型態語法樹納入GCC中。它們稱為GENERIC與GIMPLE。語法解析變成產生與語言相關的暫時語法樹,再將它們轉成GENERIC。之後再使用gimplifier技術降低GENERIC的復雜結構,成為一較簡單的靜態唯一形式(Static Single Assignment form,SSA)基礎的GIMPLE形式。此形式是一個與語言和處理器架構脫鉤的全域最佳化通用語言,適用於大多數的現代編程語言。 GCC後端的行為因不同的前處理器宏和特定架構的功能而不同,例如不同的字元尺寸、呼叫方式與大小尾序等。後端介面的前半部利用這些訊息決定其RTL的生成形式,因此雖然GCC的RTL理論上不受處理器影響,但在此階段其抽象指令已被轉換成目標架構的格式。
GCC的最佳化技巧依其釋出版本而有很大不同,但都包含了標準的最佳化演算法,例如循環最佳化、執行緒跳躍、共通程序子句消減、指令排程等等。而RTL的最佳化由於可用的情形較少,且缺乏較高階的資訊,因此相比較起來,增加的GIMPLE語法樹形式,便顯得比較不重要。
後端經由一次重讀取步驟後,利用描述目標處理器的指令集時所取得的信息,將抽象暫存器替換成處理器的真實暫存器。此階段非常復雜,因為它必須關注所有GCC可移植平台的處理器指令集的規格與技術細節。
後端的最後步驟相當公式化,僅僅將前一階段得到的匯編語言代碼藉由簡單的子常式轉換其暫存器與內存位置成相對應的機器碼。
C. 誰推薦我幾本學習C++的書.從入門到能開發很好滴游戲
我下面推薦的書是入門到開發,至於游戲可以再看專門的書籍,這里就不推薦了,因為這方面我不在行。至於讀的順序嗎,先教程,後primer,再思想,再關注組件的運用,最後就是你的游戲(只是我自己的看法)。
C++語言推薦書目
學習C++語言不可不看,本本經典
【1】書��名:C++程序設計語言(特別版)
原 書 名:The C++ Programming Language, Special Edition
原出版社:Addison Wesley
作��者:Bjarne Stroustrup(C++語言的作者)
譯��者:裘宗燕
書��號:7-111-10202-9
頁��碼:936
定��價:¥85.00
出 版 社:機械工業出版社
出版日期:2002-7-1
【2】書��名:C++ Primer (3RD)中文版
原 書 名:C++ Primer Third Edition
原出版社:Addison Wesley
作��者:Stanley B.Lippman,Josee Lajoie
譯��者:潘愛民 張麗
書��號:7-5083-0989-8
頁��碼:1033
定��價:¥128.00
出 版 社:中國電力出版社
出版日期:2002-4-1
【3】書��名:C++大學教程(第二版)
原 書 名:The Complete C++ Training Course,Second Edition
原出版社:
作��者:Harvey M.Deitel Paul James Deitel
譯��者:邱仲潘 等
書��號:7-5053-6727-7
頁��碼:816
定��價:¥78.00
出 版 社:電子工業出版社
出版日期:2001-7-1
【4】書��名:C++編程金典(第3版)
原 書 名:C++ How To Program, Third edition
原出版社:Prentice Hall/Pearson
作��者:H.M.Deitel, P.J.Deitel
譯��者:周靖 黃都培
書��號:7-302-05785-0
頁��碼:1036
定��價:¥118.00
出 版 社:清華大學出版社
出版日期:2002-9-1
【5】書��名:C++程序設計
原 書 名:C++ Program Design
原出版社:McGraw-Hill
作��者:James P.Cohoon & Jack W.Davidson
譯��者:劉瑞挺 韓毅剛 盛素英 劉海嘉 等
書��號:7-5053-7284-X
頁��碼:776
定��價:¥78.00
出 版 社:電子工業出版社
出版日期:2002-1-1
【6】書��名:C++ Primer Plus (第四版)中文版
原 書 名:C++ Primer Plus,Fourth Edition
原出版社:Sams
作��者:Stephen Prata
譯��者:孫建春 韋強
書��號:7-115-10335-6
頁��碼:745
定��價:¥69.00
出 版 社:人民郵電出版社
出版日期:2002-7-1
【7】書��名:C++編程思想
原 書 名:Thinking in C++
原出版社:McGraw Hill
作��者:Bruce Eckel
譯��者:劉宗田等
書��號:7-111-07116-6
頁��碼:422
定��價:¥39.00
出 版 社:機械工業出版社
出版日期:2000-1-1
【8】書��名:C++語言的設計和演化
原 書 名:The Design and Evolution of C++
原出版社:Addison-Wesley
作��者:Bjarne Stroustrup
譯��者:裘宗燕
書��號:7-111-09098-5
頁��碼:396
定��價:¥48.00
出 版 社:機械工業出版社
出版日期:2002-1-1
【9】書��名:C++問題求解——《C++程序設計語言》的伴侶書
原 書 名:C++ Solutions: Companion to The C++ Programming Language 3/e
原出版社:Addison-Wesley
作��者:David Vandevoorde
譯��者:裘宗燕
書��號:??
頁��碼:~300 pp
定��價:??
出 版 社:機械工業出版社
出版日期:2002-?? 尚未出版
【10】書��名:C++精髓——軟體工程方法
原 書 名:Core C++:a software engineering approach
原出版社:Prentice Hall
作��者:Victor Shtern
譯��者:李師賢 張珞玲 劉斌 譯等
書��號:7-111-10100-6
頁��碼:804
定��價:¥85.00
出 版 社:機械工業出版社
出版日期:2002-8-1
書��名:數據結構演算法與應用 - C++語言描述
原 書 名:Data Structures, Algorithms, and Applications in C++
原出版社:Mcgraw-Hill
作��者:Sartej Sahni
譯��者:汪詩林等
書��號:7-111-07645-1
頁��碼:536
定��價:¥49.00
出 版 社:機械工業出版社
出版日期:2000-1-1
【11】書��名:Effective C++中文版 2nd Edition
原 書 名:Effective C++ 2nd Edition
原出版社:
作��者:Scott Meyers
譯��者:侯捷
書��號:7-5609-2525-1
頁��碼:284
定��價:¥49.80
出 版 社:華中科技大學出版社
出版日期:2001-9-1
【12】書��名:More Exceptional C++中文版
原 書 名:More Exceptional C++
原出版社:Addison Wesley/Pearson
作��者:Herb Sutter
譯��者:於春景
書��號:7-5609-2771-8
頁��碼:¥39.80
定��價:¥39.80
出 版 社:華中科技大學出版社
出版日期:2002-9-1
【15】書��名:深度探索 C++ 對象模型
原 書 名:Inside The C++ Object Model
原出版社:
作��者:Stanley B.lippman
譯��者:侯捷
書��號:ISBN 7560924182
頁��碼:320
定��價:¥54.00
出 版 社:華中科技大學出版社
出版日期:2001-5-1
【14】書��名:《C++標准程序庫——自修教程與參考手冊》
原 書 名:
原出版社:
作��者:Nicolai M.Josuttis
譯��者:侯捷 孟岩
書��號:
頁��碼:
定��價:¥108
出 版 社:華中科技大學出版社
出版日期:2002年9月
【15】書��名:C++ STL(中文版)
原 書 名:C++ Standard Template Library
原出版社:PH PTR
作��者:P.J.Plauger Alexander A.Stepanov Meng Lee David R.Musser
譯��者:王昕
書��號:7-5083-1058-6
頁��碼:535
定��價:¥69.00
出 版 社:中國電力出版社
出版日期:2002-5-1
【16】書��名:STL 源碼剖析
作��者:侯捷
書��號:7-5609-2699-1
頁��碼:500
定��價:¥68.00
出 版 社:華中科技大學出版社
出版日期:2002-5-1
D. 如何用原點平移法和反冪法構建一個可以求解矩陣所有的特徵值
反冪法應該不行,但是類似反冪法的很多方法都可以做到,比如:
1.
Simultaneous
iteration—
同時迭代法
2.
Newton法
3.
Implicit
Restarted
Arnoldi—隱式重啟動的Arnoldi方法
4.
Jacobi-Davidson方法
以上所有演算法中,不能僅收斂
特徵向量
,要收斂包含特徵向量的不變
子空間
的酉基,即Schur基,才能保證演算法對於nondefective(中文不知道咋翻譯,因為還有個nonderogotary)matrix也能生效。還要注意的是,對於Arnoldi和Jacobi-Davidson方法,由於有限精度計算誤差的影響,在迭代多次以後還要加入重新正交化的步驟,保證搜尋子空間酉基的
正交性
,這一步又叫做DGKS修正,可參考Demmel,Gxx,Kxx和Stewart
70年代在SIAM上發表的論文。
E. 密度矩陣重整化群的[編輯]實行DMRG的技巧
實際實行DMRG是一個很冗長的工作,一些主要常用的計算手段如下:
為了得到超塊的基態,通常利用Lanczos 演算法或Jacobi-Davidson 演算法來對角化超塊的哈密頓算符。另一個選擇是Arnoldi 方法,特別是在處理非厄米矩陣。一般的情況下,Lanczos 演算法需要一個初始的隨機向量。通過若干次迭代後,該向量收斂到基態。這說明演算法的計算速度跟向量迭代到基態的次數有關。顯然,如果能找出一個跟基態非常接近的向量做初始的隨機向量,Lanczos 演算法的效率必然大大提高。史提芬˙懷特在西元1996年提出:透過波函數轉換可將這次計算得到的基態,作為下一次Lanczos 演算法的初始向量。[2] 如此一來便加速對角化超塊的哈密頓算符所花的時間。 Lanczos 演算法中需要做被對角化矩陣和向量的乘積計算。該被對角化的矩陣往往非常大,直接列出該矩陣和做矩陣向量乘積會嚴重降低Lanczos 演算法效率。當該被對角化矩陣可以拆分為幾個小矩陣的直積之和時(DMRG所計算的格點系統往往有這種性質),可以無需直接寫出該矩陣而完成整個Lanczos 演算法。[3] 在有對稱性的系統中有一些守恆的量子數,例如海森堡模型中的總自旋及其z軸份量。若是已知基態的量子數則可針對系統的希爾伯特空間特定的量子數的子空間進行對角化。 如缺少上述的一些計算手段,DMRG可能難以完成對實際物理模型的演算。
F. 學C語言現在最好用的編程軟體
GNU編譯器套裝
開發 The GNU Project
最新版本 4.4.2 / 2009-10-15(2個月前)
操作系統 跨平台
類型 編譯器
許可協議 GPL
網站 gcc.gnu.org
GCC(GNU Compiler Collection,GNU編譯器套裝),是一套由GNU開發的編程語言編譯器。它是一套以GPL及LGPL許可證所發行的自由軟體,也是GNU計劃的關鍵部分,亦是自由的類Unix及蘋果計算機Mac OS X 操作系統的標准編譯器。GCC(特別是其中的C語言編譯器)也常被認為是跨平台編譯器的事實標准。
GCC原名為GNU C語言編譯器(GNU C Compiler),因為它原本只能處理C語言。GCC很快地擴展,變得可處理C++。之後也變得可處理Fortran、Pascal、Objective-C、Java,以及Ada與其他語言。
目錄
[隱藏]
* 1 概觀
* 2 目前支持的語言
o 2.1 內嵌OpenMP支持
* 3 支持的處理器架構
* 4 結構
o 4.1 前端介面
o 4.2 中介介面
o 4.3 後端介面
* 5 替GCC程序除錯
* 6 參考書目及注釋
* 7 參閱
* 8 更多閱讀
* 9 外部鏈接
[編輯] 概觀
GCC是由理查德·馬修·斯托曼在1985年開始的。他首先擴增一個舊有的編譯器,使它能編譯C,這個編譯器一開始是以Pastel語言所寫的。Pastel是一個不可移植的Pascal語言特殊版,這個編譯器也只能編譯Pastel語言。為了讓自由軟體有一個編譯器,後來此編譯器由斯托曼和Len Tower在1987年[1]以C語言重寫[2]並成為GNU項目的編譯器。GCC的建立者由自由軟體基金會直接管理[3]。
在1997年,一群不滿GCC緩慢且封閉的創作環境者,組織了一個名為EGCS《Experimental/Enhanced GNU Compiler System》的項目,此項目匯整了數項實驗性的分支進入某個GCC項目的分支中。EGCS比起GCC的建構環境更有活力,且EGCS最終也在1999年四月成為GCC的官方版本。
GCC目前由世界各地不同的數個程序設計師小組維護。它是移植到中央處理器架構以及操作系統最多的編譯器。
由於GCC已成為GNU系統的官方編譯器(包括GNU/Linux家族),它也成為編譯與建立其他操作系統的主要編譯器,包括BSD家族、Mac OS X、NeXTSTEP與BeOS。
GCC通常是跨平台軟體的編譯器首選。有別於一般局限於特定系統與運行環境的編譯器,GCC在所有平台上都使用同一個前端處理程序,產生一樣的中介碼,因此此中介碼在各個其他平台上使用GCC編譯,有很大的機會可得到正確無誤的輸出程序。
[編輯] 目前支持的語言
以2006年5月24日釋出的4.1.1版為准,本編譯器版本可處理下列語言:
* Ada 《GNAT》
* C 《GCC》
* C++(G++)
* Fortran 《Fortran 77: G77,Fortran 90: GFORTRAN》
* Java 《編譯器:GCJ;解釋器:GIJ》
* Objective-C 《GOBJC》
* Objective-C++
先前版本納入的CHILL前端由於缺乏維護而被廢棄。
Fortran前端在4.0版之前是G77,此前端僅支持Fortran 77。在本版本中,G77被廢棄而採用更新的GFortran,因為此前端支持Fortran 95。
下列前端依然存在:
* Mola-2
* Mola-3
* Pascal
* PL/I
* D語言
* Mercury
* VHDL
[編輯] 內嵌OpenMP支持
OpenMP是一種跨語言的對稱多處理器(SMP)多線程並行程序的編程工具,也非常適合當今越來越流行的單CPU多核硬體環境,因此從gcc4.2開始,OpenMP成為其內嵌支持的並行編程規范,可以直接編譯內嵌 OpenMP語句的C/C++/Fortran95的源代碼。gcc4.2之前如果想在C/C++/Fortran中嵌入OpenMP語句的話,需要額外安裝庫和預處理器才能識別和正確處理這些語句。
* gcc 4.2.0開始支持OpenMP v2.5
* gcc 4.4.0開始支持OpenMP v2.5及v3.0
參見GNU的GOMP計劃
[編輯] 支持的處理器架構
GCC目前支持下列處理器架構(以4.1版為准):
* Alpha
* ARM
* Atmel AVR
* Blackfin
* H8/300
* IA-32(x86)與x86-64
* IA-64例如:Itanium
* MorphoSys家族
* Motorola 68000
* Motorola 88000
* MIPS
* PA-RISC
* PDP-11
* PowerPC
* System/370,System/390
* SuperH
* HC12
* SPARC
* VAX
* Renesas R8C/M16C/M32C家族
較不知名的處理器架構也在官方釋出版本中支持:
* A29K
* ARC
* C4x
* CRIS
* D30V
* DSP16xx
* FR-30
* FR-V
* Intel i960
* IP2000
* M32R
* 68HC11
* MCORE
* MMIX
* MN10200
* MN10300
* NS32K
* ROMP
* Stormy16
* V850
* Xtensa
由FSF個別維護的GCC處理器架構:
* D10V
* MicroBlaze
* PDP-10
* MSP430
* Z8000
當GCC需要移植到一個新平台上,通常使用此平台固有的語言來撰寫其初始階段。
[編輯] 結構
GCC的外部介面長得像一個標準的Unix編譯器。用戶在命令行下鍵入gcc之程序名,以及一些命令參數,以便決定每個輸入文件使用的個別語言編譯器,並為輸出代碼使用適合此硬體平台的匯編語言編譯器,並且選擇性地運行連接器以製造可運行的程序。
每個語言編譯器都是獨立程序,此程序可處理輸入的源代碼,並輸出匯編語言碼。全部的語言編譯器都擁有共通的中介架構:一個前端解析符合此語言的源代碼,並產生一抽象語法樹,以及一翻譯此語法樹成為GCC的寄存器轉換語言《RTL》的後端。編譯器優化與靜態代碼解析技術(例如FORTIFY_SOURCE[1],一個試圖發現緩存溢出《buffer overflow》的編譯器)在此階段應用於代碼上。最後,適用於此硬體架構的匯編語言代碼以Jack Davidson與Chris Fraser發明的演算法產出。
幾乎全部的GCC都由C寫成,除了Ada前端大部分以Ada寫成。
[編輯] 前端介面
前端的功能在於產生一個可讓後端處理之語法樹。此語法解析器是手寫之遞回語法解析器。
直到最近,程序的語法樹結構尚無法與欲產出的處理器架構脫鉤。而語法樹的規則有時在不同的語言前端也不一樣,有些前端會提供它們特別的語法樹規則。
在2005年,兩種與語言脫鉤的新型態語法樹納入GCC中。它們稱為GENERIC與GIMPLE。語法解析變成產生與語言相關的暫時語法樹,再將它們轉成GENERIC。之後再使用"gimplifier"技術降低GENERIC的復雜結構,成為一較簡單的靜態唯一形式(Static Single Assignment form,SSA)基礎的GIMPLE形式。此形式是一個與語言和處理器架構脫鉤的全局優化通用語言,適用於大多數的現代編程語言。
[編輯] 中介介面
一般編譯器作者會將語法樹的優化放在前端,但其實此步驟並不看語言的種類而有不同,且不需要用到語法解析器。因此GCC作者們將此步驟歸入通稱為中介階段的部分里。此類的優化包括消解死碼、消解重復計算與全局數值重編碼等。許多優化技巧也正在實現中。
[編輯] 後端介面
GCC後端的行為因不同的前處理器宏和特定架構的功能而不同,例如不同的字元尺寸、調用方式與大小尾序等。後端介面的前半部利用這些消息決定其RTL的生成形式,因此雖然GCC的RTL理論上不受處理器影響,但在此階段其抽象指令已被轉換成目標架構的格式。
GCC的優化技巧依其釋出版本而有很大不同,但都包含了標準的優化演算法,例如循環優化、線程跳躍、共通程序子句消減、指令調度等等。而RTL的優化由於可用的情形較少,且缺乏較高級的信息,因此比較起近來增加的GIMPLE語法樹形式[2],便顯得比較不重要。
後端經由一重讀取步驟後,利用描述目標處理器的指令集時所取得的信息,將抽象寄存器替換成處理器的真實寄存器。此階段非常復雜,因為它必須關照所有GCC可移植平台的處理器指令集的規格與技術細節。
後端的最後步驟相當公式化,僅僅將前一階段得到的匯編語言碼藉由簡單的副函數轉換其寄存器與存儲器位置成相對應的機器碼。
[編輯] 替GCC程序除錯
為GCC除錯的首選工具當然是GNU除錯器。其他特殊用途的除錯工具是Valgrind,用以發現存儲器泄漏 (Memory leak)。而GNU測量器(gprof)可以得知程序中某些函數花費多少時間,以及其調用頻率;此功能需要用戶在編譯時選定測量《profiling》選項。
[編輯] 參考書目及注釋
* Richard M. Stallman:Using and Porting the GNU Compiler Collection, Free Software Foundation,ISBN 0-595-10035-X
* Richard M. Stallman: Using Gcc: The Gnu Compiler Collection Reference, Free Software Foundation, ISBN 1-882114-39-6
* Brian J. Gough:An Introction to GCC, Network Theory Ltd., ISBN 0-9541617-9-3
1. ^ Tower, Leonard (1987) "GNU C編譯器beta測試版釋出" comp.lang.misc USENET新聞組;參閱http://gcc.gnu.org/releases.html#timeline
2. ^ Stallman, Richard M.(1986年2月1日).GNU狀態.GNU的公告版,1(1).自由軟體基金會.
3. ^ Stallman, Richard M. (2001) "GCC貢獻者名單"於使用及移植GCC 2.95版(Cambridge, Mass.: Free Software Foundation)
[編輯] 參閱
[[File:|36x32px|自由軟體主題]] 自由軟體主題首頁
GCC目前包含了Boehm GC,一個為C/C++ 所設計的垃圾回收器。
* distcc - 為分布式編譯所設計的軟體,以GCC為協同軟體。
* LLVM - 低層虛擬機編譯器架構。
* MinGW - 將GNU開發工具移植到Win32平台下的計劃
* Cygwin - 在Windows上運行GNU程序的模擬軟體。
* GCC Summit
* OpenWatcom - 另一個開放原碼的C++/Fortran編譯器。
* Code Sourcery - 一個GCC顧問公司。
* ggcc - 全球化GCC項目。
[編輯] 更多閱讀
* Arthur Griffith, GCC: The Complete Reference. McGrawHill/Osborne. ISBN 0-07-222405-3.
* Kerner, Sean Michael.Open Source GCC 4.0: Older, Faster,internetnews.com,2005年4月22日.
* Kerner, Sean Michael.New GCC Heavy on Optimization,internetnews.com,2006年3月2日.
[編輯] 外部鏈接
* GCC官方網站
* GCC Forum - 由Nabble維持,整理所有gcc通信討論串,並集成入一個可搜索介面中。
G. 高分求塊Davidson演算法程序
分真高!!
呵呵~~我開玩笑的~
我的確是學計算機的
但對於你的問題
我真的無能為力啊~~
如果有別的方面的問題
還可以問我!!!
H. 請問您知道有什麼適用於大規模非對稱特徵值計算的數學演算法嗎
Sorry, 沒注意這方面的研究成果
I. gcc編譯線程程序,為什麼要加-lpthread,頭文件已經包含了<pthread.h>了啊
-lpthread是鏈接庫,
<pthread.h>只有申明,實現部分都在庫裡面。
創建線程時一般是把函數的指針做參數,所以要加一個取地址符號。
ret=pthread_create(&id,NULL,(void *)&thread,NULL);
另外,建議要檢查一下創建線程的返回值ret是否成功,防止影響後面的代碼。
(9)davidson演算法擴展閱讀:
每個語言編譯器都是獨立程序,此程序可處理輸入的原始碼,並輸出組合語言碼。全部的語言編譯器都擁有共通的中介架構:一個前端解析符合此語言的原始碼,並產生一抽象語法樹,以及一翻譯此語法樹成為GCC的暫存器轉換語言〈RTL〉的後端。
編譯器最佳化與靜態程序碼解析技術(例如FORTIFY_SOURCE,一個試圖發現緩沖區溢位〈buffer overflow〉的編譯器)在此階段應用於程序碼上。最後,適用於此硬體架構的組合語言程序碼以Jack Davidson與Chris Fraser發明的演算法產出。
J. 在瑞士蘇黎世聯邦理工學院 就讀是怎樣一番體驗
ETH Zürich概況
它繼承了德語區學校低調的氣質,實務的作風,同時在學術方面又將德語區其他大學遠遠甩於其後。它有著全球排名前二十學校的研究實力,名氣卻不如英美全球前二十學校。但若要列舉其校友,恐怕沒人會否認他作為全球頂尖大學的地位。首先是已收諾獎三十粒以上,且為首屆世界數學家大會主辦方。知名校友有:
在數學領域有:
集合論里的康托;
閔可夫斯基;
現代有:
動力系統里的Moser;
分析里的Ahlfors等;
物理領域有愛因斯坦;
泡利;
X光的發現人、第一個諾貝爾物理學獎獲得者倫琴等;
計算機領域有馮諾伊曼;
同時,光合作用、胡蘿卜素、葉綠素、核磁共振等影響人類文明進程的重大科學發現也是由ETH的科學家所完成。
盡管科學界造神的年代早已一去不復返,但ETH各路大牛仍然發保持著昔日的領軍地位:基本各個領域都處於世界領先水平,尤其是建築、生物、化學、物理、機械、計算機科學、數學等領域;各個實驗室、研究小組均由大師帶團。
學校經費充足,3D列印機、論文資料庫從來不缺;學費極其低廉,每年學費不到一萬人民幣;學生福利充足:食堂便宜,部分學生可以住進性價比高的學生宿舍,體育館免費開放,低價開設許多戶外課程;學校和教授提供大量TA、RA機會;博士平均工資全球最高。
師資力量(部分)
我在ETH Zürich選的課多集中於probability theory, stochastic analysis, mathematical finance。這三個領域外加actuarial mathematics,構成數學系第三組Gruppe3。本組大師雲集,最近十年共有八位正教授(兩位已退休,其中一位回德國當起了榮譽教授,現在常駐七位)在位,在各自領域幾乎全是頂尖學者。
Wendelin Werner
2006年Fields Medal得主。
Alain-Sol Znitmann
巴黎高師畢業的法國純概率學家,與法國著名概率學家Nicole El Karoui, Jean-Michel Bismut, Pierre Priouret, Marc Yor等人師出同門,研究random field, random walk, random media等,跟數學領域最高獎Fields Medal得主獲獎者Pierre-Louis Lions合作過SDE with reflecting barrier;自己得過概率論學界的Davidson Prize。
Paul Embrechts
概率論與應用概率論大牛,學術界與金融、精算界通吃的數學家,ETH Risk Center老大,主攻風險管理領域需要的數學工具,比如Copula,Extreme Modeling,random measure,risk measure等,全球范圍內在actuarial mathematics領域無出其右,在Copula等領域發的論文都是奠基之作,熟悉此方向的朋友請自行scholar.google。瑞士金融界,Basel Committee,Bachelier Finance Society等機構把他當神仙一樣供著。主要寫過兩本書,第一本是Quantitative Risk Management: concepts. techniques and tools,我在投行工作的朋友說這本書是the book of QRM而不是a book of QRM。第二本是Modeling Extremal Events: for insurance and finance,引用次數已經達到5000+。學術網路覆蓋全球所有頂尖學者,帶過的博士學生多位成為歐美執教的大牛。
Freddy Delbaen
早年研究實分析和泛函分析,金融數學領域最高產的數學家,最重要的兩篇文章分別奠定了風險度量和目前最一般的套利理論的基礎(套利理論又是金融數學的基礎),了解這個結論需要非常扎實的概率論和泛函分析功底。學生中成為頂尖專家的至少有三位,我所了解的這三位,一個是得過Fields Medal的Jean Bourgain, IAS@Princeton,二階倒向隨機微分方程的創始人Patrick Cheridito, ORFE@Princeton, affine processes領域最重要的人物Damir Filipovic, EPFL(很早也拿到了Princeton的tenure track assisant professorship)。學術雜志Mathematical Finance的榮譽顧問(一共就兩三位)。晚年和做控制論和倒向隨機微分方程的頂尖華人數學家合作,比如Shige Peng, Ying Hu, Shanjian Tang。熟悉此領域的朋友肯定知道這幾人如雷貫耳的大名。
Martin Schweizer
ETH科班出身,概率與金融數學學家,早期概率與金融數學學家Hans Follmer的學生,研究金融數學中的hedging問題應該是全球最好的學者,常年在諸多頂尖會議任plenar speaker,ETH金融數學雜志Finance and Stochastics主編。他做的學問極其理論,雖然文章都帶金融背景,但實際上不是數學家基本沒法看懂他的論文,只要金融問題一到他手上全部變成driven by semimartingale;發表的金融數學文章基本都在Annals of Probability, Annals of Applied Probability這類數學雜志上,也很有自己獨特的風格。早年為了研究hedging而專門發展了一套approximating random variables by stochastic integrals的理論。也得過概率論領域的Davidson Prize。最近幾年有數位學生在頂尖大學數學系任教,比如Columbia University的Marcel Nutz。他應該是目前Gruppe3授課水平最高的人,自己為幾門概率課寫過專門為ETH學生准備的教材;同時他也是典型的嚴謹到極致瑞士人:上課前只拿兩張紙到教室,然後就不停地邊講解邊板書,板書內容和講義有幾乎完全一致,只有每一小節結束的時候才會停下來看一眼講義,然後繼續講。上課不允許違紀:曾經有一個同學上課小聲討論問題被輕微呵斥過。但私下是非常和藹的大師,因為碩士論文是由他監督,所以有過幾次私下會面的經歷。
Halil Mete Soner
控制論、幾何測度論大師Wandel Fleming的學生,當然自己也是控制論大牛,研究興趣跨了多個數學分支,涉及控制論,非線性偏微分方程,微分幾何,倒向隨機微分方程等,也是二階倒向隨機微分方程的創始人。曾是ORFE@Princeton建系以來第一個Whytes' 55 Proefssor。在Brown Univeristy讀博士是由美國國防部出資贊助。後來冷戰結束,自己和在CMU的同事Steven Shreve(後來也成為大名鼎鼎的金融數學家)、Stanford的Darrel Duffie等巨匠做了不少金融數學中的隨機控制問題。現任Bachelier Finance Society的Senior Secretary,任SIAM等諸多雜志Editor。前些年被挖至ETH。
Josef Teichmann
純數學出身,曾在著名泛函分析與金融數學家Walter Schachermayer做postdoc。和affine processes的創始人、ETH畢業的博士Damir Filipovic研究affine processes,做的非常理論;同時也做stochastic partial differential equations,也是該領域的傑出學者。同時也研究affine processes和SPDE相關的利率理論,最近拿了個Bachelier Finance Society的大獎。做的非常理論和前沿,目前很少看懂他的論文。
Hans Follmer
還有幾位年輕助理教授,都是有美國、法國、德國頂尖學校學術背景的佼佼者。
下面一個conference的speaker list大致可以反應ETH在金融數學領域的地位。
Methods of Mathematical Finance: a conference in honor of Professor Steven Shreve's 65th birthday.
學制
ETH每年有兩個學期,每個學期持續12-13周,考試一般有兩個session,一個是期末考試end-of-semester exam session;一個是exam session,與期末考試間隔開,一般在新學期開學之前;一般來說冬季的exam session在一月中旬到二月開學前;夏季的exam session在八月,也就是六月放假往後數兩個月。這種考試安排直接的後果就是聖誕假期和暑假基本都處於復習的狀態,也就是說全年很少有長假。
課程
只根據我的學習經歷向大家介紹ETH的教學風格。我在ETH選過的課有
Probability and Stochastic Analysis Category:
Probability Theory
Applied Stochastic Processes
Brownian Motion and Stochastic Calculus
Backward Stochastic Differential Equations and Applications
Levy Processes and Continuous State Branching Processes
Stochastic Optimal Control
An Introction to the Modeling of Extremes
Numerical Analysis of Stochastic Differential Equations
Numerical Analysis of Stochastic Partial Differential Equations
Mathematical Finance and Quantitative Risk Management Category:
Mathematical Foundations for Finance
Mathematical Finance
Quantitative Risk Management
Interest Rate Theory
Computational Methods for Quantitative Finance: PDE Methods
Mathematics Student Seminar: Efficient Numerical Methods for Option Pricing
另外在隔壁蘇黎世大學(UZH)學過的課有
Finance and Economics Category:
Financial Engineering
Continuous Time Quantitative Finance
Economic Foundations for Finance
Advanced Financial Economics
Exercises for Finance Economics
Advanced Financial Economics
Credit Risk
Counterparty Credit Risk Management
Research Seminar for Finance
關於這些課程的部分內容,鄙人有兩篇文章對其做了部分介紹,請戳
隨機過程、機器學習和蒙特卡洛在金融應用中都有哪些關系? - 知乎用戶的回答
想成為一名寬客怎麼選擇讀研學校以及專業?寬客的職業規劃? - 知乎用戶的回答
(以下使用首字母簡寫)
這些應該屬於金融數學大類的課,所有課程均由Gruppe3的教授及其團隊講授。相比美國、英國同類項目,ETH在這領域的教學和研究相當理論,從數學理論的深度來比較,歐美項目講的深度基本只能到金融數學領域最基礎的課MFF,FE和QRM的深度:MFF最終講到semimartingale入門及其金融應用;FE會講比較前沿的建模方法,比如affine-jump diffusions, Levy processes, time change以及variance swap, exotic options等derivatives;QRM會包括extreme modeling和copula。PDE for Finance是按Sobolev space理論來講;NASDE在測度論和泛函的基礎上嚴格證明所有隨機積分的構建和性質,解的性質,數值演算法的收斂理論等。ETH概率論與金融數學方向所有課程的基礎是probability theory,始於測度論,大致是Probability: Theory and Examples, Rick Durret的簡明版,除了measure theory, law of large numbers, central limit theorems之外會詳細介紹discrete martingale的極限性質和收斂性質等。相對來說,ETH提供的應用課程不算太多,但actuarial mathematics領域有比較豐富的應用課程,同時也為業界人士准備。
BMSC是通往高級隨機分析的第一門課,以後打算在業界發展的學生已經不太需要這門課了。這門課相當於Protter, Marc Yor等人所著隨機分析教材的入門版。Martin Schweizer教授教的BMSC內容大致包括: general theory of probability and stochastic processes, Feller processes, Markov processes, Brownian motion and properties, stochastic integral, semimartingale, Ito's formula,stochastic differential equations and PDEs, (generalized) backward stochastic differential equations, Levy processes。記得前幾課時隨機過程一般理論講的比較抽象;幾乎所有定理和性質全給證明,是比較規矩的數學課。
BSDEs,SOC,SPDEs, MF等課已經超出絕大多數數學碩士認知的范疇,基本是給數學博士或者有志於攻讀博士學位的碩士開的專題課,大體內容是講數學paper,一般鮮有碩士來上:比如BSDEs課上就我一個碩士,博士堅持到最後的也只有一人(其中緣由可能是授課老師是個口語不好的中國post-doc);SOC可能有4個碩士4個博士;SPDEs大概有3個碩士4個博士。2014年春季學期為LP&CSBP單獨開了一門課,講的不難,花了幾課時講了非常有趣的Continuous State Branching Processes(與金融里的affine processes有很多關聯)。
MF課上基本就是讀概率論和金融數學領域的前沿paper,需要BMSC為先修課程外加較好的測度論、泛函分析基礎才能懂裡面的semimartingale和沿著semimartingale的隨機積分理論以及幾個非常復雜的金融數學定理,涉及最廣義的Fundamental Theorem of Asset Pricing under Semimartingale,Convex Duality,甚至BSDEs等。MF2013年出了一個比較潦草的pdf講義,請戳http://www.math.ethz.ch/~jteichma/lecturenotesMF20131220.pdf,內容大致是
Semimartingale Theory
Mathematics of Arbitrage in Discrete Model
Mathematics of Arbitrage under Semimartingale
Super-replication
Utility Maximization: Stochastic Control Approach and HJB Equation
Utility Maximization in Discrete Model: Convex Duality Approach
Utility Maximization under Semimartingale: Convex Duality Approach
NASPDEs更加理論,這門課與金融數學有一定關系但學習金融數學的學生已經不上這課了,可以認為是純概率或者純數值分析課程,主要講Banach space上的隨機微分方程理論及其數值方法。
Seminar的上法是:老師分配論文給各個學生,學生弄明白以後要做slides和presentation,涉及數值方法的還要編程跑程序演示結果。我去年做的是一種新穎的基於傅立葉變換的期權定價方法:
Option Pricing under affine processes and Levy processes with Fourier-cosine method, and applications in European option and exotic option pricing.
Talk and Conference
Gruppe3主導的Talks in Probability, Talks in Financial and Insurance Mathematics, Risk Center基本每周都有全球各地的speaker講他們的最新成果;每年都有各種各樣的學術會議,比如2012年為Freddy Delbaen慶生搞了個perspectives in probability and analysis: conference in honor of Freddy Delbaen,請遍所有頂尖專家。2013年與京都大學搞概率隨機的團隊分別在蘇黎世和京都搞了conference;此外每年九月都有Risk Day,都是由全球頂尖的概率與金融數學家主持。
ETH主辦金融數學雜志Finance and Stochastics,是金融數學和應用概率界水平不錯的雜志,主編是Martin Schweizer。Editorial Board成員也包括了北美、歐洲主要大牛。
作業
2013年以前是作業累計分數達到60%-80%(根據課程來定),才有資格考試。作業難度較大,一學期若有三門課有作業,那基本一直在趕deadline。後來據說每學期一般四到六門課有作業的本科生抱怨很大,於是取消了這一制度。
考試
基礎課以筆試為主要形式,有些會有期中考時,有些會有上機考試。筆試題量非常大,如果對教材不能倒背如流,那是很難完成所有題目的。其他課以口試為主:教授一般會把考生叫到辦公室,然後一對一,一問一答,一般會帶一個博士做筆錄;有時候會要你在黑板上板書,有時候會讓你在紙上寫;有些教授變態到要求全部細節,比如Alain-Sol Znitmann,有些教授只要求你掌握其核心思想,比如Halil Mete Soner,有一些書寫失誤則不影響分數。排除運氣成分,拿滿分的必要條件是能理解並記憶講義里的所有內容,幾乎達到可以給學生講課的水平。ETH數學專業的學生隨著年級的升高,平均分會越來越高,部分原因是不合格的已經逐漸被淘汰了;所以能拿到本科學位並且進入碩士階段學習的ETH學生都非常強悍,以至於認識他們之後大家都嫌棄自己不是ETH本科出身。
論文
所有項目都需要寫論文,碩士論文30學分,大概占總學分的1/3或者1/4(根據專業來定),時間5-6個月;可以自己聯系教授做supervisor,也可以去業界做和應用相關的項目。論文推薦的工作時間是每周60小時左右,應該算是很大的工作量。一般來說,教授會根據學生的興趣給出需要看的論文清單,然後學生在規定時間內全面理解該論文對應的問題,並能寫出一片清晰、易讀、完整的學位論文。每個專業總有幾個學生能做出新東西並發表在國際雜志。
獎學金、工資
ETH向少量碩士生提供獎學金。根據我目前的了解,本科階段研究水平極其突出的人,有很大幾率拿到碩士全額獎學金。關於申請獎學金,一般要求在申請的時候寫research proposal,如果寫的非常牛,牛到直接可以當做個問題做下去,甚至可以成為碩士論文、博士階段的研究方向,是可以拿到獎學金的。另外,和ETH學術聯系緊密的FDU、NUS等校的學生相對容易拿到。
博士生工資相當高,當然也看具體專業吧。化學等似乎稍微少點,數學比較多,可能是因為不需要實驗器材的緣故。也有不少公派博士。