精华内容
下载资源
问答
  • 多项式逼近连续函数

    千次阅读 2020-12-21 22:04:44
    本文可作为线性代数实现线性回归的下篇,先简单回顾一下,线性代数实现线性回归中介绍了子空间的概念,把子空间想象成一个超平面,子空间中任意一个向量都可以用子空间的基线组成,线性回归原理是已知一个超平面...

      本文可作为线性代数实现线性回归的下篇,先简单回顾一下,线性代数实现线性回归中介绍了子空间的概念,把子空间想象成一个超平面,子空间中任意一个向量都可以用子空间的基线性组成,线性回归原理是已知一个超平面和超平面外的一个向量,该向量与在超平面上的投影距离最短,或者说误差最小,在得到这个投影的同时就知道了未知参数,未知参数是投影在子空间基上的坐标。

        上篇中介绍的空间是一个由向量组成的空间,向量中元素是实数。 本文将拓展子空间的概念,空间的元素是函数称之为函数空间,这个空间里面有我们熟悉的各种函数以及这些函数的线性组合。函数空间里的子空间是一系列性质相似的函数集合,比如三角函数可以组成一个子空间,由数学分析知道利用三角函数可以实现傅里叶变换,将其他函数表示为三角函数线性组合成的级数形式。本文中选取的空间是一个多项式空间,即其空间里基是x0,x1,x2,x3,...xn...等多项式,需要将其他函数投影到这个子空间里,其运用的知识还是来自于线性代数。

    1600325959858016665.jpg

        使用上图来说明函数空间,AP代表了函数空间里的一个函数,而下面的平面代表了多项式子空间,AP在多项式空间里的投影AC就是与AP误差最小的多项式,AC是x0,x1,x2,x3,...xn等多项式的线性组合,我们目标就是求出这个线性组合表达式中每个基前面的系数(坐标)。

    一、一元多项式逼近任意一元连续函数

        这里结合一段python代码说明,这段代码的功能是利用多项式逼近函数f(x)=sin(x)-3cos(x)。 

    import numpy as np
    
    import math
    
    from sympy import *
    
    from scipy.integrate import tplquad, dblquad, quad
    
    from scipy.linalg import *
    
    import matplotlib.pyplot as plt
    
    plt.rcParams['font.sans-serif'] = ['SimHei']
    
    plt.rcParams['axes.unicode_minus'] = False
    
    NSplit_Num = 10000
    
    
    class polynomialAppro(object):
    
        def __init__(self, split=1000):
    
            self.splitnum = split
    
            pass
    
        def genfunction(self):
    
            ar = []
    
            t = np.linspace(-math.pi, math.pi, self.splitnum)
    
            for x in t:
                ar.append(math.sin(x) - 3 * math.cos(x))
    
            sx = np.expand_dims(np.asarray(ar), 0)
    
            return sx
    
        def genpolynomialdata(self):
    
            ar = []
    
            t = np.linspace(-math.pi, math.pi, self.splitnum)
    
            for x in t:
                ar.append([1, x, x ** 2, x ** 3, x ** 4, x ** 5])
    
            polynomialdata = np.asarray(ar)
    
            return polynomialdata
    
    
    if __name__ == '__main__':
        appro = polynomialAppro(NSplit_Num)
    
        sx = appro.genfunction()  # 1.1
    
        b = sx.T  # 1.2
    
        A = appro.genpolynomialdata()  # 1.3
    
        ATAminus = np.linalg.inv(np.dot(A.T, A))  # 1.4
    
        coordinate = np.round(np.dot(ATAminus, np.dot(A.T, b)), 4)  # 1.5
    
        # 打印图像验证
    
        x = np.linspace(-math.pi, math.pi, NSplit_Num)
    
        y_x = coordinate[0]+ coordinate[1] * x + coordinate[2] * (x ** 2)+  coordinate[3] * (x ** 3) + coordinate[4] * (
                x ** 4) + coordinate[5] * (x ** 5)
    
        plt.figure()
    
        plt.subplot(121)
    
        plt.title('原函数图像')
    
        plt.plot(x, b[..., 0])
    
        plt.subplot(122)
    
        plt.title('多项式逼近的函数图像')
    
        plt.plot(x, y_x)
    
        plt.show()

     

    来看下模拟的效果图:

    Figure_1.png

    可以看到利用线性回归求出的多项式函数可以较好的逼近目标函数,下面就代码中标红色部分说明:

    #1.1 sx=appro.genfunction()

    这里是得到目标函数f(x)=sin(x)-3cos(x)在-π ,π之间的数据,将其离散化变成计算机可以处理的向量形式,这里是为了说明采用了显式函数结构,真实的应用中可以是采集而来样本数据。

    #1.2 b=sx.T

    为了后期处理方便,将其处理成10000*1的向量形式。

    #1.3 A=appro.genpolynomialdata()

    选取x0,x1,x2,x3,x4,x5作为子空间的基,并将其向量化,这里将得到一个10000*6的矩阵,此时A就是在介绍线性回归问题时的子空间。这里将函数空间元素赋值,使一个函数空间问题变为一个线性代数问题,这种离散化数据手段在计算机处理中会经常使用。

    #1.4、1.5 

     

    ATAminus=np.linalg.inv( np.dot(A.T,A))

     

    coordinate= np.round(np.dot(ATAminus,np.dot(A.T,b)),4)

    经过前面离散化处理,此时问题就变成利用线性空间求解线性回归问题,#1.4、1.5 是求出函数f(x)=sin(x)-3cos(x)在多项式子空间上的投影,这个处理过程 在之前已经讨论过,这里再复盘一遍。

    一元多项式.jpg

    二、 二元多项式逼近任意连续二元连续函数

        二元乃至多元多项式逼近任意连续函数与一元函数类似,都是最终转化为实数矩阵形式,然后利用公式(1)求解系数,只不过在构造多项式形式上略有不同,掌握二元多项式逼近问题即可推广至任意元函数的情形,这里还是先展示一段python代码。

    from matplotlib import pyplot as plt
    
    from mpl_toolkits.mplot3d import Axes3D
    
    import numpy as np
    
    import  math
    
    fig = plt.figure()  #定义新的三维坐标轴
    
    ax3 =  fig.add_subplot(211,projection='3d')
    
    ax2 =  fig.add_subplot(212,projection='3d')
    
    #定义三维数据
    
    NSTP=500
    
    nstart=-math.pi
    
    nend= math.pi
    
    Lens= nend-nstart
    
    xx = np.arange(nstart,nend,Lens/NSTP)
    
    yy = np.arange(nstart,nend,Lens/NSTP)
    
    X, Y = np.meshgrid(xx, yy)
    
    Z =  np.sin(X)-np.cos(Y)
    
    
    
    
    
    ar=[]
    
    tempa=[]
    
    for x in xx:
    
        for y in yy:
    
            ar.append(   math.sin(x)-math.cos(y))
    
            tempa.append([1,(y**1) ,(y**2) ,(y**3)  , (x**1) ,(y**1)*(x**1),(y**2)*(x**1) ,(x**1)*(y**3),(x**2)*(y**0),(x**2)*(y**1),(x**2)*(y**2),(x**2)*(y**3)
    
                          ,(x**3)*(y**0),(x**3)*(y**1),(x**3)*(y**2),(x**3)*(y**3)])#2.1
    
        pass
    
    A=np.array(tempa)
    
    b=np.array(ar).reshape([NSTP**2,1])
    
    aminus = np.linalg.inv(np.dot(A.T, A))
    
    temp = np.dot(A.T, b)
    
    c = np.dot(aminus, temp)
    
    
    
    #作图验证
    
    Z2 = c[0,0]*1+ c[1,0]*Y + c[2,0]*(Y**2) +  c[3,0]*(Y**3) + c[4,0]*(X**1) + c[5,0]*(X**1)*(Y**1) + c[6,0]*(X**1)*(Y**2) + c[7,0]*(X**1)*(Y**3) + c[8,0]*(X**2) + c[9,0]*(X**2)*(Y**1)+ c[10,0]*(X**2)*(Y**2) + c[11,0]*(X**2)*(Y**3) + c[12,0]*(X**3) + c[13,0]*(X**3)*(Y**1) + c[14,0]*(X**3)*(Y**2)+  c[15,0]*(X**3)*(Y**3)
    
    ax3.plot_surface(X,Y,Z,cmap='Blues')
    
    ax2.plot_surface(X,Y,Z2,cmap='Greens')
    
    #ax3.contour(X,Y,Z, zdim='z',offset=-2,cmap='rainbow)   #等高线图,要设置offset,为Z的最小值
    
    plt.show()

    效果图如下,上面是目标函数f(x,y)=sin(x)-cos(y)图像,下面是多项式拟合的函数图像:

    Figure_2.png

    可以发现多元函数求解系数与一元函数一模一样,可以完全使用一元函数时所使用的代码,如上面的红色区域,唯一不同的是这里是二元函数,本例选择多项式最高为6次,即X,Y最高次数为3次,可以选择更高次数以加强精确度。这里需要关心的问题是次数定下来后,基的组合有哪些,既然说到组合,首先想到应该是组合数学。

    余下文章链接 多项式逼近

    展开全文
  •  已知函数在离散点处的取值:$(t_i, y_i)$ ,恢复连续函数 $f: \mathbb{R}\Rightarrow \mathbb{R}$ 使得该连续函数在以上离散点处取得已知取值 $f(t_i)=y_i$ ,从而可以求得该函数在离散点中间某一点的值,并获得...

    1. 函数插值问题

      已知函数在离散点处的取值:$(t_i, y_i)$ ,恢复连续函数 $f: \mathbb{R}\Rightarrow \mathbb{R}$ 使得该连续函数在以上离散点处取得已知取值 $f(t_i)=y_i$ ,从而可以求得该函数在离散点中间某一点的值,并获得导数等只有连续函数才具有的信息,或者便于进行数值积分、平滑滤波等操作,这样的过程即为函数插值。

      通常来说,函数插值由一族基函数的叠加实现,或者说将已知离散点取值的函数转化为一族连续的基函数展开。即:

    选取基函数 $\phi_1(t), \phi_2(t), ... \phi_n(t)$ ,求叠加系数 $x_i, i=1...m$ ,使得连续函数 $f(t)=\sum\limits_{i=1}^nx_i\phi_i(t)$ 满足 $f(t_j)=\sum\limits_{i=1}^nx_i\phi_i(t_j)=y_j, j=1...m$ 

      因此,插值的过程也就是确定该族基函数的叠加系数的过程。常用的基函数包括:

    单项式基将离散取值表达为连续函数的多项式展开 $f(t)=\sum\limits_{k=0}^nx_kt^k$;

    三角函数基将离散取值表达为连续函数的傅里叶级数展开 $f(t)=\sum\limits_{k=0}^n(a_ksinkt+b_kcoskt)$(也可以看作是表达为纯虚数指数函数展开 $f(t)=\sum\limits_{k=-n}^nc_ke^{ikt}$ );

    指数函数基将离散取值表达为连续(实)指数函数叠加 $f(t)=\sum\limits_{k=0}^na_ke^{kt}$;

    有理分式基将离散取值表达为有理分式函数的叠加 

      多项式函数插值专题将主要讨论多项式展开的形式,多项式叠加形式在计算方法上同样具有很多方法

      函数插值的应用非常广泛。对于离散的数据点,微分、积分都无法定义,信号的平滑、滤波、增强对比等操作也无从谈起。同时,对于实验中离散的数据,如何获得中间点取值的估计值;对于已有的区间内的数据,是否可以预测区间外部邻近点的取值。这些都涉及函数插值的操作,当离散的函数点变为一个在实数域上有定义的连续函数时,理论上自然就可以求任意一点的估计值了。同时,在选取函数基底和叠加系数时,有时也需要根据离散数据考虑,是否要求连续插值函数保留单调性/具有奇偶性等。

     

    2. 问题的性质

    解的存在唯一性:

      一般来说,当基函数已经确定时,只需要求出叠加系数即可。这种情况下相当于解一个线性方程组:已知 $\sum\limits_{i=1}^n\phi_j(t_i)x_j=y_i, i=1,2,...m$ 求解 $\boldsymbol{x_i}$ 。因为选取的叠加函数为一组基函数,本身具有线性无关性,那么除非在特殊的情况下,矩阵 $(A_{ij})=\phi_j(t_i)$ 一般是非奇异的,那么这就保证了多数情况下系数矩阵是满秩的。注意到变量 $\boldsymbol{x}$ 本身是n维的(对应n个基函数),而方程组包含的方程有m个(对应,即为一个 $m\times n$ 维的系数矩阵,则有:$m>n \rightarrow$ 通常解不存在(超定)$\rightarrow$ 通常不存在符合要求的插值函数;$m<n \rightarrow$ 解一定不唯一,或者存在许多符合要求的插值函数;$m=n$ 时 $\rightarrow$ 通常存在唯一解,即存在唯一的插值函数。对于单项式基底,非奇异性是几乎必然的。

    问题的条件:

      正如上一段的讨论,在该种计算方法下,矩阵 $(A_{ij})=\phi_j(t_i)$ 从而成为求解叠加系数的线性方程组的系数矩阵,$A$ 的条件数 $cond(A)$ 即为问题的条件数。

     

    3. 数值方法

    基本的多项式函数插值方法大致可以分为两类:

    3.1 全域多项式函数插值

      包括单项式基底插值拉格朗日插值方法(每个离散点取值独立决定一项系数),牛顿插值方法正交多项式基——勒让德多项式基底插值方法切比雪夫多项式基底插值方法。各种方法得到的多项式本质上为全同的多项式,但是各个数值方法的复杂度、条件数不同,操作效果也有差异。

    3.2 分段多项式函数插值

      包括厄米特插值(比如三次厄米特插值),样条插值(k-1阶连续可导的k阶多项式)——三次样条插值B样条插值等。这些方法的复杂度不同,插值效果和全域多项式函数插值结果显然不同,且内部任意的参数变化也可能带来比较大的差异。

      

    转载于:https://www.cnblogs.com/gentle-min-601/p/9743647.html

    展开全文
  • 函数连续性

    千次阅读 2017-12-18 23:56:21
    函数的连续性定义函数的连续性的写法定义...多项式函数连续性有理函数的连续性三角函数的连续性 函数连续的条件 绝对值函数的连续性绝对值函数的连续性例题例题例题例题间断点的分类例题例题 例题例题 例题

    函数的连续性定义

    函数的连续性的写法定义

    单侧连续



    多项式函数的连续性

    有理函数的连续性

    三角函数的连续性


    函数连续的条件




    绝对值函数的连续性

    绝对值函数的连续性

    例题

    例题

    例题

    例题

    image.png

    间断点的分类

    例题

    例题


    例题

    例题


    例题




    展开全文
  • 7 函数连续性

    2017-12-26 05:19:42
    多项式函数连续性 有理函数的连续性 三角函数的连续性 函数连续的条件 绝对值函数的连续性 绝对值函数的连续性 例题 例题 例题 例题 间断点的分类 例题 例题 例题 例题 例题 ...

    函数的连续性定义

    函数的连续性的写法定义

    单侧连续

    多项式函数的连续性

    有理函数的连续性

    三角函数的连续性

    函数连续的条件

    绝对值函数的连续性

    绝对值函数的连续性

    例题

    例题

    例题

    例题

    间断点的分类

    例题

    例题

    例题

    例题

    例题

    转载于:https://juejin.im/post/5a3d160f51882515945ac838

    展开全文
  • 对于[0, 1]区间上任意连续函数 f(x) 和任意正整数n,在n趋于无穷的时候,Bernstein多项式可以一致逼近 f(x)。 Bernstein基函数有很多良好的性质: 非负性 权(和为1) 凸包 逼近结果优秀 当把b(n
  • 勒让德多项式的正交和归一化

    千次阅读 2020-10-13 15:25:41
    翻看数学物理方法教材,发现计算模时用到了勒让德多项式的生成函数,计算方法也不是很直接。 为了方便理清整个计算过程,我们直接从罗德里格斯公式出发并避免使用其它引论: 罗德里格斯公式 勒让德多项式的一个重要...
  • §1.9 函数连续性与间断点 一、函数连续性 1、增量 设变量从它的初值变到终值,终值与初值的差 ,称为变量的增量,记为,即:。 注意: (1)、增量可正亦可负(不要由于名称中的“增”字,而认为)。 (2)、...
  • 由函数在一点连续的定义,不难发现,函数连续的问题仍是一个函数的极限问题,而函数极限的四则运算法则业已证明,因此,我们只要稍加改动,便可将它们移植到函数的连续。很自然地,我们有下述定理: 【定理一】...
  • 本文仅是在下个人理解,如有谬误,望请矫正 ...4 当时,同类型多项式中,极限等于最高次项数的系数比 ,其他项数趋近与0 5 指数形式可化为对数形式 6 两个重要极限 或,用麦克劳林公式可证 7 洛必达 适用于...
  • 亚利桑那泽尼克集'original'= zernfun.m 的原始顺序'default' = '边缘' (UofA) 集 + 更多项zernike_fcn3.m 进行一致检查,为特定排序选择合适的 m & n 值,然后调用 zernfun.m 生成多项式。 使用 zernike_coeffs...
  • [duō xiàng shì]多项式语音编辑锁定讨论上传视频在数学中,由若干个单项式相加组成的代数式叫做...中文名多项式外文名polynomial适用领域应用学科数学定义连续函数多项式定义编辑语音在数学中,多项式(polynom...
  • 多项式函数以其简单的结构和性质在数值逼近中起到重要的作用,多项式的定义是什么?以下是学习啦小编为大家整理的关于多项式的定义,欢迎大家前来阅读!多项式的定义多项式是代数学中的基础概念,是由称为不定元的变量...
  • 它为给定的连续多项式系数创建 Routh-Hurwitz 稳定表。 还提供了三个示例。 此函数不仅适用于数值系数,还适用于符号系数。 但是,程序排除特殊情况,例如,一行的第一个元素为零或任何行中的所有元素都为零。 ...
  • 任务:用MATLAB 语言编写连续函数最佳平方逼近的算法程序(函数式M 文件)。并用此程序进行数值试验,写出计算实习报告。二. 程序功能要求:在书中Page355的程序leastp.m 基础上进行修改,使其更加完善。要求算法程序...
  • 多项式插值

    千次阅读 2015-10-09 15:12:25
    给定n+1n+1个点{(xi,yi)}ni=0\{(x_i,y_i)\}^{n}_{i=0}(称为插值点),所谓多项式插值就是找到一个多项式(称为插值多项式) y=P(x)=akxk+ak−1xk−1+⋯+a1x+a0y=P(x)=a_kx^k+a_{k-1}x^{k-1}+\cdots+a_1x+a_0 使得...
  • 天空一片蔚蓝, 清风添上了浪漫心里那份柔情蜜意, 似海无限———《最爱》...这里的权函数 在区间 是连续且正的以使得下式存在:则多项式多项式 的内积定义为:区间 称为正交区间,正交区间未必是有限区间。例:...
  • 文章目录1.0多项式的定义:1.1问题等价:多项式拟合=关于多项式系数 W 的线性函数的求解1.2问题实质:通过误差函数来对拟合进行评估,并得出最优的多项式系数2.0误差函数的定义2.1误差函数也称为损失函数lost或者...
  • 为了用一种模型实现逼近与插值的统一,在多项式函数空间上构造了含两组参数的混合函数,并由之定义了基于四点分段的多项式曲线和相应的张量积曲面。当参数取特殊值时,新曲线曲面成为三次均匀B样条曲线曲面。除了...
  • 一元多项式运算程序

    2019-11-28 14:00:18
    其中针对多项式的各种操作已经模块化,并且每一个函数的功能都做了非常详细的注释。话不多说,开始讲解代码。 存储结构 链表结点结构体 采用单链表的结点形式来存储多项式的每一个单项式。结构体中定义了单项式的...
  • matlab多项式操作

    千次阅读 2016-08-31 02:01:28
    实例:设计一个函数 poly2str(),实现把一个行向量表示的多项式转换为常见的字符串表 示的多项式, %poly2str.m %把多项式的行向量表示转换为字符串表示 function Y=poly2str(X) %X 是表示一个多项式的向量 %Y ...
  • matlab的多项式基础

    千次阅读 2017-02-16 20:49:23
    本篇文章介绍一些matlab里面关于多项式的一些函数。1. 多项式的表达与创建:在matlab里面,多项式的系数是用一个行向量来储存的,所以多项式的系数为零的项不能省略(这对稀疏多项式的处理不是很便捷)。多项式的...
  • 数值计算——多项式插值

    千次阅读 2017-05-03 21:31:08
    数值计算——多项式插值 插值:用某个函数去拟合给定的数据,该函数在给定的数据点的函数值与数据值相等。在离散数据的基础上补插连续函 数,使得这条连续曲线通过全部给定的...多项式插值:这是最常见的一种函数插值
  • 链表实现两个多项式的加法

    万次阅读 多人点赞 2017-03-07 21:06:51
    最近遇到这样一个题目,使用链表来实现两个多项式的加法,刚开始觉得应该比较简单,也可能是自己基础不扎实吧,这其中也是踩了很多的坑啊,最终还是成功了,特此写博客记录一下。
  • 目的 分析研究推广的 Bernstein多项式连续函数的逼近。方法 运用光滑模和 K-泛函的等价以及 Berens-Lorentz引理。结果 推广了 Bernstein多项式的相应点态和整体的正逆定理。结论 由于 Bernstein多项式的结果是...
  • 二分法求多项式

    2018-06-03 10:42:00
    二分法数学模型--零点存在定理零点存在定理:求已知函数在单调区间内是否存在零点并确定零点值得范围。...7-18 二分法求多项式单根(20 分)二分法求函数根的原理为:如果连续函数f(x)在区间[a,b]的两个端点取...
  • 三次多项式 具有中间点路径的三次多项式轨迹 五次多项式 例子1:简单三次曲线和五次曲线 (a)是三次多项式曲线,已知用户指定初始点和终止点的位置和速度及整个运动时间,则根据公式(7-1)~(7-5)...
  • 经典正交多项式介绍及其应用

    千次阅读 2020-07-11 20:05:26
    定义: 一个多项式序列 ${ {p_n}(x)} _{n = 0}^\infty $,其阶数为 [pn(x)]=n[{p_n}(x)] = n[pn​(x)]=n ,对于每一个 nnn,这个多项式序列在开区间 (a,b)(a,b)(a,b) 上关于权函数 w(x)w(x)w(x) 正交,如果: ...
  • aPC将混沌扩展技术推广到具有任意概率测度的任意分布,该概率测度可以是离散的,连续的或离散的连续的,并且可以解析地(作为概率密度/累积分布函数),数值表示为直方图或原始数据集来指定。 处于有限扩展阶数的...
  • 差值多项式的余项定理

    千次阅读 2017-11-30 21:35:11
    差值多项式的余项定理
  • 计算机图形学--参数三次插值样条曲线参数三次插值样条曲线 三次多项式方程是能表示曲线段的端点通过特定点且在连接处保持位置和斜率的连续性的最低阶次的方程。与更高次的多项式方程相比,三次样条只需要较少的计算...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,803
精华内容 6,321
关键字:

多项式函数的连续性