【数值分析】逼近,正交多项式

逼近

由离散点(函数表)给出函数关系通常有两种方法:

  1. 使用多项式插值
    使用多项式插值会带来两个问题:1. 龙格现象2. 数值本身带有误差,使用插值条件来确定函数关系不合理
  2. 三次样条插值
    三次样条插值克服了龙格现象,但计算量大。

曲线拟合的最小二乘法可以克服龙格现象,同时不会有大计算量。

用函数序列 p n ( x ) {p_n(x)} pn(x) 去近似一个函数 f ( x ) {f(x)} f(x) ,称为逼近 。用函数 Φ {\Phi} Φ 去近似一堆离散点,称为拟合

最小二乘法是最佳平方逼近的离散情形。

使用多项式拟合时,如果要拟合的多项式次数等于离散点的个数减一,则最小二乘拟合多项式与多项式插值得到的插值多项式相同。

用多项式做最小二乘的基函数,当 n {n} n 较大时,法方程组的解对初始数据的微小变化非常敏感,属于"病态"问题。所以通过使用正交多项式来避免求解法方程组。

极值原理 在有限集合中存在最大值和最小值。
最小二乘准则 即损失函数
L = ∑ i = 1 n ( y i − f ( x i ) ) 2 L= \sum_{i=1}^{ n} (y_i-f(x_i))^2 L=i=1∑n(yi−f(xi))2

最小。法方程是从损失函数取极小值的必要条件推来的。

非线性拟合,就是指用来拟合离散点的函数不是某些函数的线性组合,或者说是关于待定参数的非线性函数。

矛盾方程系数矩阵列向量线性无关,则方程组相容,从而可以解除矛盾方程在最小二乘意义下的最佳近似解。matlab左除""可以求解矛盾方程

曲线拟合问题

逼近 用类似简化的函数来拟合一堆数据点。

曲线拟合问题 求函数 ϕ ( x ) ∈ Φ {\phi(x)\in \Phi} ϕ(x)∈Φ ,使得 ϕ ( x ) {\phi(x)} ϕ(x) 在离散点上的误差向量
δ = [ δ 0 δ 1 ⋮ δ m ] = [ ϕ ( x 0 ) − y 0 ϕ ( x 1 ) − y 1 ⋮ ϕ ( x m ) − y m ] \delta = \begin{bmatrix} \delta_0\\ \delta_1 \\ \vdots \\ \delta_m \end{bmatrix}= \begin{bmatrix} \phi(x_0)-y_0\\ \phi(x_1)-y_1 \\ \vdots \\ \phi(x_m)-y_m \end{bmatrix} δ= δ0δ1⋮δm = ϕ(x0)−y0ϕ(x1)−y1⋮ϕ(xm)−ym

按某一向量范数 ∣ ∣ δ ∣ ∣ {|| \delta ||} ∣∣δ∣∣ 达到最小。

当范数取 2 {2} 2 范数,即为最小二乘法。


正交多项式

Schmidt正交化:
g n ( x ) = f n ( x ) − ∑ i = 0 n − 1 ( f n , g i ) ( g i , g i ) g i ( x ) g_n(x)=f_n(x)- \sum_{i=0}^{ n-1} \frac{(f_n,g_i)}{(g_i,g_i)}g_i(x) gn(x)=fn(x)−i=0∑n−1(gi,gi)(fn,gi)gi(x)

由 1 , x , x 2 , ⋯ x n {1,x,x^2, \cdots x^n} 1,x,x2,⋯xn 经过Schmidt正交化得到的多项式 P 0 ( x ) , P 1 ( x ) , ⋯   , P n ( x ) {P_0(x),P_1(x),\cdots ,P_n(x)} P0(x),P1(x),⋯,Pn(x) 称为 [ a , b ] {[a,b]} [a,b] 上的正交多项式。

  • 求内积时候要带上权函数!

[!example]-

求区间 [ − 1 , 1 ] {[-1,1]} [−1,1] 上权函数为 ρ ( x ) = x 2 {\rho(x)=x^2} ρ(x)=x2 的二次正交多项式 P 2 ( x ) {P_2(x)} P2(x) 。(说了二次,只写到2次项,不然要加...)

解:
P 0 ( x ) = 1 P 1 ( x ) = x − ( x , 1 ) ( 1 , 1 ) × 1 = x − ∫ − 1 1 x ⋅ 1 ⋅ x 2 d x ∫ − 1 1 x 2 d x = x P 2 ( x ) = x 2 − ( x 2 , 1 ) ( 1 , 1 ) × 1 − ( x 2 , x ) ( x , x ) × x = x 2 − ∫ − 1 1 x 2 ⋅ 1 ⋅ x 2 d x ∫ − 1 1 x 2 d x × 1 − ∫ − 1 1 x 2 ⋅ x ⋅ x 2 d x ∫ − 1 1 x ⋅ x ⋅ x 2 d x × x = x 2 − 2 / 5 2 / 3 = x 2 − 3 5 \begin{align*} P_0(x)=&1 \\ \\ P_1(x)=& x- \frac{(x,1)}{(1,1)} \times 1=x- \frac{\int_{ -1 }^{1} x \cdot 1 \cdot x^2 \mathrm dx}{\int_{ -1 }^{1} x^2 \mathrm dx}=x \\ \\ P_2(x)=&x^2- \frac{(x^2,1)}{(1,1)}\times 1- \frac{(x^2,x)}{(x,x)} \times x \\ \\ =&x^2- \frac{\int_{ -1 }^{1} x^2 \cdot 1 \cdot x^2 \mathrm dx}{\int_{ -1 }^{1} x^2 \mathrm dx} \times 1- \frac{\int_{ -1 }^{1} x^2 \cdot x \cdot x^2 \mathrm dx}{\int_{ -1 }^{1} x \cdot x \cdot x^2 \mathrm dx} \times x \\ \\ =& x^2- \frac{2/5}{2/3}=x^2- \frac{3}{5} \end{align*} P0(x)=P1(x)=P2(x)===1x−(1,1)(x,1)×1=x−∫−11x2dx∫−11x⋅1⋅x2dx=xx2−(1,1)(x2,1)×1−(x,x)(x2,x)×xx2−∫−11x2dx∫−11x2⋅1⋅x2dx×1−∫−11x⋅x⋅x2dx∫−11x2⋅x⋅x2dx×xx2−2/32/5=x2−53

相关推荐
q567315234 小时前
如何在Django中创建新的模型实例
数据库·python·线性代数·django·sqlite
jianglq7 小时前
C++高性能线性代数库Armadillo入门
c++·线性代数
痛&快乐着18 小时前
线性代数之QR分解和SVD分解
线性代数
sz66cm2 天前
数学基础 -- 线性代数之奇异值
人工智能·线性代数·机器学习
985小水博一枚呀2 天前
【混淆矩阵】Confusion Matrix!定量评价的基础!如何计算全面、准确的定量指标去衡量模型分类的好坏??
人工智能·python·深度学习·线性代数·矩阵·分类·cnn
tangfuling19912 天前
Games101笔记-线性代数(一)
笔记·线性代数
aimmon3 天前
深度学习之微积分预备知识点
人工智能·深度学习·线性代数·微积分
南斯拉夫的铁托3 天前
线性代数(宋浩版)(4)
经验分享·笔记·线性代数
aimmon3 天前
深度学习之线性代数预备知识点
人工智能·深度学习·线性代数
q567315234 天前
Metacritic 网站中的游戏开发者和类型信息爬取
数据库·python·线性代数·游戏·sqlite