选课类别:基础 | 教学类型:理论课 |
课程类别:研究生课程 | 开课单位:数学科学学院 |
课程层次:本研贯通 | 学分:4.0 |
大四上的夏银华老师的有限元,研一为了学分再上一遍,明显感觉两位老师的讲法有许多不同。
有限元方法作为求解PDE的数值方法,无论是在固体力学、流体力学、还是电磁学中都有广泛的应用。
教材有两本,一本是Johnson的 numerical solution of partial differential equations by the finite element method,另一本是Brenner的the mathematical theory of finite element methods。从名字上也可以稍微看出来两本书的侧重点不同,前一本问题与例子更多,后者的数学理论更加的细致。我个人建议主要看Brenner那本,用johnson 的例子与习题作为补充。
徐老师会讲的非常细来降低我们的理解难度,所以相比于夏老师讲课进度要慢一些,第六章的多重网格作为现在解线性方程组的非常好用的解法并没有讲,但最后几节课补充了间断有限元(DG)的理论。编程的难度相比夏老师要低一点,但作为训练帮助理解完全足够。
预修课程:泛函分析,微分方程II(没学过微分II看Evans Chap5足够),数值代数,数值分析(后两门课必须会)
实际上PDE2徐老师是默认大家没学过,讲了sobolev空间,也布置了一些简单的泛函题目。
下面是 每一章的具体内容
(0)PDE的基本知识,变分问题和极小化问题,1维possion方程的一整套有限元做法,包括方程弱形式、有限元空间、基函数的计算、刚度矩阵计算、简单的误差分析。学玩这里实际上有限元的一整套流程就已经搞定了,后面的都是流程中每一步的普遍性理论。徐老师在这花费了大量时间去讲编程的细节,包括二维的局部刚度矩阵与全局刚度矩阵怎么编程计算。(ch0)
(1)sobolev空间理论,因为有限元使用的是方程的弱形式,所以需要介绍弱导数以及对应的函数空间。这部分的作用就是建立方程的弱形式以及后面的误差估计。(ch1)
(2)最开始讲的只是一维的情况,这里讲n维椭圆方程(possion)的模型问题,涉及三类边界条件的处理(ch5),以及使用泛函证明解的存在唯一性(ch2)。这里徐老师还补充了很多johnson书上有的方程的例子,包括双调和、对流扩散。
(3)有限元空间的构造。(ch3)一维就是简单的区间,但二维就有了各种三角单元、四边形单元,每种单元的基函数、对应的节点都不同,适用的 方程也不同。必须要明白每个有限元问题需要用什么空间最好,学会证明单元的连续性、唯一性,一般双三次多项式就够用了。
(4)误差估计。(ch4)思路是使用cea定理把有限元解的误差转化为多项式插值误差,徐老师并没有使用泰勒平均多项式和Brumble-Hilbert定理这种通用性的证明,而是用等价范数定理证明了常用的结果来更好的理解。
(5) 弹性力学问题与stokes(简化的流体)问题。(ch11、12)主要就是处理散度div=0这个条件。徐老师只是简单介绍了问题,提出了非协调有限元的概念,并没有完全讲完书的两章。
(6)非协调有限元。(ch10)介绍非协调元的优点、构造以及误差估计方法。这里不细说了因为需要学完前面的才懂。
(7)带时间项的问题(抛物与双曲方程)。其实就是加了一个时间项的离散,和NPDE里面的格式一样。需要会欧拉向前、向后、CN格式的稳定性分析。
(8)间断有限元。最后几节课都没几个人听了,如果不是NPDE方向不听也没关系。
考试范围是0、1、2、3、4、6、7。实际上期末就是0-4,考的就是最基础问题的核心思路。前三题都是弱导数和一些范数不等式,第四题是基函数的连续性唯一性,第五题椭圆问题的存在唯一性(方程是不满足强制性的,不能用Lax-Milgram定理,不过时间紧我也没举反例,举反例有些线性常微分的知识应该也能举出来),最后一题是双调和方程的一整套,包括弱形式、有限元空间、基函数、误差估计,实际上是johnson那本书的一个习题,需要用到三次hermite插值,22年9月的博资考也考了这题。我最后拿了95分,毕竟学过一遍了,要是还考不好我都没脸读下去了。
总的来看这门课还是比较硬的课,但徐老师讲的非常细所以只要跟着问题不大。计算方向一定要学这门课。还有一些别的学院的比如地空、力学的也有选的,但没学过泛函和PDE2面对一大堆的函数空间和不等式感觉会很痛苦。
本人上过2022秋这门课,当时成绩是80分,不满意故研究生重新修一遍,结果遇到这么恶心的情况,还是转学分了。
与2022秋相比,2023秋的要求:
1.强制使用北太天元
2.强制要求手撸数值积分
3.卡程序时间
上述三点可以占作业比重的百分之二十,同样的作业在2022秋可以拿到满分,在2023秋只能拿到75分;同样的程序在matlab上只需要0.1秒,在北太天元4.9秒,我不知道我为什么要在北太天元写数值分析的程序。
这门课最近出分了,来写个评价纪念一下大四的最后一门数学课。首先这门课是徐老师第一次带,所以讲的很细很慢,不同于她上数值分析经常使用ppt,这门课是以板书为主的,教材是Brenner和Johnson两本书,主要是Johnson的1-4章,Brenner的1-3章和10-11章的部分。
徐老师讲这门课讲的很细,所以可能会比夏老师讲的要少一点,程序作业相对数值分析的时候少了很多,只有五次,三次一维情形两次二维情形,做起来也还好。书面作业和数值分析一样,周一交,不许迟交不许补交,中途因为疫情开了线上提交,然后一直可以线上提交到期末。(感觉助教在bb上给分比在线下给分要严很多)因为疫情,本来有的小测也变成了线上提交(时间一周),还挺仁慈的,但即便如此,也还是做的时候有一些问题在的,不过也很好的帮我们巩固了一下知识,整体卷子难度还是适中的。期末考试也没有很凶残,前两题都是求弱导数,属于是学过微分方程2就可以做,当然学了有限元也可以做,因为作业也会布置这种题。然后中间出了一些方程的具体求解,我印象比较深刻的有一个题是写出矩形有限元空间的形函数,证明连续性和唯一可解性,其实单论证明不是很难的,因为基本上是可以套过程写的,但是脑子里突然忘了矩形有限元是啥样的,只想起了Wilson元,也不知道对不对,那个15分感觉白给了,不过大四人,看的就得开。基本上还是要会变分问题极小化问题这种转化的,毕竟也挺基础的。最后感觉因为作业做的不是很好,前期确实学的不怎么扎实,助教给分也很严格,应该导致平时分有影响,所以最后总评一般般吧。不过这门课确实收获很大,毕竟有限元的效率其实比有限差分好多了。
这门课虽然有点硬,感觉算计算数学最硬的一门专业课吧,但收获是很大的,徐老师讲的也很好,如果明年有限元是夏老师上,可能还会再修一次体验一下不同感觉。不过确实觉得,助教给作业分好严格,也可能是我菜吧,还好大四不太在意总评了。想起来徐老师说虽然这门课硬,但一个班八九十个人可能真正最后做有限元的也不到十个吧,不过idea这种东西还是很重要的,希望大家都能在这门课上有所收获。
PS:没有给十分是因为助教给分好严格,让我怀疑人生了很久,在想自己到底是不是不适合学这种偏分析的课,精神损失扣一分。
221011:
晚上补前几天的网课,突然想搞个点评了。
上学期上了徐老师的数值分析课,老师是个很和善的人,期末查卷的时候给我找回两分,最后也给我绩点正好往上捞了一档。但是数值分析的课确实没好好听,有点对不起老师。
这学期是她继续上有限元方法的课,从第一节课就开始说这课会比较硬核,不太好水,讲到现在感觉也还好,还是我能跟上的程度,但是显然比数值分析要更认真听了,再加上没有ppt,可能不做笔记就没办法知道老师在讲什么了。不过作业还是比较友好的,量不大,难度也不算高,就是编程作业有可能会做到脑淤血(
讲的还是比较有条理的,板书抄下来可以作为笔记,借用在某群里水群的时候看到群友的一句话:这课讲的“很数学”。与之对比,大三里上的很多课其实都没这么“数学”,我觉得我这种已经预定润信院的学生,大四还能上一门比较硬核的课,对这种强大的计算方法可以有比较全面的了解,也算是一种幸运吧。
顺便提一下,这课应该相当重要。。。。我听说似乎有不少研究生师兄或者跟我同级的同学(不是数院的)被导师要求来上这门课。这种情况下,这课能开的硬核一点就更良心了。
先给八分,预定一下期末之后的九分或者十分。
230303:
出分了,勉强捞了个85的优秀,给老师磕个头咚咚咚,分数直接改成10分。
再讲一下期末题目的安排,期末考的很水(虽然我还是很多题不会),不知道是不是和开学考有关:
一共六道大题,前五道15分最后一道25分。
1,判断某一函数是否在H1空间,实际上是让你判断一个函数的弱导数存不存在,是课本例题,很容易但我忘了;
2,证明某一函数是另一函数的弱导数,没的说,也很容易;
3,误差分析,在L2空间和W11空间(似乎是?我可能记不太清楚了)判断插值误差与单元大小的关系,我怀疑这道题应该用Poincare不等式做,但我实分析和微分方程2学的太差了,还是不会做;
4,手撕矩形单元的二元二次插值的基函数,并证明唯一可解性和整体连续性,这就是课上讲的例题,就算忘了,手推也很容易;
5,证明变分问题解的存在唯一性,要用Lax-Milgram定理,最后结果实际上是不满足定理条件,从而解不是存在唯一的(吐个槽,L-M定理是充分条件吧?就算不满足也不能说明不存在唯一啊。。。)
6.手撕一个一维微分方程,从转化变分问题到构造有限元空间到误差分析,一共四问,把这门课的实际应用场景基本上包圆了,我最后时间不够,只做了前两问,然后还有个坑,就是那个有限元空间说是任意选择,实际上不能选一次的,至少得是二次的。
试题基本就这样,仔细复习一定都是很基础的知识点,预祝下一届的同学能够在这门课上学习愉快,并且取得满意的成绩。
没见过这么离谱的,编程只给用北大天王
讲课和板书都挺清晰的,理解起来没啥难度,给分炒鸡无敌奶,我估计我卷面60多,总评给了93。后面的非协调有限元误差估计好难的哇,不过我以后不做数值解研究就摸过去了,考试也没考这部分。1分扣在我学了一学期还是没学会正确写出变分问题,可能是老师在这点没有仔细讲吧,也可能是我理解能力太差了。