1.正交多项式

设φn(x)是[a,b]上首项系数an≠0的n次多项式,ρ(x)为[a,b]上的权函数.设\varphi _n(x)是[a,b]上首项系数a_n\neq 0的n次多项式,\rho (x)为[a,b]上的权函数.设φn​(x)是[a,b]上首项系数an​​=0的n次多项式,ρ(x)为[a,b]上的权函数.
如果多项式序列{φn(x)}0∞\{\varphi _n(x)\}_0^{\infty}{φn​(x)}0∞​满足关系式
(φj,φk)=∫ab⁣ ⁣ ⁣ρ(x)φj(x)φk(x)dx={0,j≠k,Ak>0,j=k.(\varphi _j,\varphi _k)=\int_a^b\!\!\!\rho (x)\varphi _j(x)\varphi _k(x)\mathrm{d}x=\begin{cases} 0,\qquad\space\space j\neq k,\\ A_k>0,j=k. \end{cases}(φj​,φk​)=∫ab​ρ(x)φj​(x)φk​(x)dx={0,  j​=k,Ak​>0,j=k.​
则称多项式序列{φn(x)}0∞为在[a,b]上带权ρ(x)正交,称φn(x)为[a,b]上带权ρ(x)的n次正交多项式.则称多项式序列\{\varphi _n(x)\}_0^{\infty}为在[a,b]上带权\rho (x)正交,称\varphi _n(x)为[a,b]上带权\rho (x)的n次正交多项式.则称多项式序列{φn​(x)}0∞​为在[a,b]上带权ρ(x)正交,称φn​(x)为[a,b]上带权ρ(x)的n次正交多项式.

2.勒让德多项式

2.1 定义

当区间为[−1,1],权函数ρ(x)≡1时,由{1,x,…,xn,…}当区间为[-1,1],权函数\rho (x)\equiv 1时,由\{ 1,x,\ldots,x^n,\ldots\}当区间为[−1,1],权函数ρ(x)≡1时,由{1,x,…,xn,…}正交化得到的多项式称为勒让德(Legendre)多项式.并用P0(x),P1(x),…,Pn(x),…表示.正交化得到的多项式称为\textbf{勒让德(Legendre)多项式}.并用P_0(x),P_1(x),\ldots,P_n(x),\ldots表示.正交化得到的多项式称为勒让德(Legendre)多项式.并用P0​(x),P1​(x),…,Pn​(x),…表示.
递推关系(n+1)Pn+1(x)=(2n+1)xPn(x)−nPn−1(x),n=1,2,….其中,P0(x)=1,P1(x)=x(n+1)P_{n+1}(x)=(2n+1)xP_n(x)-nP_{n-1}(x),\quad n=1,2,\ldots.其中,P_0(x)=1,P_1(x)=x(n+1)Pn+1​(x)=(2n+1)xPn​(x)−nPn−1​(x),n=1,2,….其中,P0​(x)=1,P1​(x)=x

2.2 Python实现勒让德多项式

from numpy import pi
from sympy import expand, cos, Poly, solve, Eq
from sympy.abc import x
import numpy as np# 自己原创
def legendre_polynomial(symbol_x, degree):"""实现degree次勒让德(Legendre)多项式:param symbol_x:符号变量:param degree:多项式阶数:return:指定degree阶数的勒让德(Legendre)多项式"""legendre_t_list = np.array([1, symbol_x])if degree in (0, 1):return legendre_t_list[degree]for n in range(1, degree + 1):legendre_t_list[0] = (2 * n + 1) / (n + 1) * symbol_x * legendre_t_list[1] - n / (n + 1) * legendre_t_list[0]# 第一种方式交换legendre_t_listlegendre_t_list = legendre_t_list[::-1]# 第二种方式交换legendre_t_list# legendre_t_list[1], legendre_t_list[0] = legendre_t_list[0], legendre_t_list[1]# 第三种方式交换legendre_t_list# temp = legendre_t_list[1]# legendre_t_list[1]=legendre_t_list[0]# legendre_t_list[0] = tempreturn expand(legendre_t_list[0])

3.切比雪夫多项式

3.1 第一类切比雪夫多项式定义

当权函数ρ(x)=11−x2,区间为[−1,1]时,当权函数\rho (x)=\dfrac{1}{\sqrt{1-x^2}},区间为[-1,1]时,当权函数ρ(x)=1−x2​1​,区间为[−1,1]时,正交化得到的正交多项式就是正交化得到的正交多项式就是正交化得到的正交多项式就是切比雪夫(Chebyshev)多项式,它可表示为\textbf{切比雪夫(Chebyshev)多项式},它可表示为切比雪夫(Chebyshev)多项式,它可表示为
Tn(x)=cos⁡(narccos⁡x),∣x∣⩽1.T_n(x)=\cos (n\arccos x),\vert x\vert \leqslant 1.Tn​(x)=cos(narccosx),∣x∣⩽1.
若令x=cos⁡θ,则Tn(x)=cos⁡(nθ),0⩽θ⩽π.x=\cos \theta ,则T_n(x)=\cos (n\theta),0\leqslant \theta \leqslant \pi.x=cosθ,则Tn​(x)=cos(nθ),0⩽θ⩽π.
递推关系
Tn+1(x)=2xTn(x)−Tn−1(x),n=1,2,…,T0(x)=1,T1(x)=x.\begin{aligned} T_{n+1}(x)&=2xT_n(x)-T_{n-1}(x),\quad n=1,2,\ldots,\\ T_0(x)&=1,T_1(x)=x. \end{aligned}Tn+1​(x)T0​(x)​=2xTn​(x)−Tn−1​(x),n=1,2,…,=1,T1​(x)=x.​

3.2 第二类切比雪夫多项式定义

在区间[−1,1]上带权ρ(x)=1−x2的正交多项式在区间[-1,1]上带权\rho (x)=\sqrt{1-x^2}的正交多项式在区间[−1,1]上带权ρ(x)=1−x2​的正交多项式称为第二类切比雪夫多项式,其表达式为称为\textbf{第二类切比雪夫多项式},其表达式为称为第二类切比雪夫多项式,其表达式为
Un(x)=sin⁡[(n+1)arccos⁡x]1−x2.U_n(x)=\frac{\sin [(n+1)\arccos x]}{\sqrt{1-x^2}}.Un​(x)=1−x2​sin[(n+1)arccosx]​.
递推关系
U0(x)=1,U1(x)=2x,Un+1(x)=2xUn(x)−Un−1(x),n=1,2,….\begin{aligned} U_0(x)&=1,U_1(x)=2x,\\ U_{n+1}(x)&=2xU_n(x)-U_{n-1}(x),\quad n=1,2,\ldots. \end{aligned}U0​(x)Un+1​(x)​=1,U1​(x)=2x,=2xUn​(x)−Un−1​(x),n=1,2,….​

3.3 Python实现两类切比雪夫多项式

# 自己原创
def chebyshev_polynomial(symbol_x, degree, polynomial_kind=1):"""实现degree次切比雪夫(Chebyshev)多项式:param polynomial_kind: 切比雪夫多项式类别,第一类或者第二类,默认第一类:param symbol_x:符号变量:param degree:多项式阶数:return:指定degree阶数的切比雪夫(Chebyshev)多项式"""if polynomial_kind not in (1, 2):raise Exception("Error,chebyshev_polynomial must be the first or second kind,polynomial_kind=1 or 2.")chebyshev_t_list = np.array([1, polynomial_kind * symbol_x])if degree in (0, 1):return chebyshev_t_list[degree]for n in range(degree):chebyshev_t_list[0] = 2 * symbol_x * chebyshev_t_list[1] - chebyshev_t_list[0]# 第一种方式交换chebyshev_t_listchebyshev_t_list = chebyshev_t_list[::-1]# 第二种方式交换chebyshev_t_list# chebyshev_t_list[1], chebyshev_t_list[0] = chebyshev_t_list[0], chebyshev_t_list[1]# 第三种方式交换chebyshev_t_list# temp = chebyshev_t_list[1]# chebyshev_t_list[1]=chebyshev_t_list[0]# chebyshev_t_list[0] = tempreturn expand(chebyshev_t_list[0])

3.4 一般区间的切比雪夫多项式零点

第一类切比雪夫多项式Tn(x)T_n(x)Tn​(x)在区间[−1,1]上有n个零点[-1,1]上有n个零点[−1,1]上有n个零点
xk=cos⁡2k−12nπ,k=1,2,…,nx_k=\cos \frac{2k-1}{2n}\pi,\qquad k=1,2,\ldots,nxk​=cos2n2k−1​π,k=1,2,…,n
第二类切比雪夫多项式Un(x)U_n(x)Un​(x)在区间[−1,1]上有n个零点[-1,1]上有n个零点[−1,1]上有n个零点
xk=cos⁡kπn+1,k=1,2,…,nx_k=\cos \frac{k\pi}{n+1},\qquad k=1,2,\ldots,nxk​=cosn+1kπ​,k=1,2,…,n
由于切比雪夫多项式是在区间[−1,1][-1,1][−1,1]上定义的,对于一般的区间[a,b][a,b][a,b],要通过变量替换变换到[−1,1],可令[-1,1],可令[−1,1],可令
x=12[(b−a)t+a+b],x=\frac{1}{2}[(b-a)t+a+b],x=21​[(b−a)t+a+b],
则可将x∈[a,b]变换到t∈[−1,1].x\in [a,b]变换到t\in [-1,1].x∈[a,b]变换到t∈[−1,1].

3.5 Python实现一般区间的实现切比雪夫多项式零点

# 自己原创
def chebyshev_null_points(degree, a=-1, b=1, polynomial_kind=1):"""利用区间变换和切比雪夫零点求一般区间[a,b]上的插值节点:param polynomial_kind: 切比雪夫多项式类别,第一类或者第二类,默认第一类:param degree: 切比雪夫多项式次数:param a: 区间左端点:param b: 区间右端点:return:指定区间上的切比雪夫插值节点"""if polynomial_kind == 1:return [((b - a) / 2) * cos(((2 * k + 1) / (2 * degree)) * pi) + (b + a) / 2 for k in range(degree)]elif polynomial_kind == 2:return [((b - a) / 2) * cos((k * pi) / (degree + 1)) + (b + a) / 2 for k in range(1, degree + 1)]else:raise Exception("Error,chebyshev_polynomial must be the first or second kind,polynomial_kind=1 or 2.")

4.拉盖尔多项式

4.1 定义

在区间[0,+∞]上带权e−x的正交多项式称为拉盖尔(Laguerre)多项式,其表达式为在区间[0,+\infty]上带权e^{-x}的正交多项式称为\textbf{拉盖尔(Laguerre)多项式},其表达式为在区间[0,+∞]上带权e−x的正交多项式称为拉盖尔(Laguerre)多项式,其表达式为
Ln(x)=exdndxn(xne−x).L_n(x)=e^x\frac{\mathrm{d}^n}{\mathrm{d}x^n}(x^ne^{-x}).Ln​(x)=exdxndn​(xne−x).
递推关系
L0(x)=1,L1(x)=1−x,Ln+1(x)=(1+2n−x)Ln(x)−n2Ln−1(x),n=1,2,….\begin{aligned} L_0(x)&=1,L_1(x)=1-x,\\ L_{n+1}(x)&=(1+2n-x)L_n(x)-n^2L_{n-1}(x),\quad n=1,2,\ldots. \end{aligned}L0​(x)Ln+1​(x)​=1,L1​(x)=1−x,=(1+2n−x)Ln​(x)−n2Ln−1​(x),n=1,2,….​

4.2 Python实现拉盖尔多项式

# 自己原创
def laguerre_polynomial(symbol_x, degree):"""实现degree次拉盖尔(laguerre)多项式:param symbol_x:符号变量:param degree:多项式阶数:return:指定degree阶数的拉盖尔(laguerre)多项式"""laguerre_l_list = np.array([1, 1 - symbol_x])if degree in (0, 1):return laguerre_l_list[degree]for n in range(1, degree + 1):laguerre_l_list[0] = (1 + 2 * n - symbol_x) * laguerre_l_list[1] - n * n * laguerre_l_list[0]# 第一种方式交换legendre_t_listlaguerre_l_list = laguerre_l_list[::-1]# 第二种方式交换legendre_t_list# laguerre_l_list[1], laguerre_l_list[0] = laguerre_l_list[0], laguerre_l_list[1]# 第三种方式交换legendre_t_list# temp = laguerre_l_list[1]# laguerre_l_list[1]=laguerre_l_list[0]# laguerre_l_list[0] = tempreturn expand(laguerre_l_list[0])

5.埃尔米特多项式

5.1 定义

在区间[−∞,+∞]上带权e−x2的正交多项式称为埃尔米特(Hermite)多项式,其表达式为在区间[-\infty,+\infty]上带权e^{-x^2}的正交多项式称为\textbf{埃尔米特(Hermite)多项式},其表达式为在区间[−∞,+∞]上带权e−x2的正交多项式称为埃尔米特(Hermite)多项式,其表达式为
Hn(x)=(−1)nex2dndxn(e−x2),H_n(x)=(-1)^ne^{x^2}\frac{\mathrm{d}^n}{\mathrm{d}x^n}(e^{-x^2}),Hn​(x)=(−1)nex2dxndn​(e−x2),
递推关系
H0(x)=1,H1(x)=2x,Hn+1(x)=2xHn(x)−2nHn−1(x),n=1,2,….\begin{aligned} H_0(x)&=1,H_1(x)=2x,\\ H_{n+1}(x)&=2xH_n(x)-2nH_{n-1}(x),\quad n=1,2,\ldots. \end{aligned}H0​(x)Hn+1​(x)​=1,H1​(x)=2x,=2xHn​(x)−2nHn−1​(x),n=1,2,….​

5.2 Python实现埃尔米特多项式

# 自己原创
def hermite_polynomial(symbol_x, degree):"""实现degree次埃尔米特(hermite)多项式:param symbol_x:符号变量:param degree:多项式阶数:return:指定degree阶数的埃尔米特(hermite)多项式"""hermite_l_list = np.array([1, 2 * symbol_x])if degree in (0, 1):return hermite_l_list[degree]for n in range(1, degree + 1):hermite_l_list[0] = 2 * symbol_x * hermite_l_list[1] - 2 * n * hermite_l_list[0]# 第一种方式交换hermite_t_listhermite_l_list = hermite_l_list[::-1]# 第二种方式交换hermite_t_list# hermite_l_list[1], hermite_l_list[0] = hermite_l_list[0], hermite_l_list[1]# 第三种方式交换hermite_t_list# temp = hermite_l_list[1]# hermite_l_list[1]=hermite_l_list[0]# hermite_l_list[0] = tempreturn expand(hermite_l_list[0])

正交多项式-勒让德多项式,两类切比雪夫多项式及零点,拉盖尔多项式,埃尔米特多项式相关推荐

  1. 埃尔米特多项式 (Hermite Polynomials)简介(1)

    最近在做一个数值逼近的算法,里面用到了埃尔米特多项式.所以就花了些时间推导了一遍,推导笔记放在这里算是给自己做个备忘. 埃尔米特多项式 (Hermite Polynomials)简介(1) 埃尔米特多 ...

  2. 科学计算机的用途,计算机最主要的用途之一就是科学计算,科学计算可分为两类...

    人工智能是在计算机科学.控制论.信息论.心理学.语言学等多种学科相互渗透的基础发展起来的一门新兴边缘学科,主要研究是用机器(主要是计算机)来模仿和实现人类的智能行为,经过几十年的发展,人工智能应用在不 ...

  3. 两类边界条件的OBVP求解方法

    问题描述 OBVP 即 optimal bundary value problem,是特殊的 BVP, BVP 问题其实就是解决 state sampled lattice planning 的基本操 ...

  4. 线性表实现多项式相加c语言,用线性表实现多个多项式相加

    今天开始想复习一下数据结构,就从线性表开始吧. 今天是用线性表实现多个多项式相加这个题目,自变量是x. 题目描述如下: 在数学上,一个一元多项式Pn(x)可按降幂写成:Pn(x) = pn x^n + ...

  5. matlab多项式的拟合与插值例题_Matlab中数据处理和多项式插值与曲线拟合

    一.  基本统计处理 1.查取最大值 MAX函数的命令格式有: [Y,I]= max (X):将max(X)返回矩阵X的各列中的最大元素值及其该元素的位置赋予行向量Y与I:当X为向量时,则Y与I为单变 ...

  6. R语言效用分析 ( 效能分析、Power analysis)确定样本量、假设检验与两类错误、pwr包进行效用分析 ( 效能分析、Power analysis)的常用函数列表

    R语言效用分析 ( 效能分析.Power analysis)确定样本量.假设检验与两类错误.pwr包进行效用分析 ( 效能分析.Power analysis)的常用函数列表 目录

  7. linux中I/O设备分为两类:字符设备和块设备。

    Linux中I/O设备分为两类:字符设备和块设备.两种设备本身没有严格限制,但是,基于不同的功能进行了分类. (1)字符设备:提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取.相反,此类设备 ...

  8. 什么样的数据集可以被分成两类?

    (A,B)-n*m*k-(1,0)(0,1) 制作一个二分类A和B的网络,比如A是mnist的0,B是mnist的2,现在向0中加入50%的2,向2中加入50%的0 则 A变成了50%的0+50%的2 ...

  9. 成轴对称的两组图片能被分成两类吗?

    将吸引子,排斥子,鞍点和反鞍点旋转90度形成轴对称,并将成轴对称的两组图片进行分类. r1 r2     <1 <1 吸引子 c >1 >1 排斥子 p >1 <1 ...

  10. 计算机病毒按破坏性分为哪两类,计算机导论复习要点.doc

    计算机导论复习要点 第1章 结论 一.汉译英 计算机:Computer:hardware:software:Super Computer: Micro Computer: 二.填空题 1.图灵被称为: ...

最新文章

  1. poj2002 poj3432 正方形个数 (hash,二分)
  2. Linux企业生产环境用户权限集中管理项目方案案例
  3. T-SQL查询——数据集之间的运算
  4. 防火墙如可禁止tracert但允许ping
  5. 数据段、代码段、堆栈段、BSS段的区别
  6. 2021“MINIEYE杯”中国大学生算法设计超级联赛(10)Pty loves string(Border+二维数点)
  7. Oracle ADG备库SYSAUX数据文件坏块恢复处理(ORA-00600,ORA-10567,ORA-10564......
  8. (转)Cesium教程系列汇总
  9. Web UI套件模板|设计师的好帮手
  10. No converter found capable of converting from type
  11. 集成hello到OpenDaylight发行版中
  12. 实验吧—Web——WP之 Forms
  13. android studio 汉化包 美化包
  14. android tabhost的使用方法,android TabHost的基本使用
  15. TOFLE-Mistake
  16. python颜色的数字代码_python – 更改QLCD数字的数字颜色
  17. blender动画制作
  18. Android获取QQ名片赞数量,教你如何提高QQ名片赞数量 如何增加QQ赞数量
  19. Visitor模式实践
  20. Java内置包装类:Float 类

热门文章

  1. 使用python+Pyqt5来写一个简易串口调试助手
  2. python继承封装多态简单理解_Python面向对象编程:封装、继承、多态(基础篇十)...
  3. Scikit-learn_回归算法_支持向量机回归
  4. Faster rcnn 实战
  5. 设计模式经典书籍推荐
  6. Q学习和深度Q学习(DQN)论文笔记
  7. 百度地图ipa包使用的Framework解读
  8. 空手套白狼,硬阅java字节码class文件
  9. GPS经纬度坐标和UTM坐标的相互转换
  10. Python计算点到直线距离的两种方法