计算机数值方法
用于期末考试突击,旨在快速掌握数值计算方法。
目录
第一章 绪论
1.1克莱姆法则的计算量
用克莱姆法则求解一个n阶线性方程组时,要用n+1个n阶行列式,总共需要(n-1)(n+1)n!次乘法。
如果用消元法求解一个n阶线性方程组需要 次乘法 。
1.2浮点数
定点数
定义:把小数点永远固定在指定位置上位数有限的数称为定点数,称n=l+m为字长。l位整数,m位小数。
尾数与阶数的表示:
s为尾数,p为阶数
如何化成规格化浮点数
小数点后第一位不为0
例:283.4的规格化浮点数为
规格化浮点数系中数的个数
1.3误差
【数值分析学习笔记】——1、数值分析中的误差_截断误差和舍入误差的区别-CSDN博客
1.3.1绝对误差与误差限
1.3.2相对误差与误差限
1.3.3有效数字
反算n位有效数字
1.3.4误差限与有效数字的关系
相对误差是由有效数字决定的
相对误差与有效数字
相对误差限与有效数字
1.3.5四则运算的误差传播
1.3.6函数计算的误差传播
1.4设计算法时应注意的原则
1、要注意简化计算步骤,减少运算次数
2、要避免两相近数相减
转化:如果x1和x2很接近,则lnx1 - lnx2 = ln
习题1.14.
3、防止大数“吃掉”小数
4、要避免除数绝对值远远小于被除数绝对值的除法
也就是相当于被除数乘了个很大的数
5、使用数值稳定的算法
总结
1、
2、
3、
4、
5、
第二章 方程求根
2.1增值寻根法与二分法
求隔根区间的一般方法:
1.画图法
2.增值寻根法
实现代码(草图):
double fun(double num){
return x*x*x+4*x*x+1
}
int main(){
while(h>0.0001){//步长或精度要求
while(true){
if(fun(x)==0){
cout<<"x="<<x<<endl;
h=0;
break;
}else if(fun(x)*fun(x+h)>0){
x=x+h;
continue;
}else if(fun(x)*fun(x+h)<0){
cout<<"x1="<<x<<endl;
cout<<"x2="<<(x+h)<<endl;
break;
}
}
}
return 0;
}
3.二分法
相当于折半查找
2.2迭代法
公式
等价交换时要收敛:根号下根号
迭代法的几何意义
迭代法收敛的条件
q越小,收敛越快
例题:
步骤:化格式,代值计算,舍弃发散,选择收敛速度快的
迭代法的收敛速度
迭代收敛的加速
1、松弛法
2、埃特金法
2.3牛顿法
迭代公式与条件
例题
牛顿法的几何意义
代上图的点
牛顿法的收敛性及收敛速度
牛顿法至少是二阶收敛的,即牛顿法在单根附近至少是二阶收敛的,在重根附近是线性收敛的。
牛顿法收敛很快,而且可求复根,缺点是对重根收敛较慢,要求函数的一阶导数存在。
牛顿二阶导数法
2.4割线法
公式
例题
几何意义
收敛速度
双点>单点
总结
1、
2、
3、
第三章 线性方程组的数值方法
3.1高斯消元法
步骤:
1、线性方程组
2、构造增广矩阵
3、化成上三角矩阵
4、使用向后替代算法求解
3.2完全主元素消元法
步骤:
1、选取绝对值最大的元素移至主元素
2、化上三角矩阵
3、重复上两步
4、使用向后替代算法求解
3.3列主元素消元法
步骤:
1、在第一列中选取绝对值最大的元素移至主元素
2、化上三角矩阵
3、重复上两步
4、使用向后替代算法求解
3.4高斯-若尔当消元法
步骤:
1、将主元素化为1
2、化上三角矩阵
3、重复
4、求解
3.5求逆矩阵
步骤:
使用高斯-若尔当消元法
3.6矩阵的LU分解
对于Ax=b可分解为LUx=b,即Ly=b,Ux=y
步骤:
L为下三角,U为上三角
3.7平方根法
3.8追赶法
3.9向量和矩阵的范数
向量:
首先定义一个向量为:a=[-5,6,8, -10]
向量的1范数即:向量的各个元素的绝对值之和,上述a的1范数结果就是:29
向量的2范数即:每个元素的平方和再开平方根,上述a的2范数结果就是:15
向量的负无穷范数即:向量的所有元素的绝对值中最小的:上述向量a的负无穷范数结果就是:5
向量的正无穷范数即:向量的所有元素的绝对值中最大的:上述向量a的负无穷范数结果就是:10
向量的P范数即:,即向量元素绝对值的P次方和的1/p次幂
矩阵:
首先定义一个矩阵为:A=[-1 2 -3]
[4 -6 6]
矩阵的无穷范数,行和范数,即:矩阵的每一行上的元素绝对值先求和,再从中取个最大的,(行和最大),上述矩阵A的1范数先得到[6;16],再取最大的最终结果就是:16
矩阵的1范数,列和范数,即:矩阵的每一列上的元素绝对值先求和,再从中取个最大的,(列和最大),上述矩阵A的1范数先得到[5,8,9],再取最大的最终结果就是:9
矩阵的2范数,即:矩阵的最大特征值开平方根,上述矩阵A的2范数得到的最终结果是:10.0623
谱范数 :最大特征值(不开方)
条件数:
求特征值:
谱半径:
- 谱半径是矩阵特征值模的最大值,而非最大特征值
-
3.10误差分析
对于Ax=b,如果矩阵A或自由项b的微小变化,引起方程组Ax=b的解的巨大变化,则称此方程组为病态方程组,矩阵A称为病态矩阵,否则称方程组为良态方程组,A为良态矩阵。
当cond(A)条件数接近于1时,矩阵是良态的,否则是病态的。
例子:
3.11迭代法及其收敛性
3.12雅可比迭代法与高斯-赛德尔迭代法
雅可比迭代法
将原方程组移去右边,左边留下x1,x2,x3,然后除于系数,再列表
高斯-赛德尔迭代法
在雅可比基础上(将原方程组移去右边,左边留下x1,x2,x3,然后除于系数,再列表 ),将
改为
迭代收敛的充分条件
总结
1、
第四章 矩阵的特征值与特征向量问题
4.1幂法与反幂法
幂法:
1、基本思想
2、实用计算公式
3、例题
4、注意
反幂法:
1、
2、 例题
4.2幂法的加速
1、原点平移法(约等于)
第五章:代数插值
5.1基函数
5.2拉格朗日插值多项式
例题:
5.3插值余项
例题:
例题2:
5.4牛顿插值公式
例题:
5.5牛顿插值多项式
定义:
例题:
5.6差分与等距节点的牛顿插值多项式
定义:
打表:
性质:
7阶差商为f(x)的最高次方项的系数
8阶及以上差商均等于0
5.7牛顿前插,后插公式
例题:
5.8埃尔米特插值
定义:
公式:
例题:
5.9分段低次插值
定义:
例题:
5.10分段三次埃尔米特插值
定义
例题
5.11反插值
定义
例题
例题2
第六章数据拟合与函数逼近
6.1最小二乘法拟合多项式
定义
例题
例题2
6.2最小二乘拟合多项式使用条件和病态问题
6.3超定方程组的最小二乘解
定义
例题
6.4一般最小二乘拟合
定义
求法
例题
6.5可化为线性拟合的非线性拟合
例题
第七章数值积分与数值微分
7.1数值积分
定义
7.2代数精度
定义
例题
7.3插值型求积公式
7.4牛顿科特斯公式
例题
计算题例题
1、高斯-赛德尔和雅可比
严格对角占优
使用严格对角占优方法建立的赛德尔迭代公式则是收敛的
雅可比矩阵的谱半径
谱半径小于1,则收敛
2、拉格朗日插值与牛顿插值
选择节点使误差最小
估计截断误差
性质公式
3、最小二乘拟合
拟合曲线
超定方程组
函数拟合
4、迭代法
1、
2、
5、LU分解法
6、列主元素消元法
7、牛顿(切线)(迭代)法
8、插值法
差商表
1、
差分表
1、
2、
9、二分法
10、范数
详情见3.9
11、有效数字的位数
12、误差限
绝对误差限呢?
13、计算精度(迭代计算几次)
14、迭代局部收敛
15、三次样条函数
16、代数精度
牛顿科特斯求积公式
代数精度为5个节点,最高代数精度为2*5个节点-1
n;2n-1
n>=8
高斯求积公式
插值型求积公式
代数精度至少为n,至多为n+1
17、割线法
18、余项的计算
拉格朗日插值多项式
牛顿插值多项式
19、消元法
高斯消元
化成左下角都为0的矩阵
列主元素消元
交换行使得当前元素为一列中的最大值
完全主元素消元
高斯--若尔当消元
将主元素化为1,并消去对角线上方与下方的元素
20、幂法
幂法是一种求解任意矩阵 A 的按模最大的特征值及其对应的特征向量的迭代算法,收敛速度取决于次模最大特征值与模最大特征值比值的模。
21、定积分
梯形求积公式
矩形求积公式
抛物线(辛普森)求积公式
概念性质
1、计算方法主要研究截断误差和舍入误差。
2、用二分法求非线性方程f(x)= 0在区间(a,b)内的根时,二分n次后的误差限为
3、解线性方程组Ax=b的高斯顺序消元法满足的充要条件为(A的各阶顺序主子式均不为零)
4、高次插值具有数值不稳定性,应采用分段低次插值。
5、拉格朗日插值基函数
6、
7、
8、求解线性方程组Ax=b的LU分解法中,A需满足的条件是正定矩阵
9、舍入误差是只取有限位数产生的误差
10、用1+x近似表示所产生的误差是截断误差
11、解线性方程组的主元素消去法中选择主元的目的是控制舍入误差
12、用简单迭代法求方程f(x)=0的实根,把方程f(x)=0表示成x=k(x),则f(x)=0的根是y=x与y=k(x)交点的横坐标
13、余项
14、 15、
16、
17、
模型误差、观测误差、舍入误差、截断误差
18、二分法只能用于求实函数的实根
19、求解线性方程组的数值方法大致可分为直接法和迭代法
20、幂法是一种求任意矩阵A的按模最大特征值及其对应特征向量的迭代算法
21、反幂法是一种求任意矩阵A的按模最小特征值及其对应特征向量的迭代算法
22、实际问题--数学模型--计算方法--程序设计--上机计算
23、用克莱姆法则求解一个n阶线性方程组时,要用n+1个n阶行列式,总共需要(n-1)(n+1)n!次乘法。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)