一文高效回顾研究生课程《数值分析》重点

数值分析这门课的本质就是用离散的已知点去估计整体,就是由黑盒子产生的结果去估计这个黑盒子。在数学里这个黑盒子就是一个函数嘛,这门课会介绍许多方法去利用离散点最大化地逼近这个函数,甚至它的导数、积分,甚至微分方程的解。
衡量的标准当然就是估计值与真实值的误差,所以这门课里误差的计算很重要,交给matlab就行了。
下面讲到的知识点都是承上启下串联在一起的,可顺滑食用
 

泰勒展开

泰勒公式真的是学哪个数学分支都逃不掉,必须掌握的基础!在这门课很多公式都由泰勒公式推出!但它并不是数值分析关注的重点。

拉格朗日插值

这是数值分析中最简单也是最重要的知识点,因为泰勒展开只关注于一点,如果从黑盒子中出来几个数据,而我们只能利用一点去估计整体,想想都不对劲,实际上也是如此,误差会非常大。这就引出了拉格朗日插值,n阶的估计就会用到n+1个点。比如: P 1 ( x ) = x − x 1 x 0 − x 1 f ( x 0 ) + x − x 0 x 1 − x 0 f ( x 1 ) + f ( 2 ) ( ξ ) 2 ! ( x − x 0 ) ( x − x 1 ) P_1(x) = \frac{x-x_1}{x_0-x_1}f(x_0) + \frac{x-x_0}{x_1-x_0}f(x_1) + \frac{f^{(2)}(\xi )}{2!}(x-x_0)(x-x_1) P1(x)=x0x1xx1f(x0)+x1x0xx0f(x1)+2!f(2)(ξ)(xx0)(xx1) 这是一阶的估计,用到了 x 0 x_0 x0, x 1 x_1 x1这俩点,最右边是截断误差。可以发现 P 1 ( x 0 ) = f ( x 0 ) P_1(x_0) = f(x_0) P1(x0)=f(x0), P 1 ( x 1 ) = f ( x 1 ) P_1(x_1) = f(x_1) P1(x1)=f(x1), 在已知点上我们的估计肯定要零误差,然后在其他点它的表现也不错。
同理:
P 2 ( x ) = ( x − x 1 ) ( x − x 2 ) ( x 0 − x 1 ) ( x 0 − x 2 ) f ( x 0 ) + ( x − x 0 ) ( x − x 2 ) ( x 1 − x 0 ) ( x 1 − x 2 ) f ( x 1 ) + ( x − x 0 ) ( x − x 1 ) ( x 2 − x 0 ) ( x 2 − x 1 ) f ( x 2 ) + f ( 3 ) ( ξ ) 3 ! ( x − x 0 ) ( x − x 1 ) ( x − x 2 ) P_2(x) = \frac{(x-x_1)(x-x_2)}{(x_0-x_1)(x_0-x_2)}f(x_0) + \frac{(x-x_0)(x-x_2)}{(x_1-x_0)(x_1-x_2)}f(x_1) + \frac{(x-x_0)(x-x_1)}{(x_2-x_0)(x_2-x_1)}f(x_2)+ \frac{f^{(3)}(\xi )}{3!}(x-x_0)(x-x_1)(x-x_2) P2(x)=(x0x1)(x0x2)(xx1)(xx2)f(x0)+(x1x0)(x1x2)(xx0)(xx2)f(x1)+(x2x0)(x2x1)(xx0)(xx1)f(x2)+3!f(3)(ξ)(xx0)(xx1)(xx2) 这是二阶的估计,别看公式长,掌握了逻辑根本不需要背。

Hermite插值

不止利用已知函数值,还利用了一阶的函数值。

三次样条插值

不是一次就估计出整体了,我们进行分段估计,每个分段我们还用三次的函数进行逼近,所以我们在前面的基础上还利用了二阶的函数值,效果可以说非常的布戳。

微分

前面是利用点估计函数值,现在是利用点估计函数的微分值,一次二次都可由,没错,就是一个公式然后把已知的点都代进去就能估计黑盒子在未知点的值,而且误差很小。
公式可以由泰勒公式推出,也可以由拉格朗日插值去推出(列出拉格朗日插值一般式然后求导,再代值)。
重要的有三点公式五点公式二阶的公式。公式你们书上都有,这就不列了。

理查森外推

这是很重要的一个知识,通过变化已知公式的形式再运算,可消去低阶的部分,得到高阶的误差。一般是 h → h 2 h\to \frac{h}{2} h2h, 得到新式子,然后与原式两个搞一搞就可以消去低阶。

积分

搞完微分不搞积分说不过去,利用已知点推出函数的积分值,公式可以由拉格朗日函数推出。
重点的公式有梯形法则辛普森法则中点法则,不同公式的误差阶数不一样哦。

复合积分

与三次样条插值一样的思路,对于 ∫ 0 4 \int_{0}^{4} 04这样的大区间,直接一步到位估计出来误差会很大,现在分段来搞它, ∫ 0 4 = ∫ 0 1 + ∫ 1 2 + ∫ 2 3 + ∫ 3 4 \int_{0}^{4} = \int_{0}^{1}+\int_{1}^{2}+\int_{2}^{3}+\int_{3}^{4} 04=01+12+23+34 比如上面就分类四段,每一段我们都单独用一次梯形法则 或 辛普森法则 或 中点法则,就叫复合梯形法则复合辛普森法则复合中点法则

高斯积分

上面的已知点都是以一定步长h来选择的,即 x 1 = x 0 + h x_1 = x_0 + h x1=x0+h, 高斯求积想要以误差最小为准则选择参考点,参考点之间就没有距离关系了。 ∫ a b f ( x ) d x ≈ ∑ i = 1 n C i f ( x i ) \int_{a}^{b}f(x)dx \approx \sum_{i=1}^{n}C_if(x_i) abf(x)dxi=1nCif(xi) ∫ − 1 1 f ( x ) d x ≈ f ( − 3 3 ) + f ( 3 3 ) \int_{-1}^{1}f(x)dx \approx f(-\frac{\sqrt{3}}{3})+f(\frac{\sqrt{3}}{3}) 11f(x)dxf(33 )+f(33 ) ∫ a b f ( x ) d x = ∫ − 1 1 f ( ( b − a ) t + ( b + a ) 2 ) ( b − a 2 ) d t \int_{a}^{b}f(x)dx =\int_{-1}^{1} f(\frac{(b-a)t+(b+a)}{2})(\frac{b-a}{2})dt abf(x)dx=11f(2(ba)t+(b+a))(2ba)dt 以上公式有点重要且简单我就列出来了。

多重积分

自变量一般都是相互独立的,所以就是用两次积分公式罢了,公式会很长,但本质不变,繁琐了点而已。

带初值的常微分方程(ODE)

现在进入求解微分方程,公式可以由泰勒公式推出,重点有 欧拉法泰勒法龙格库塔法
欧拉法只用了普通的函数值去估计; w i + 1 = w i + h ⋅ f ( t i , w i ) , w o = α w_{i+1} = w_i + h\cdot f(t_i,w_i),\quad w_o =\alpha wi+1=wi+hf(ti,wi),wo=α
泰勒法则会利用高阶的函数值,有时候不太现实,因为毕竟是个黑盒子,可知的信息不会太多; w i + 1 = w i + h ⋅ T ( n ) ( t i , w i ) , w o = α w_{i+1} = w_i + h\cdot T^{(n)}(t_i,w_i),\quad w_o =\alpha wi+1=wi+hT(n)(ti,wi),wo=α
龙格库塔法非常非常重要,因为它想着避开高阶的函数值,就用普通函数值去估计,对于中点法,有 w i + 1 = w i + h ⋅ f ( t i + h 2 , w i + h 2 f ( t i , w i ) ) , w o = α w_{i+1} = w_i + h\cdot f(t_i + \frac{h}{2},w_i +\frac{h}{2}f(t_i,w_i) ),\quad w_o =\alpha wi+1=wi+hf(ti+2h,wi+2hf(ti,wi)),wo=α 还有改进欧拉法, 上面两个方法都属于二阶龙格库塔法, 最经典的就是四阶龙格库塔法,也叫RK4,非常重要! 公式就不列了。
 

多步法

从上面解决微分方程的方法中,我们发现每次迭代运算只用了前面的一点,我们想着能不能每次运算都用上之前的多个点的信息,多步法应运而生。
有多步的显式方法,多步的隐式方法,和预测-校验法。多步法中的初值一般就用RK4来算出

隐式法就是每次迭代运算还需要利用将来的要求的值,显然正常是不可能的,所以要先把隐式化为显示再计算。
预测-校验法:很多式子其实很难化隐为显,所以提出新思路,先用显示算出将来的代求值,这叫预测,再用算出的值带入隐式得出更精确的代求值,这叫校验,很妙。

 

总结

重点就四个部分,插值微分积分ODE

热门文章

暂无图片
编程学习 ·

C语言二分查找详解

二分查找是一种知名度很高的查找算法,在对有序数列进行查找时效率远高于传统的顺序查找。 下面这张动图对比了二者的效率差距。 二分查找的基本思想就是通过把目标数和当前数列的中间数进行比较,从而确定目标数是在中间数的左边还是右边,将查…
暂无图片
编程学习 ·

GMX 命令分类列表

建模和计算操作命令: 1.1 . 创建拓扑与坐标文件 gmx editconf - 编辑模拟盒子以及写入子组(subgroups) gmx protonate - 结构质子化 gmx x2top - 根据坐标生成原始拓扑文件 gmx solvate - 体系溶剂化 gmx insert-molecules - 将分子插入已有空位 gmx genconf - 增加…
暂无图片
编程学习 ·

在职阿里5年,一个28岁女软测工程师的心声

简单的先说一下,坐标杭州,14届本科毕业,算上年前在阿里巴巴的面试,一共有面试了有6家公司(因为不想请假,因此只是每个晚上去其他公司面试,所以面试的公司比较少) ​ 编辑切换为居中…
暂无图片
编程学习 ·

字符串左旋c语言

目录 题目: 解题思路: 第一步: 第二步: 第三步: 总代码: 题目: 实现一个函数,可以左旋字符串中的k个字符。 例如: ABCD左旋一个字符得到BCDA ABCD左旋两个字符…
暂无图片
编程学习 ·

设计模式--观察者模式笔记

模式的定义与特点 观察者(Observer)模式的定义:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式&#xf…
暂无图片
编程学习 ·

睡觉突然身体动不了,什么是睡眠痽痪症

很多朋友可能有这样的体验,睡觉过程中突然意识清醒,身体却动弹不了。这时候感觉非常恐怖,希望旁边有一个人推自己一下。阳光以前也经常会碰到这样的情况,一年有一百多次,那时候很害怕晚上到来,睡觉了就会出…
暂无图片
编程学习 ·

深入理解C++智能指针——浅析MSVC源码

文章目录unique_ptrshared_ptr 与 weak_ptrstd::bad_weak_ptr 异常std::enable_shared_from_thisunique_ptr unique_ptr 是一个只移型别(move-only type,只移型别还有std::mutex等)。 结合一下工厂模式,看看其基本用法&#xff…
暂无图片
编程学习 ·

@TableField(exist = false)

TableField(exist false) //申明此字段不在数据库存在,但代码中需要用到它,通知Mybatis-plus在做写库操作是忽略它。,.
暂无图片
编程学习 ·

Java Web day15

第十二章文件上传和下载 一、如何实现文件上传 要实现Web开发中的文件上传功能,通常需要完成两步操作:一.是在Web页面中添加上传输入项;二是在Servlet中读取上传文件的数据,并保存到本地硬盘中。 需要使用一个Apache组织提供一个…
暂无图片
编程学习 ·

【51nod 2478】【单调栈】【前缀和】小b接水

小b接水题目解题思路Code51nod 2478 小b接水 题目 输入样例 12 0 1 0 2 1 0 1 3 2 1 2 1输出样例 6解题思路 可以发现最后能拦住水的都是向两边递减高度(?) 不管两个高积木之间的的积木是怎样乱七八糟的高度,最后能用来装水的…
暂无图片
编程学习 ·

花了大半天写了一个UVC扩展单元调试工具

基于DIRECTSHOW 实现的,用的是MFC VS2019. 详见:http://www.usbzh.com/article/detail-761.html 获取方法 加QQ群:952873936,然后在群文件\USB调试工具&测试软件\UVCXU-V1.0(UVC扩展单元调试工具-USB中文网官方版).exe USB中文网 USB中文…
暂无图片
编程学习 ·

贪心(一):区间问题、Huffman树

区间问题 例题一:区间选点 给定 N 个闭区间 [ai,bi]请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。 输出选择的点的最小数量。 位于区间端点上的点也算作区间内。 输入格式 第一行包含整数 N,表示区间数。 接下来 …
暂无图片
编程学习 ·

C语言练习实例——费氏数列

目录 题目 解法 输出结果 题目 Fibonacci为1200年代的欧洲数学家,在他的着作中曾经提到:「若有一只免子每个月生一只小免子,一个月后小免子也开始生产。起初只有一只免子,一个月后就有两只免子,二个月后有三只免子…
暂无图片
编程学习 ·

Android开发(2): Android 资源

个人笔记整理 Android 资源 Android中的资源,一般分为两类: 系统内置资源:Android SDK中所提供的已经定义好的资源,用户可以直接拿来使用。 用户自定义资源:用户自己定义或引入的,只适用于当前应用的资源…
暂无图片
编程学习 ·

零基础如何在短时间内拿到算法offer

​算法工程师是利用算法处理事物的职业 算法(Algorithm)是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。 如果一个算法有缺陷,或不适合于某个问题,执…
暂无图片
编程学习 ·

人工智能:知识图谱实战总结

人工智能python,NLP,知识图谱,机器学习,深度学习人工智能:知识图谱实战前言一、实体建模工具Protegepython,NLP,知识图谱,机器学习,深度学习 人工智能:知识图…
暂无图片
编程学习 ·

【无标题】

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…
暂无图片
编程学习 ·

C语言实现扫雷游戏源代码

C语言实现扫雷游戏源代码 头文件 #define _CRT_SECURE_NO_WARNINGS //包含头文件 #include <stdio.h> #include <stdlib.h>//定义数值 #define ROW 9 #define COL 9#define ROWS ROW2 #define COLS COL2//定义雷的数量 #define mine_num 10//函数定义 //初始化 v…