浅谈数值分析(附数值分析用到相应Matlab的函数)
前沿
数值分析主要解决现实问题中模型很难用具体解析表达式表达的情况。一般通过分析样本数据通过
插值拟合或者说积分的方式实现相应近似多项表达的功能。其中迭代的思想贯穿始终。。
1. 非线性方程的求解。
传统方式求解解析解,但是运算比较繁琐,对于实时操作系统而言,只需要近似的解析解,则采用二
分法(AD转换芯片逐次逼近式就是采用该方式)、迭代法(卷积神经网络中的基本运算)。当我第一次看
到方程可以通过x=f(x)形式求解,打破我对传统解析解的认知,通过迭代方式实现相应收敛解。谈到这
里,需要分析收敛条件以及判断收敛速度,这个是判断该迭代法的性能标志。
2. 线性方程的求解。
传统的方式通过高斯消元法,选定主元进行消元的过程。当然要求改系数矩阵为可逆的方阵。而采
用迭代方式,按照迭代法的基本原理,将AX=B中A拆分成A=C+D,将该线性方程组改写为x= Mx+f ,其
中M为n阶方;f为n维列向量。之后根据之前迭代法的基本思想,提出Yacobi(雅克比迭代法)将系数矩
阵A拆分成上三角、下三角以及对角矩阵,并将线性方程组改写为x =-D^(-1)*(L+U)+D^(-1)*B ,迭代的形式
依然是x=f(x)。高斯-塞得迭代法是在原迭代法的基础上将迭代新值迭代到原先的迭代中。
3. 矩阵特征值和特征向量的求解。
一般应用于有限元分析中,按模求最大特征值和最小特征值及其特征向量,这个没什么好讲的。
4. 插值和拟合
我认为是数值分析的精髓,通过对于样本的分析求得简单的近似函数替代传统的复杂的解析式。
拟合与插值不同的时,后者降低多项表达式的维度以及提高相应的精度。比如一个系统搭建好,由于
系统或硬件自身问题,测得的数据与实际数据存在误差,则可以通过拟合方式,实现误差的最小化。
5. 数值积分和数值微分。
在工程中应用于PID控制,汽车自动驾驶以及三坐标定位等。数值积分诞生的原因是不是所有被积
函数都存在原函数,通过数值积分的方式可以确定模型的规格和大小。
--------------------------------------------------------------------------------------------------------------------------------------------
附 -matlab相应求解函数
总
1. 求解方程或方程组数值解
2. 求矩阵的特征值和特征向量
3. 求矩阵特征方程系数及其对应特征值
4. 求解线性方程组的解
5. 插值和拟合
6. 积分和微分
7. 微分方程
分
1.求解方程或方程组数值解
2.求矩阵的特征值和特征向量
[ v,e ]=Eig(A) , 其中v是特征向量,e是特征值
[e] =eig[A]
3.求矩阵特征方程系数及其对应特征值
E = Poly(A)
至于求特征值,就是求解非线性方程的解,使用roots(m),其中m是行向量。
如E = 1 -12 21 88
则使用root(E)相当于求解 X^3 - 12*X^2 + 21*X + 88=0
4.求解线性方程组的解
主要可以化解求解逆矩阵也可以用左除右除的形式
5. 插值和拟合
(1)插值
一维插值:
Interp1(x,y,u)(自变量,应变量,所求多项式的次数),其中(xi,yi) i=1,2,…n标本数据。
二维插值
Interp2(x,y,z,u)(自变量1,自变量2,应变量,所求多项式的次数),其中(xi,yi,zi) i=1,2,…n标本数据。
n维插值
Interpn(x,y,z,.......u)(自变量1,自变量2,........,应变量,所求多项式的次数),其中(xi,yi,zi,......) i=1,2,…n标本数据。
(2)拟合
Polyfit(x,y,n) (x,y)输入的数据 , n表示拟合曲线二次多项式x的最高系数
特别的, MATLAB自带的app工具箱中CURVE FITTING
纯GUI界面,输入自变量和应变量,然后选择合适的插值方式,即可求出相应插值多项式前面的系数。
其中残差:准确值和理论值之间的关系。
可以通过GENERATE CODE,产生相应的代码。
6. 积分和微分
不定积分
Matlab程序(外来的函数用syms定义变量)
Syms x; int(f,x) 其中f为被积函数,x是被积算子
Eg.
定积分
Matlab程序(外来的函数用syms定义变量)
Syms x; int(f,x,a,b) 其中f为被积函数,x是被积算子,a为积分下线,b为积分上限
Eg.
7.微分方程
Syms y(x) , dsolve(微分方程)
微分方程中n阶导数用diff(y,n)表示。N=1时,n可以省略。
Eg.
Date:2021-06-13 /14:44:13