作为一般知识和技能的力学

学力学分几个层次:专门搞力学(流体或者空气力学),搞物理研究的,搞强梁建筑设计之类的把力学当成工具的,搞一般的自然科学的把力学当成思想的,搞社会科学的把力学当成参考模型、世界观以及思想的。

在这里,我想针对搞物理研究的、搞一般自然科学、搞社会科学的角度,来看一看力学应该优先学哪一些内容。这样的内容应该能够体现牛顿力学的世界观:绝对时间和空间、运动与运动变化原因之间的关系、守恒量、典型力学系统——中心势场、谐振子,然后训练学习者在运用数学结构方面的技能。

  • 先来看学习力学所需要的基础:微积分(一元微积分、不太多的多元微积分,也就是重点包含场的微积分,简单微分方程,矢量运算,线性代数有最好没有也不是大问题)。
  • 再来看牛顿力学,学了这些对于搞社会学的应该已经差不多在技术和思想上都算入门了:
    1. 运动的描述(从实际生活经验到力学概念的抽象过程,这个很重要),运动相关的物理量——位置(空间、坐标系,参考系)、时间、位移、速度、加速度、动量、能量(动能)、角动量
    2. 动力学:力与力的分解、加速度、牛顿第二定律、守恒量、势能,自由落体运动,谐振子,单摆,行星运动,中心势场
    3. 运动坐标系:平动、转动坐标系,运动坐标系下的微分运算,曲线坐标系
    4. 位形空间与相空间,微分方程的解的存在与唯一性
    5. 少体耦合系统,相互作用
  • 接着来看分析力学,对于搞物理的,搞基础自然科学研究的,分析力学是必需的:
    1. 位形空间与相空间,Lagrangian力学,Lagrangian量,作用量,相互作用,最小作用量原理,动力学方程、变分法初步
    2. Hamiltonian力学,Legendre变换,Hamiltonian方程,守恒量,相互作用与保守力
    3. Poisson括号,守恒量,Liouville方程
    4. 谐振子、耦合谐振子、其他耦合系统
  • 最后来看狭义相对论,目前看来只有搞物理的需要它:
    1. 牛顿时空观的问题,实验以及反思,相对性原理
    2. 狭义相对论的时空观,同时的相对性,尺缩钟慢
    3. Minkowski空间初步,空间的线元的长度,四维图,四维物理量
    4. 几何决定动力学,坐标变换不变性、协变性

前面两个部分,在本科一年级课程以内应该是能够完成的。对于数学好、悟性不太差的学生,前面三个应该都能够完成。例如,前4周(20学时)完成数学准备,再用4+2周完成第二部份(其中的两周10学时用在举例以及习题课),再用4周时间教授基本的分析力学,如果可能的话,还能够用两周左右时间讲授相对论。

试一试,有多大的可行性。当然,学生课后要花时间,要主动学习,才行。教材方面,可以参考Feynman’s Lecture on Classical Mechanics,力学概论by方励之,Mechanics by Landau,Classical mechanics:Point particles and relativity by Greiner W.

我带学生的风格

1、我对学生的课业和研究工作,研究品味方面要求比较高。
2、时间上也要求学生比较投入。
3、在研究内容的选择方面,我给学生比较大的自由。可以慢慢地从我想做的东西里头选择,也可以自己想然后通过与我讨论并得到认可以后拿来做。
4、我会尽量地从idea、实现技术、研究所需知识基础、研究课题的背景和现状的调研等等各个方面给于帮助和指导。
5、我会非常严厉地批评学生,也会非常耐心地给学生从头讲解。
6、只要学生清楚自己在做什么,比较细之地考虑过了自己的选择的结果(当然,我会帮你分析选择的可能后果),我一般都尊重学生的选择。

就算我在严厉批评学生的时候,除了知识积累或者技术实现甚至对这个项目的认可程度方面都差别,学生和我是平等的。学生可以和我争论,我不会伤心、生气。研究工作进展很小的阶段很正常,但是如果我不知道进展小的原因,不知道学生在针对这个情况做什么,就不正常了。我希望学生不要怕找我诉说困难,如果这都怕,要老师干什么?老师就是跟学生一起找到困难到底在什么地方,然后在能够帮忙的时候帮一下的人。在研究工作中起主导或者辅助作用我都愿意。

想招两个一年级本科生指导一下

从物理系和系统科学系找两个新生,最好一边一个,加入我的研究小组。计划用两年时间学习核心课程,两年时间做一些研究工作。在完成普通学生的课程基础上,我会对数学、物理学、计算机、英语课程提出额外的要求,并提供指导。你会花很多其他人玩乐的时间来学习和开展研究工作。这一点你要有心理准备。

要求:

  1. 对学术研究有浓厚的兴趣
  2. 有毅力,不畏难
  3. 数学、物理学、英语不是很差

目标:

  1. 完成数学、物理学、计算机科学本科以及硕士研究生阶段的核心课程的学习
  2. 基本的科研训练:学术品味、寻找问题、完成计算、报告学术成果、论文写作
  3. 多学科的兴趣

待遇:

  1. 考察期间过后,给一定津贴
  2. 完成研究工作的话,按照本组硕士研究生的标准给予奖励

我的所得:

  1. 更多的学生来完成我的工作。不过这个不重要,其他研究生也可以完成
  2. 试一试在我自己身上管用的学习方法和内容有没有一定的推广价值
  3. 寻找和培养超越我自己的学生,这一点最重要

关于培养方向的部分细节内容可以参考:工具、课程与学习资料
关于吴金闪的更多细节可见吴金闪的简历
关于吴金闪团队的工作的更详细的介绍可见研究计划与进展

工具、课程与学习资料

这些是我整理的为一般性的研究工作做准备的一些资料和工具。大部分都可以从网上下载(docin, doc88, iask文库之类的地方,当然还有Google)。

  • General discussion of Scientific Investigation and Scientific Thinking: The Art of Scientific Investigation by W.I.B. Beveridge, Learning, Creating and Using Knowledge by J.D. Novak.
  • LaTeX (typesetting): The Not So Short Introduction to LATEX2ε, a sample file or a journal specific template, google latex symbols when needed.
  • gnuplot (figures): gnuplot in action, gnuplot manual, gnuplot not so frequently asked questions.
  • jaxodraw (Feynman diagram): jaxodraw official website.
  • Linux shell (A series of Linux commands in a file to save time): Linux Shell Scripting Tutorial v1.05r3 A Beginner’s handbook (http://www.freeos.com/guides/lsst/index.html) .
  • C:
    1. Find a good textbook and a good tutorial on C programming: Programming in C By Stephen G. Kochan, C by Examples by Greg M. Perry, C in 21 days by Aitken and Jones, The C Programming Language by K&R, http://en.wikibooks.org/wiki/C_Programming, http://www.cprogramming.com/tutorial/c-tutorial.html .
    2. First find a compiler (gcc), compile from the command line.
    3. Learn how to compile and run a basic program (makefile), such as printing “Hello World” to the screen and exit.
    4. Learn about variable types, such as the difference between char, int, float, double, etc.
    5. Learn about the concept of variables, arrays and functions.
    6. Learn pointers, dynamic memory allocation.
    7. Learn conditional statements and loops, such as the “if”, “switch” and “for” statements. Also learn the continue and break statements.
    8. Learn some basic standard library functions, but not too much.
    9. Start with small programs, however meanwhile constantly think about one much bigger problem on your mind, say the task you want to accomplish in the beginning when you notice that you need C and start to work on that problem (via for example, first decomposing the big problem into many small ones) as soon as possible.
    10. Learn key steps about debugging (gdb).
    11. Learn a little bit about programming style: Notes on Coding Style for C Programming, Writing Bug-Free C Code.
    12. Learn data structures and a little bit on algorithms, linked list, graph, tree.
    13. Learn a little bit of code profiling (code optimization): gprof, http://www.ibm.com/developerworks/library/l-gnuprof.html .
  • Python: 转闫小勇(@yanxy)整理的资料:Python精要参考(第二版)——iask上有,100多页,保证几天学会Python基本编程:)Networkx入门笔记——我博客上有: here
    Numpy 1.5 Beginner’s guide——iask上有,200多页,看前三章一般就够了,推荐!
    用python做科学计算——在线版:http://hyry.dip.jp:8000/pydoc/index.html,可以看看里边的numpy和matplotlib部分,其他不看也罢。
    个人建议:学编程,关键是动手写。看书看不会,越写越熟练!
  • R: http://www.ling.upenn.edu/~joseff/rstudy/index.html,Introductory Statistics with R by Peter Dalgaard,The Art of R Programming: A Tour of Statistical Software Design by Norman Matloff, The R Book by Michael J. Crawley。
  • sage: http://www.sagemath.org/doc/tutorial/index.html,SAGE For Newbies by Ted Kosan,Sage Beginner’s Guide by Craig Finch。
  • Network Analysis and related packages: An Introduction to Networks by Newman, Our own review paper and several papers from others (see documents from the complexity group on this website), NetworkX, Pajek, UCINET, SNAP: Stanford Network Analysis Platform, igraph, Network Workbench.
  • Monte Carlo and Monte Carlo in statistical physics:
  • Linear Algebra System (BLAS, Lapack, Petsc, Slepc): official websites, examples and manual
  • General algorithms (numerical diffrentiation, integration, the Runge-Kutta method, root finding etc): gsl and gsl manual, Introduction to Algorithms, by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein, The Algorithm Design Manual by Steven S. Skiena。
  • Parallel programming (MPI, just some general priciples): “Parallel Programming in C with MPI and OpenMP” by Quinn, Petsc, Slepc manual and examples
  • Physics, Math and Economics:
    1. Classical Mechanics: Feynman’s Lecture on Classical Mechanics,力学概论by方励之,Mechanics by Landau;Calculus required.
    2. Quantum Mechanics: Feynman’s Lecture on Quantum Mechanics, Principles of quantum mechanics by R. Shankar, Modern Quantum Mechanics by J.J. Sakurai,高等量子力学by喀兴林,Quantum Mechanics by L. Ballentine;Classical Mechanics, Linear Algebra, Probability Theory required。
    3. Statistical Physics: 量子统计物理学by杨展如,Statistical Mechanics by D.A. Mcquarrie, Statistical Physics by Leo P. Kadanoff, A Modern Course in Statistical Physics by L. E. Reichl, Equilibrium Statistical Physics by Michael Plischke and Birger Bergersen, Introduction to Modern Statistical Mechanics by David Chandler;Classical Mechanics, Quantum Mechanics, Probability Theory, Stochastic Process required.
    4. Quantum Field Theory: Quantum Field Theory: From Operators to Path Integrals by Kerson Huang,Many-Particle Physics by Gerald D. Mahan,An Introduction to Quantum Field Theory by Peskin & Schroeder; Classical Mechanics, Quantum Mechanics, Statistical Mechanics required, Group Theory, Functional Analysis can be helpful。
    5. Non-linear Dynamics: Invitation to dynamical systems by Edward R. Scheinerman, Chaos: Making a New Science by James Clark(译作《混沌学传奇》或者《混沌:开创新科学》) 。
    6. Linear Algebra: 线性代数by居余马,线性代数与矩阵论by许以超,Algebra by M. Artin
    7. Calculus: Calculus Early Transcendentals by James Stewart,简明微积分 by 龚升,Principles of Mathematical Analysis by Rudin
    8. Probability Theory: 概率论导引 by A·H·柯尔莫戈洛夫,概率论引论by汪仁官,概率论by何书元,A course in Probability Theory by Kai Lai Chung
    9. Statistics: Statistics by D. Freedman, 有中文版
    10. Fokker-Planck equation, Master equation etc. in Stochastic Process: Fokker-Planck Equation by H. Risken
    11. Game Theory: Games of Strategy by Dixit etal, 演化博弈论 by 威布尔
    12. Microeconomics:
    13. Mathematical Modelling (the idea of searching and presenting phenomena by their natural math structures): A first course in mathematical modeling by Frank R. Giordano
    14. Group Theory (to have a better understanding of math, also helpful in understanding Quantum Mechanics, Quantum Field Theory): 熊全淹的《近世代数》, Representations of Compact Lie Groups by T. Bröcker and T.tom Dieck
    15. Functional Analysis (essential for understanding properly Quantum Mechanics and Quantum Field Theory):
    16. Differential Geometry (to have a better understanding of math, also important in learning General Relativity): 微分几何与广义相对论入门by梁灿斌,尤其是各种附录要仔细看,非常有价值