本节主讲教师:易年余,博士,湘潭大学数学与计算科学学院教授。主要讲授《数值计算方法》、《偏微分方程数值方法》、《自适应有限元方法》等课程,主要从事有限元高精度理论与自适应方法研究。本节课程内容:本小节主要内容为误差传播,北太天元应用实例之积分的计算和北太天元应用实例之Gram-Schmidt正交化。
本节主讲教师:易年余,博士,湘潭大学数学与计算科学学院教授。主要讲授《数值计算方法》、《偏微分方程数值方法》、《自适应有限元方法》等课程,主要从事有限元高精度理论与自适应方法研究。本节课程内容:本小节主要通过北太天元的操作实例来展示误差的基本概念,包括误差定义及种类,以及在计算机上执行运算时浮点数的舍入运算等。
本节主讲教师:易年余,博士,湘潭大学数学与计算科学学院教授。主要讲授《数值计算方法》、《偏微分方程数值方法》、《自适应有限元方法》等课程,主要从事有限元高精度理论与自适应方法研究。本节课程内容:本小节主要介绍北太天元微课程的编程实践环境,包含北太天元简介、算法实现过程中主要用到的命令或功能等,并以二分法求根为例展示算法编程的实现过程。
点击链接查看:英才计划与中学生培养(一):卡脖子形势下,人才培养方向何在?英才计划与中学生培养(二): 研发国产软件,培养学生建模能力本文为北京大学重庆大数据研究院基础软件科学研究中心执行主任、北太振寰创始人卢朓副教授在中国科协组织的中学生创新人才培养论坛上的分享。使用国产科学计算软件,为更多中学生插上探索的翅膀 参与“英才计划”的学生会愿意使用一个新的软件吗?我心里也在打鼓。 可是,当我把开发具有自主知识产权的数值计算通用软件的意义向学生讲了之后,他们都非常支持,这令我非常感动。数值计算通用软件的开发离不开用户的试用和反馈,我指导的几位学生属于最早一批的软件测试者。他们的反馈对软件的开发和完善帮助很大,为国产科学计算软件的成功研发作出了贡献。 开发国产数值计算通用软件是在攻克“卡脖子”问题,是在践行总书记的号召,是重走“把核心技术牢牢掌握在自己手里”的长征。路险且阻,鲜有掌声,“英才计划”学生们的支持和贡献弥足珍贵,谢谢他们! 实际上,学生的上手速度还是很快的,在我介绍使用数值计算通用软件编程的基本知识,如程序的三大基本结构(顺序、循环、分支)之后,学生通过自学很快就学会了编制脚本代码来实现一些算法。 如图中所示,于铭轲同学编制的牛顿法求解一元函数的根的脚本代码,对一些实系数的一元五次多项式求根问题成功求得了数值解。 我自己也应用国产科学计算软件在北大上了一门面向全校本科生的公共课:《数值方法:原理、算法及应用》。 目前我准备的讲解视频除了涉及插值、数值积分、FFT之外,还包含了模拟退火、遗传算法、线性规划、整数规划、RSA加密、随机共轭梯度法、Dijkstra算法、Floyd算法、另外还包含了一些机器学习算法,如 K均值聚类,K近邻,支持向量机,朴素贝叶斯,决策树,关联规则挖掘,pagerank,期望最大化,主成分分析等。扫码进入个人主页查看相关视频 这些算法也有适合中学生的,比如说中学生的课本上都出现过的线性规划问题、非线性方程求解,还有插值与函数拟合的问题。我觉得学生可以弄明白这一类的建模方法,并使用国产科学计算软件来求解,这将使得学生获得极大的成就感。“高中+高校+企业”,三方合作促进更多学生成才 最后,关于中学生人才培养我有两个不成熟的建议:1. 让更多感兴趣的学生参与类似“英才计划”这样的项目,2. 让企业、高中、高校三方结合起来。 高中阶段是属于基础教育范畴,要为人的成长发展奠定基础。但目前很多学生在高中还是很迷茫的。“学习数学、物理有什么用呢?”很多学生往往回答不出来,或者只能回答“为了考大学”。 而“英才计划”等类似的活动,可以让更多学生熟悉科研的全过程,激发学生自主学习的欲望,帮助学生找到自己真正热爱的方向,也就更充分地发挥了教育的发现、唤醒和激励作用。 目前“英才计划”把高中和高校连接起来,确实起到良好的效果。那如果把高中、高校和企业三方连接起来呢? 这样一来,能让学生了解职场工作环境,同时培养职业技能,建立职业人脉,让学生认清自己的能力和爱好,将来在进入大学能够更好地选择合适的专业。 在美国,不少高中的学生已经接触了编程,高中和企业进行了紧密合作,为每位参与的学生安排实习机会。他山之石,可以攻玉。企业和高中的合作项目能够引导学生了解计算机技术和算法,去了解算法背后的数学原理,去了解这些算法的应用以及给生活带来的便利。家庭贫困的学生还能通过这些活动获得一定的报酬。短期内,企业虽然没有获得太多的收益,但长远来看,为企业的未来培养了高素质的人才,更为社会和国家的发展作出了贡献。 对于爱好广泛、喜欢交流的同学而言,还可以了解到应用工程师不仅仅是坐在办公桌前写代码,还会和客户交流需求,帮助客户认清他们真正的需求,还需要和同事交流协作,还需要为企业的产品的功能编写通俗易懂、生动有趣的介绍。这些工作都充满了与人交流的乐趣。 当学生看到自己的编程技能同样能为企业所用,他们一定会感到非常振奋。例如在图像识别方面的很多算法,可以被应用在自动驾驶汽车和医疗诊断等领域。这些应用带来的好处都是高中学生能够理解的,会让高中学生获得巨大的成就感和价值感。 在此,真诚地希望更多的学生能够获得更多的成长机会,成长为我国科技和经济发展需要的优秀人才! (全文完)
感觉你们这随机数生成还有点问题呀,搞个hist(randn(200000,1),200)出的图中间有个奇怪的峰,不敢拿来做随机试验了。
1 ode45函数的原理该求解器有变步长和定步长两种类型。不同类型有着不同的求解器,其中ode45求解器属于变步长的一种,采用Runge-Kutta算法。ode45表示采用四阶-五阶Runge-Kutta算法,它用4阶方法提供候选解,5阶方法控制误差,是一种自适应步长(变步长)的常微分方程数值解法,其整体截断误差为(Δx)^5。解决的是非刚性常微分方程。ode45是解决数值解问题的首选方法,若长时间没结果,应该就是刚性的,可换用ode15s试试。2 经典四阶Runge-Kutta介绍在各种龙格-库塔法当中有一个方法十分常用,以至于经常被称为“RK4”或者就是“龙格-库塔法”。该方法主要是在已知方程导数和初值信息,利用计算机仿真时应用,省去求解微分方程的复杂过程。令初值问题表述如下。y' =f(t,y),y(t0)=y0 则,对于该问题的RK4由如下方程给出: y(n+1)=y(n)+h/6*(k1+2*k2+2*k3+k4)其中k1=f(t(n),y(n))k2=f(t(n)+h/2,y(n)+h/2*k1)k3=f(t(n)+h/2,y(n)+h/2*k2)k4=f(t(n)+h,y(n)+h*k3)这样,下一个值(yn+1)由现在的值(yn)加上时间间隔(h)和一个估算的斜率的乘积所决定。该斜率是以下斜率的加权平均:k1是时间段开始时的斜率;k2是时间段中点的斜率,通过欧拉法采用斜率k1来决定y在点tn+h/2的值;k3也是中点的斜率,但是这次采用斜率k2决定y值;k4是时间段终点的斜率,其y值用k3决定。当四个斜率取平均时,中点的斜率有更大的权值: RK4法是四阶方法,也就是说每步的误差是h阶,而总积累误差为h阶。3 ode45函数求解常微分方程举例求解微分方程d²y/dt²- 7(1-y²)dy/dt + y = 0在初始条件下y(0) = 1、y’(0) = 0下的解,并画出解的图。解:设x1 = y,x2 = dy/dt,将二阶方程化成一阶方程组 dx1 = x2 x1(0) = 1; dx1/dt = 7(1-x1²)*x2-x1 x2(0) = 0; 在北太天元脚本编辑器窗口输入以下程序,并保存文件名为vdp.m。function fy = vdp(t,x)fy = [x(2);7*(1-x(1)^2)*x(2)-x(1)]; 在北太天元命令行窗口输入以下程序。 >> y0 = [1;0];>> [t,x] = ode45(@vdp,[0 40],y0);>> y = x(:,1);>> plot(t,y)>> xlabel('t')>> ylabel('y') 输出结果如下图所示:
一、 最小二乘原理介绍最小二乘法是一种常见的数学方法,用于解决线性回归问题。它可以用来估计因变量(目标变量)与自变量之间的线性关系,即通过已知的一组数据来确定未知的回归方程。具体来说,最小二乘法的目标是找到一条直线(或者更一般的曲线),使得这条直线与已知数据点的距离平方和最小。这条直线的方程称为回归方程,可以用来预测因变量的值。最小二乘法的原理是通过最小化误差平方和来确定回归方程的系数。误差指的是已知数据点到回归直线的距离,也就是因变量的真实值与预测值之间的差异。通过最小化误差平方和,可以找到最优的回归系数,使得预测值与真实值之间的误差最小。在实际应用中,最小二乘法常常用于数据拟合和预测。例如,在金融领域,最小二乘法可以用来预测股票价格和交易量;在工程领域,最小二乘法可以用来拟合实验数据和优化设计参数。在计算中,最小二乘法可以通过矩阵运算来求解。具体来说,可以使用线性代数中的矩阵求解方法,例如求解矩阵的逆或者使用QR分解。在北太天元中,可以使用polyfit函数来实现最小二乘法求解线性回归问题。二、 根据最小二乘原理进行多项式拟合原始数据点为,根据最小二乘法进行多项式拟合:(1) 设拟合多项式为 (2) 各点到这条曲线的距离之和,即误差平方和为: (3) 根据最小二乘原理,等式右边求ai偏导数: (4) 化简得: (5) 化成矩阵形式: (6) 化简得 (7) 求解上述方程组,即可得到系数矩阵,从而得到拟合多项式。三、 基于北太天元实现最小二乘法,并对比拟合结果与polyfit结果 附录代码:
clear all close all clc N=10;%多项式阶数 %原始数据点 X=10:0.05:15; M=length(X); p=[5.6,2.5,3.3,0.18,0.29,2.4,4.8,1.2,7.1,1]; Y=zeros(1,M); for i=1:10 Y=Y+p(i)*X.^(i-1); end % Y=Y+unifrnd(-2e9,2e9,1,M); %多项式拟合 X1=zeros(N+1,M); for i=1:M X1(1,i)=1; end for i=2:N+1 X1(i,:)=power(X,i-1); %构造系数矩阵 end XX=X1'; P_n=(XX'*XX)\XX'*Y'; X_n=min(X):max(X); Y_n=zeros(1,length(X_n)); for i=1:N+1 Y_n=Y_n+P_n(i)*X_n.^(i-1); end %polyfit P=zeros(1,N); P=polyfit(X,Y,N); X_polyfit=zeros(1,M); Y_polyfit=zeros(1,M); X_polyfit=linspace(min(X),max(X),M); Y_polyfit=polyval(P,X_polyfit); figure(1); plot(X,Y,'.'); hold on plot(X_n,Y_n,'g'); hold on plot(X_polyfit,Y_polyfit,'r'); legend('原始数据点','多项式拟合','polyfit','Location','northwest');
点击链接查看:英才计划与中学生培养(一):卡脖子形势下,人才培养方向何在?本文为北京大学重庆大数据研究院基础软件科学研究中心执行主任、北太振寰创始人卢朓副教授在中国科协组织的中学生创新人才培养论坛上的分享。前文观点 计算是求解数学模型的手段。可是对于中学生来说,很多算法的实现并非易事,因此可选择的可以求解的数学模型就很少了。例如,求函数的最大值的问题,往往只能对二次函数,三角函数来求解,稍微复杂的函数就不会了。使用数值计算通用软件,消除中学生求解难的疑虑 其实,很多数学模型对中学生来说还是比较容易掌握的。为了让学生建模的时候可以选择更多的模型,我建议学生使用数值计算通用软件来消除求解难的顾虑。 借助数值计算通用软件,更有利于培养同学们的数学建模能力,我举几个例子: 第一个例子是线性规划、二次规划和整数规划之类的模型。实际上,中学生已经接触过这样的问题了,但是往往局限在很小的数值范畴内。这种模型的威力并未得到充分展现。 中学生如果使用数值计算通用软件来求解此类问题,那么就可以把更多精力放在体会这种数学模型的特点上。 我在B站上给出了一个视频,展示了如何使用数值计算通用软件求解整数规划问题,我相信感兴趣的中学生可以很快学会使用计算机求解整数规划问题的方式。 第二个例子与使用常微分方程的初值问题建模有关,这个可以和物理学科结合起来。我们可以通过测量物体在不同时刻的位移,把数据画出来,借助于常微分方程给出物理运动规律,这样就是在重走牛顿当年的发现之路。至于常微分方程初值问题的求解则可以借助数值计算通用软件来完成。 第三个例子是关于机器学习和人工智能的算法。 我在B站上给出了如何使用数值计算通用软件读取Excel数据,然后如何使用朴素贝叶斯来判断西瓜好坏的例子,也可以供中学生学习。 总之,我建议中学生借助数值计算通用软件来了解读取数据、数学建模、数值计算以及计算结果的可视化等环节,然后选取自己感兴趣的部分多下功夫,其它环节则可以通过数值计算通用软件具有的内置函数以及插件来完成。 参加“英才计划”的学生不一定都要找现实中的问题来做数学建模,还可以通过阅读文献来学习。如果对数学或者其他学科的某些定理和知识点感兴趣,可以通过数值计算通用软件来验证,加深对这些定理的理解。 这样的计算不能代替证明,但是帮助大家体会这个知识点的含义。 通过“英才计划”,我希望学生在多个方面有所收获,如: 1.提升搜集、理解、组织数据的技能,数学建模能力,团队协作能力以及论文写作能力; 2.培养定量研究发展变化规律的习惯,培养好奇心、想象力、创造力和表达力; 3.了解计算机算法和原理、数值计算通用软件的基本用法,对数学知识的用途有更深的认识等。从数值计算通用软件的推荐谈开去:“被禁”以后,我们该做些什么? 科学计算已经成为与理论和实验并列的科学研究的基本手段。科学计算软件可以分成两种类型:专用型和通用型。 通用型科学计算软件是开发工业软件的重要基础性工具,长期以来,这一部分的市场由国外公司垄断。通用型数值计算软件就好像连接各个工厂的高速公路一样,是数值计算软件中的基础设施。有了高速公路的连接,工厂的原材料才能运进来,生产的产品才能更方便地送到用户手里。 在向参加“英才计划”的学生推荐数值计算通用软件时,我最初考虑的是MATLAB。但由于这是一款商业软件,我担心购买软件会给学生带来额外的经济负担,所以并未选择。 2020年,美国商务部宣布新增33 家中国公司及机构列入 “实体清单”,中国大陆共有 13 所高校被列入该清单,分别为哈尔滨工业大学、哈尔滨工程大学、中国人民大学、北京航空航天大学、西安交通大学、西北工业大学、四川大学、电子科技大学、湖南大学、国防科技大学、同济大学、南昌大学、广东工业大学。MATLAB 所属公司 MathWorks 中止了对以上高校的正版授权。 这让我为当初自己的选择感到庆幸,也让很多人意识到通用型数值计算软件是一个“卡脖子”技术,没有这个技术,我们自己开发的专用软件或者算法就无法得到广泛的应用。但当时我仍想着:好在,我们还有Python可以使用。 可在俄罗斯-乌克兰战争爆发后,据相关报道显示“目前已经有多达30个开源项目加入了对俄罗斯的抵制,其中甚至包括亚马逊(AWS Terraform modules)和Oracle等科技巨头的项目,也不乏MongoDB、pnpm、es5-ext、Drupal、Redis Desktop Manager等流行项目”。这让我进一步认识到:这类开源软件的主导权如果是掌握在别人的手里,仍然蕴藏着危险。 事实上,中国的基础数学和理论数学研究在国际上还是处于领先地位。在涉及具体的算法或专用型数值计算软件领域,我们中国的科学家也取得了很好的成绩,在有关算法的顶级杂志上,中国人发表论文的数量和质量都位于前列,有很多算法被国外的通用型数值计算软件集成,得到了广泛的应用。 但是我们缺乏像MATLAB这样的数值计算通用软件。这是为什么呢? 因为,通用型的数值计算软件的开发需要耗费大量的时间,需要投入大量的人力物力,无法在短期内做出高精尖的成果。研发过程中需要有关键的技术基础,要掌握核心关键的规律、知识和方法,这些都只能通过“学中干”和“干中学”相结合才能获得。 工业软件可以说是现代产业体系之魂。目前,欧美的工业软件几乎已经渗透了所有工业领域的核心环节。发展具有自主知识产权的工业软件刻不容缓,对掌握我国产业发展的主导权,增强工业体系的韧性和抗打击性都非常重要。 而通用型数值计算软件的研发意义尤为重大:它不仅自己就是一个工业软件,还能够成为其他工业软件的底座,防止国产工业软件被釜底抽薪;同时,数值计算通用软件也是一个非常好的创新平台;正如前文所述,此类软件对于人才培养也至关重要。 通用型数值计算软件的成功研发,将是对人类文明的贡献,也是国家软实力的标志之一。因此,虽然困难重重,我和其他志同道合的伙伴们还是决心开发具有自主知识产权的通用型数值计算软件,破解“卡脖子”问题。 (未完待续)作者简介
为切实促进高校优质科技教育资源开发开放,建立高校与中学联合发现和培养青少年科技创新人才的有效方式,中国科协和教育部自2013年开始共同组织实施中学生科技创新后备人才培养计划(简称“英才计划”)。目前,共有15个省市、20所高校等参与培养工作。 在中国数学会2022年学术年会中,中国数学会与英才计划全国管理办公室设置了中学生创新人才培养论坛。参加论坛人员包括英才计划数学学科工作委员会专家,部分“英才计划”高校导师、中学教师、数学学科学生等。 北京大学重庆大数据研究院基础软件科学研究中心执行主任、北太振寰创始人卢朓副教授收到中国科协的邀请参加论坛,分享中学生基础学科科技创新后备人才的培养经验与体会。他说他感到非常荣幸。刘东升、陈姝羽等学生取得一系列的成绩,这主要还是他们自己努力的结果。他为他们感到高兴和自豪。 卢朓副教授参与了四年的“英才计划”项目,教学相长,对中学生人才的培养工作有了更深的认识,以下是卢朓副教授在论坛上的汇报。“德、才、学、识”,以德为先 结合我自己的科研方向,一方面,我希望能够在“德、才、学、识”四个方面提高学生的综合素质。 王梓坤院士的《科学发现纵横谈》是一本很好的科普书,每年我都会推荐给学生。王梓坤院士把治学成才之道归纳成十个字——“理想、勤奋、毅力、方法、机遇”。 “德、才、学、识”是对科学工作者的素质的基本要求。德,主要是指政治立场和态度, 指追求真理、热爱真理、严于律己,力求人品高尚。“德、才、学、识”四者不可或缺,而“德”居其首。“才”、“学”、“识”受“德”的制约。 我在对学生的培养过程中,把“德”放在首位,让学生了解科技发展的现状以及“卡脖子”问题,让学生立大志,把自己的成长与国家的需要紧密地结合起来。 柴静记者对丁仲礼院士的访谈是一段很好的科普节目。在访谈过程中,丁仲礼院士向大家说明,地球平均气温升高2度会导致多少多少物种灭绝是英国的一家科研小组用计算机模拟出来的,并不一定可信。 柴静接着说“我们几乎是信仰实验室的所有…”。 可以看到柴静从相信科学已经变成了迷信科学了,实际上科学结论是可以证伪的,并非意味着绝对真理。柴静又进一步说“ ... 得到了主流科学界的认同” 。这说明柴静是迷信西方的科学家权威。 丁仲礼院士说:“科学家有主流吗,真理的标准是根据人多人少定的吗?”接着,柴静又说“作为一个科学家不应该从国家利益出发,而应该从整个人类的共同利益出发”。这说明柴静是把西方的利益看成了整个人类的共同利益。 实际上,我们如果没有维护占到全球总人数1/5的中国人的利益,就不能说我们维护了全人类的共同利益。在培养学生的过程中,我会建议学生看看这段访谈,告诉他们不要迷信科学、不要迷信权威。 西方国家在科技等各个方面卡我们的脖子,破坏全球公平竞争的环境,其目的只是为了他们自己的利益。如果真如他们所愿,我们完全失去了竞争力,最终也会导致他们失去继续努力奋斗的动力,进而影响全人类的科技发展。 我们期待的是全人类的团结协作,共同推动科技等各个方面的发展。目前惧怕公平竞争的不是我们,我们没有选择,只能自力更生努力奋斗,争取把核心技术掌握在自己的手里,这样才能使西方看到封锁无效之后,放弃他们使绊子的行动,才能够迎来全人类团结起来为共同利益而努力奋斗的美好局面。 培养创新型人才,数学建模至关重要 另一方面,我希望能够培养学生的数学建模、数据分析和数值实验的能力。 (1)应用数学的价值观的三个方面:理论、交叉和落地 对学生的培养主要还是看学生的兴趣,因材施教;另外也结合我自己的专业特点——应用数学方向。早期的数学并没有区分基础数学和应用数学,后来研究方向开始逐步细化,可以分成基础数学和应用数学:基础数学包括代数,几何和分析;应用数学包含概率统计、运筹优化、计算数学、控制论等。 应用数学的价值观和基础数学不一样,它具有多元化的价值观。在张平文院士的《数据科学融通应用数学》的报告中给出了三个方面:首先,应用数学和基础数学一样,也是数学的一部分,也追求简洁与美,我们称之为理论;第二,应用数学和化学、材料等学科交叉,此时应用数学追求的价值观和所交叉的学科的价值观一致;第三,应用数学还有很重要的一个价值观是“落地”,即经济与社会价值。这部分也是非常重要的。 现在全世界哪个公司最重要、最厉害?谷歌显然算得其中之一。谷歌起源于PageRank算法。 扫码查看Page Rank 算法简介视频我在B站给出的PageRank算法的一个简介,有兴趣的中学生也是能看得懂的。作为谷歌公司的PageRank算法从数学的眼光来说,它不属于原创,从逻辑角度来说却是原创的,即追求经济与社会价值。 (2)应用数学的精髓是模型和计算:数学建模的重要性 应用数学的精髓是模型和计算。 1998年菲尔兹奖得主、英国数学家高尔斯(T.Gowers)认为:数学研究的对象并非真正的现实世界本身,而只是现实世界的数学模型,也就是现实世界的一种虚构和简化的版本。 李大潜院士指出:“传统的数学教育往往从基本的概念或定义出发,以简练的方式合乎逻辑地推演出所要求的结论。这固然可以使学生在较短时间内按部就班地学到尽可能多的内容,并体会到一种丝丝入扣、天衣无缝的美感。但是,过分强调这一点,就可能使学生误以为数学这样的完美无缺、无懈可击是与生俱来、天经地义的,反而使思想处于一种僵化状态,在生动活泼的现实世界面前手足无措、一筹莫展,甚至使学生感到学了很多据说非常重要、十分有用的数学知识以后,却不会应用或无法应用,甚至还觉得毫无用处。" 数学模型是数学与应用的一个桥梁。李大潜院士还指出“通过数学建模将一个看来与数学无关的现实问题归结为一个合理的数学问题,并利用数学方法成功地予以解决,这是重要的能力与素质。这种能力和素质的培养与提高,对一个合格的数学工作者、特别是应用数学工作者来说,无疑是十分值得重视、应该着重加以培养的。数学建模对培养创新型人才非常重要。” 现在国家已经把数学建模的实践与活动列入全国高级中学的教学计划。(未完待续)
常微分方程在很多学科领域内都有着重要的应用, 如自动控制, 动力系统等. 常微分方程的定解问题一般包含初值问题, 两点边值问题与特征值问题.下面我们主要讨论初值问题. 常微分方程的求解方法可以分成两大类: 第一类是经典解析法,即采用常见的微积分技巧, 例如分离变量法等; 例如: 求解初值问题