选课类别:计划内与自由选修 | 教学类型:理论课 |
课程类别:本科计划内课程 | 开课单位:数学科学学院 |
课程层次:专业基础 | 学分:3.0 |
《计算方法》课程以科学计算的数值化为主,涉及矩阵特征值、泰勒展开和优化问题,虽有些概念复杂,但实际应用时直接调用现成代码即可。课程中探讨了误差计算、收敛性和插值拟合等问题,为后续优化类课程打下基础。
傅孝明老师调整了教学顺序,使教学内容逻辑更清晰。课程提供详细的PPT和录课资料,数学证明较为简单,只需具备数分和线代基础即可理解。录课覆盖全面,尽管课堂出勤率低,仍维持较高的教学质量。
作业分书面和编程两类。书面作业较简单,计算题可以用计算机辅助,并要求手写上交。编程作业数量慷慨,不需深入代码理解,助教工作繁忙导致改分宽松。
考试偏重于证明,题目涉及泰勒展开和矩阵特征值等。虽然考题比往年稍难,但理解教材证明即可取得不错成绩。需集中复习数学证明思路,重点把握简单固定的思路。
课程给分适中,有机会获得满绩。根据反馈,期末成绩与作业成绩结合较为合理,总体评价积极。注意:学长称老师甚少给4.3。
这门课应该是从今年开始同步高新,所以可以参考另一个地方()
课程:这门课实在不知道有什么用,更多像矩阵特征值跟泰勒展开的应用,可能超出以往知识的只有扩充教程的最优化部分,这个可以认真学一下,虽然讲的不多。
教学:相比教材,老师调整了一下教学顺序,我认为这个顺序比教材更合理一些,不过也不可避免少了小部分内容,比如微分的外推算法,不过也不用太在意,最终考试都是考泰勒展开。我是考前三四天看的录课,ppt很详细,每个东西他在黑板上也都有证明,好评,复习的时候很有用。数学证明比较多,春季课部分计科同学一直抵触这个,不过作为伪物批还是可以接受,一者证明不算困难,有些数分线代基础就可以很快理解,需要注意的是证明思路(一定要记住,简单而且固定),二者证明虽然是数分线代的题目,但已经是这门课为数不多的有用的东西了,毕竟教的算法搜一下就有现成代码,又或者直接有封装好的函数。
老师:看录课才知道近百人的班每次只去十几个人,不过老师还是顶住压力一直不点名(似乎只有第一节课点了?忘记了),利好我这种一节课不去的懒狗,好评。
作业:书面作业一直持续到期末,每次只有两三道简单计算题,建议直接用计算机算迭代题目,因为手算也对考试没用,老师不让交电子版,可以拍照上交,即必须手写。由于助教临近毕业,很多时候周二的作业周一晚上才发公告,不过可以理解。编程作业还是原来的七道,不算困难,做的时候现场看书都能码出来,不用研读课本代码,因为考试真不考代码,仍然是助教比较忙的原因,后期基本结果差不多就给A+,时间很充裕。
考试:看往年题改成了证明方法,一定要熟悉教材的所有证明,不困难,理解起来很容易的,哪怕你平时一点课没听,花一天时间给它期末也至少有四五十分了,基本就是矩阵特征值跟泰勒展开,扩充教程的只需要熟悉一下方法就好了。总之,你只管记证明思路,剩下的交给数学。今年感觉考试比往年困难,计算量显著提高!倒数第二题估计是四阶泰勒带隐函数展开,最后一题题目都给整死了,但没有什么办法,这玩意平时训练不了,只好拿稳简单的。
给分:据学长说老师不给4.3,我期末79排第四,作业分基本满的给了92,不知道前面几位给没给,估计是没给,其他分数不太清楚,不过总归还是可以的。
今年考试题目回忆版(有一道单纯形法没写,第一问求一组可行基,第二问填一张单纯形表):24春计算方法期末回忆版.pdf
我自己整理的主要内容:计算方法简要.pdf
宣一下计算方法自救群:558758353
本人接触过一些简单的优化问题,故对这门课相当有好感。
上课、考试和作业方面,前人之述备矣。给分方面,卷面分布图与23秋类似,大概给了2到3个满绩,别的不知道。
下面从个人角度谈一下对本课程的看法。
这门课名为”计算方法“,相比我们常说的”算法“,它更偏向于科学计算的数值化。在数分与线代的学习中,我们碰到积分会求原函数,碰到微分会求导数,碰到方程(线性、非线性、微/积分)会尝试直接求解。但是,我们有时会碰到难以求出显式解的情况。幸运的是,在实际应用中,我们往往只关注解的具体数值而非显式表达式。为了更高效地取得一个最优或较优的数值解,我们可以采用一些简单的计算公式来近似精确解,这样就不必花费大量精力去试图求解复杂问题的显示解,大大减少了计算成本。个人认为,本课程介绍的方法基础而实用,实际运用中(如python和matlab)调库求解即可,本课程的学习更多在于对底层算法原理与实现的了解。
为了评估某种数值方法的优劣,我们就需要考虑近似解与精确解的误差。计算量(或迭代次数)相同的条件下,误差越小,那么我们可以认为该方法的性能越好。在本课程中,误差的计算和缩小是一大重点。课程中介绍了各类公式的截断误差、积分公式的代数精度等等,我们可以根据需求选取满足自己所需精度的公式。
对于方程迭代问题,除了误差估计,我们还需要评估方法的稳定性(迭代是否收敛?收敛速度如何?)。本课程介绍了方程迭代收敛的阶和线性方程组迭代收敛的判别方法(迭代矩阵的谱半径<1)。对于方程的迭代,可参考数分中序列收敛性的判别法。收敛的阶可理解为迭代收敛的速度。除了单步迭代方法(如Newton法,感觉像Markov链),建议了解一些多步方法(如弦截法)误差和收敛阶的计算(问就是考到了但我不会)。
对于插值和拟合问题,个人认为二者都是把离散的函数点连续化的方法。书上介绍的插值方法要求插值点函数值(和某些导数值)相等,以尽可能让插值函数贴近原函数。对于Runge现象(大幅偏离原函数),可以采用分段插值来缓解。拟合不要求函数必须过数据点,只需要找到令目标误差最小的拟合函数即可(实际上是一个最优化问题)。个人感觉插值更偏向于内点值的估计,拟合更偏向于泛化与预测;插值更多用于数据的预处理(如对缺失数据的填充),拟合常见于机器学习方法。
补充材料的阅读难度明显高于另一本教材(反正我只记了方法)。个人认为函数逼近也是一种拟合,所以补充材料的主题可以归纳为”最优化“。优化问题中最基础的问题就是线性规划。顾名思义,线性规划的约束条件全为线性,很多实际问题都是它的变种,线性方程的优良性质使其能高效地求得最优解(若存在)。对于非线性优化问题,问题类型和求解方法多种多样。个人认为,要求解优化问题,首先要研究其约束。优化问题根据约束类型的不同可分为线性规划、整数规划、网络规划等等,约束条件是对搜索范围和搜索目标的限定。第十章介绍了多种基本的搜索方法,对搜索方法的合理运用可以让你更高效地在广阔的搜索空间内找到最优解。
总之,这门课相当于对优化类课程的垫脚石。如果你想进一步研究优化问题,可以学习运筹学、凸优化、机器学习、智能优化等课程。我对优化问题也只是了解一些皮毛,但从实用主义的角度来看,很多问题寻找最优解是十分费时费力的。你需要考虑如何满足约束、如何避免陷入局部最优、如何缩减搜索范围和搜索时间、如何确定解的最优性...个人认为,很多复杂的优化问题没有必要追求那唯一的最优解,省出一些精力选择一个较优解也未尝不可。当然,这种想法也可以用到生活上:有时候不必对自己要求太高,不妨静下心来感受生活。
祝大家学得开心!