数据处理方法和装置与流程

文档序号:12271272阅读:163来源:国知局
数据处理方法和装置与流程

本发明涉及数据处理技术,尤其是一种数据处理方法和装置。



背景技术:

在数据处理过程中,通常需要计算各种函数。对于函数,可以用一个函数的高阶导数在x的取值来在x的一个邻域内逼近这个函数本身,这个逼近的速度是可以描述的泰勒公式。因此,可以采用泰勒展开计算复杂函数。即当函数直接计算有困难时,可以应用泰勒公式展开,用多项式函数去逼近这个复杂函数,以多项式的计算替代复杂函数的计算。泰勒公式是一个用函数在某点的信息描述其附近取值的公式。如果函数足够平滑的话,在已知函数在某一点的各阶导数值的情况之下,泰勒公式可以用这些导数值做系数构建一个多项式来近似函数在这一点的邻域中的值。泰勒公式还给出了这个多项式和实际的函数值之间的偏差。

在实现本发明的过程中,发明人发现,现有技术中对于整数泰勒展开函数的计算通常是比较简单的,但当泰勒展开函数中涉及非整数时,例如:f(x)=ex、f(x)=xa或f(x)=lnx。通过函数直接展开计算将难以实现,需要进行大量的工作。即:对于涉及非整数的函数,在对其进行泰勒展开过程中,其收敛速度很慢,过程复杂。



技术实现要素:

本发明实施例所要解决的一个技术问题是:提供一种应用泰勒展开快速收敛的数据处理方法和装置。

本发明实施例提供的一种数据处理方法,包括:

通过泰勒公式计算函数f(x)时,接收作为x取值的输入数据A;

识别A是否为整数;

若A不是整数,将A分解为整数部分A1和小数部分A2;

针对整数部分A1,查询预先设置的函数结果对照表,获取函数f(x)在x=A1的数值作为第一计算结果,所述函数结果对照表包括所述函数f(x)在x分别为各整数值时对应的数值;针对小数部分A2,通过泰勒公式计算函数f(x)在x=A2的数值,作为第二计算结果;

将第一计算结果与第二计算结果相乘,以获得的乘积作为函数f(x)在x=A的计算结果。

基于上述方法的另一实施例中,还包括:

若A是整数,查询预先设置的函数结果对照表,获取函数f(x)在x=A的数值作为计算结果;

或者,通过泰勒公式计算函数f(x)在x=A的数值作为计算结果。

基于上述方法的另一实施例中,还包括:

预先计算获取分别基于各泰勒公式表示的函数在各整数值处的数值,并存储在所述函数结果对照表中,所述函数结果对照表具体包括x的各整数值与基于各泰勒公式表示的函数的数值之间的对应关系;或者

分别针对基于各泰勒公式表示的函数,预先计算获取函数在各整数值处的数值,并存储在当前函数的函数结果对照表中,所述函数结果对照表具体包括x的各整数值与当前函数的数值之间的对应关系。

基于上述方法的另一实施例中,所述函数包括:

f(x)=ex,或者f(x)=xa,或者f(x)=lnx。

基于上述方法的另一实施例中,f(x)=xa或者f(x)=lnx时,所述输入数据A具体为尾数数据;

所述方法还包括:接收函数f(x)的指数数据B;

所述针对小数部分A2,通过泰勒公式计算函数f(x)在x=A2的数值包括:

识别小数部分A2的取值是否大于预设数值A0;

若小数部分A2的取值大于预设数值A0,通过泰勒公式计算函数f(x)在x=A2的数值时,将泰勒公式中小数部分A2除以2、将指数数据B乘以2,计算f(x)在x=A2的数值;

若小数部分A2的取值不大于预设数值A0,直接针对小数部分A2,通过泰勒公式计算函数f(x)在x=A2的数值。

基于上述方法的另一实施例中,A0的取值为0.5,或者A0的取值为0.33。

根据本发明实施例的另一个方面,提供的一种数据处理装置,包括:

接收单元,用于在所述数据处理装置通过泰勒公式计算函数f(x)时,接收作为x取值的输入数据A;

识别单元,用于识别接收单元接收到的输入数据A是否为整数;

分解单元,用于根据识别单元的识别结果,若A不是整数,将A分解为整数部分A1和小数部分A2;

存储单元,用于存储预先设置的函数结果对照表,所述函数结果对照表包括所述函数f(x)在x分别为各整数值时对应的数值;

查询单元,用于针对整数部分A1,查询函数结果对照表,获取函数f(x)在x=A1的数值作为第一计算结果;

第一计算单元,用于针对小数部分A2,通过泰勒公式计算函数f(x)在x=A2的数值,作为第二计算结果;

第二计算单元,用于将所述第一计算结果与所述第二计算结果相乘,以获得的乘积作为函数f(x)在x=A的计算结果。基于本发明上述实施例提供的数据处理方法和装置,在进行函数计算时,若变量取值为非整数,将此非整数分解为整数部分和小数部分;针对整数部分,查询预先设置的函数结果对照表,获取函数对应该整数的第一计算结果;针对小数部分,通过泰勒公式展开计算数值,作为第二计算结果;将第一计算结果与第二计算结果相乘,作为当前取值的最终计算结果。由于整数部分直接查询函数结果对照表即可获得对应的第一计算结果,而无需进行泰勒公式展开计算,而小数部分的数值小于1,展开到较低的级数时即可收敛,例如,小数部分的数值为0.5时,展开到级数16时获得的计算结果已经接近0,满足收敛条件。因此,本发明实施例相对于现有技术的函数计算方式,提高了收敛速度和数据处理效率,解决了目前对函数进行泰勒公式展开时,对于非整数无法收敛或收敛慢的问题。本发明实施例适用于可采用泰勒公式展开的所有函数。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。

参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:

图1为本发明数据处理方法一个实施例的流程图。

图2为本发明数据处理装置一个实施例的结构示意图。

图3为本发明数据处理装置的另一个实施例的结构示意图。

具体实施方式

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

本发明实施例可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。

计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。

图1为本发明数据处理方法一个实施例的流程图。如图1所示,该实施例方法包括:

S101,通过泰勒公式计算函数f(x)时,接收作为x取值的输入数据A。

S102,识别A是否为整数。

若A不是整数,执行操作S103。否则,不执行本实施例的后续流程。

S103,将A分解为整数部分A1和小数部分A2。

S104,针对整数部分A1,查询预先设置的函数结果对照表,获取函数f(x)在x=A1的数值作为第一计算结果针对小数部分A2,通过泰勒公式计算函数f(x)在x=A2的数值,作为第二计算结果。

其中,函数结果对照表包括函数f(x)在x分别为各整数值时对应的数值。

另外,作为可选实施例,对于整数部分A1,也可以通过泰勒公式计算函数f(x)在x=A1的数值,作为第一计算结果。

对于变量中的整数部分,通过查询函数结果对照表即可得到相应的第一计算结果,而无需计算,相对于通过泰勒公式计算获取第一计算结果的方式,计算速度更快,数据处理效率更高;而单独针对小数部分A2进行泰勒公式展开计算,可以快速收敛,快速得到相应的第二计算结果。

S105,将第一计算结果与第二计算结果相乘,以获得的乘积作为函数f(x)在x=A的计算结果。

上述实施例提供的方法在进行函数计算时,若变量取值为非整数,将此非整数分解为整数部分和小数部分;针对整数部分,查询预先设置的函数结果对照表,获取函数对应该整数的第一计算结果;针对小数部分,通过泰勒公式展开计算数值,作为第二计算结果;将第一计算结果与第二计算结果相乘,作为当前取值的最终计算结果。由于整数部分直接查询函数结果对照表即可获得对应的第一计算结果,而无需进行泰勒公式展开计算,而小数部分的数值小于1,展开到较低的级数时即可收敛,例如,小数部分的数值为0.5时,展开到级数16时获得的计算结果已经接近0,满足收敛条件。因此,本发明实施例相对于现有技术的函数计算方式,提高了收敛速度和数据处理效率,解决了目前对函数进行泰勒公式展开时,对于非整数无法收敛或收敛慢的问题。在基于图1所示方法实施例的另一个实施例中,还可以包括:

若A是整数,查询预先设置的函数结果对照表,获取函数f(x)在x=A的数值作为计算结果;

或者,也可以通过泰勒公式计算函数f(x)在x=A的数值作为计算结果。

通过查询函数结果对照表或泰勒公式展开计算函数的整数取值的具体实现方式,与操作S104中基于整数部分A1进行的操作类似。

作为本发明数据处理方法的又一个实施例,图1所示的实施例中步骤S102也可省略,即:无论x取值的输入数据A是否为整数,都可以直接进入步骤S103,只是当A为整数时,分解得到的小数部分A2为0,对f(0)做泰勒公式展开得到1,将1与整数部分A1的函数结果相乘,得到的最终函数结果与通过示例中A为整数时得到的计算结果相同。

在基于本发明上述方法的再一个实施例中,还可以包括:

预先计算获取分别基于各泰勒公式表示的函数在各整数值处的数值,并存储在函数结果对照表中,此时的函数结果对照表具体包括x的各整数值与基于各泰勒公式表示的函数的数值之间的对应关系,即:该函数结果对照表中包括了所有泰勒公式表示的函数在x取各整数值时的函数值。

此时,在需要对任何泰勒公式展开函数进行整数结果查找时,直接在该函数结果对照表中查找相应函数和x取整数取值时对应的数值,即为第一计算结果。

或者,在基于本发明上述方法的又一个实施例中,还可以包括:

分别针对基于各泰勒公式表示的函数,预先计算获取当前函数在各整数值处的数值,并存储在当前函数的函数结果对照表中,此时的函数结果对照表具体包括x的各整数值与当前函数的数值之间的对应关系,即:每一个函数有一个单独的函数结果对照表,该函数结果对照表中仅包括当前泰勒公式表示的函数在x取各整数值时的函数值。

此时,在需要对泰勒公式展开函数进行整数结果查找时,首先查找该泰勒展开的函数结果对照表,在该函数结果对照表中查找x取整数时对应的数值,即为第一计算结果。

上述实施例提供了两种不同的函数结果对照表以及基于函数结果对照表,在函数结果对照表的设置上、以及查函数结果对照表获得计算结果的过程存在一定差异,但都能达到本实施例方法所需的通过查函数结果对照表即可获得变量取值为整数时的函数计算结果。

本发明各实施例的数据处理方法适用于各种可基于泰勒公式计算的函数的数据处理。例如,在本发明数据处理方法实施例的一个具体示例中,上述函数包括但不限于:

f(x)=ex,或者f(x)=xa,或者f(x)=lnx。

基于本发明实施例的一个具体应用,对于函数f(x)=ex,其泰勒展开公式为:

则基于本发明实施例的数据处理方法对该函数ex进行计算处理的方式如下:

x的取值A为浮点数,在A的取值为非整数时,在计算机进行计算处理时,将A拆分成两个浮点数,整数部分A1和小数部分A2;

对于整数部分A1,查询预先设置的函数结果对照表,获取ex在x=A1的数值作为第一计算结果;对于小数部分A2,通过上述泰勒公式进行计算:

将小数部分A2乘以第一个系数得到第一数值;

将小数部分A2进行平方操作再乘以第二个系数得到第二数值;

将小数部分A2进行三次方操作再乘以第三个系数得到第三数值;

……

以此类推,直到系数接近零时,将得到的第一数值、第二数值、第三数值、…等所有数值进行累加,得到函数在小数部分的第二计算结果;

将第一计算结果与第二计算结果相乘得到函数eA的计算结果。

其中对于乘法的计算可以采用乘法器实现,累加的计算可以通过累加器(加法器)实现。

基于本发明实施例的另一个具体应用,f(x)=xa或者f(x)=lnx时,输入数据A具体为尾数数据;其中尾数在数学里,专门用来指小数点后面的数字。

所述方法还包括:接收函数f(x)的指数数据B;

所述针对小数部分A2,通过泰勒公式计算函数f(x)在x=A2的数值包括:

识别小数部分A2的取值是否大于预设数值A0;

若小数部分A2的取值大于预设数值A0,通过泰勒公式计算函数f(x)在x=A2的数值时,将泰勒公式中小数部分A2除以2、将指数数据B乘以2,计算f(x)在x=A2的数值;

若小数部分A2的取值不大于预设数值A0,直接针对小数部分A2,通过泰勒公式计算函数f(x)在x=A2的数值。

基于本发明实施例的另一个具体应用,对于函数f(x)=xa,其泰勒展开公式为:

则基于本发明实施例的数据处理方法对该函数xa进行计算处理的方式如下:

x的取值A为浮点数,在A的取值为非整数时,,在计算机进行计算处理中,首先获得浮点数A中的指数部分A1和尾数部分A2;

对于指数部分A1,查询预先设置的函数结果对照表,获取xa在x=A1的数值作为第一计算结果;对于尾数部分A2,如果尾数部分A2大于1.33时,将尾数部分A2除以2得到A2/2,同时将指数部分A1加1;

采用1减去A2/2得到一个小于0.33的数记做A3,通过上述泰勒展开公式进行计算:

将A3乘以第一个系数得到第一数值;

将A3平方操作再乘以第二个系数得到第二数值;

将A3进行三次方操作再乘以第三个系数得到第三数值;

……

以此类推,直到系数接近零时,将得到的第一数值、第二数值、第三数值、…等所有数值进行累加,得到函数尾数部分的第二计算结果;

将第一计算结果与第二计算结果相乘得到函数Aa的计算结果。

其中对于乘法的计算可以采用乘法器实现,累加的计算可以通过累加器(加法器)实现。

基于本发明实施例的另一个具体应用,f(x)=lnx,其泰勒展开公式为:

则基于本发明实施例的数据处理方法对该函数lnx进行计算处理的方式如下:

x的取值A为浮点数,在A的取值为非整数时,在计算机进行计算处理中,

首先获得浮点数A中的指数部分A1和尾数部分A2;对于指数部分A1,查询预先设置的函数结果对照表,获取lnx在x=A1的数值作为第一计算结果;对于尾数部分A2,如果尾数部分A2大于1.33时,将尾数部分A2除以2得到A2/2,同时将指数部分A1加1;

采用1减去A2/2得到一个小于0.33的数记做A3,通过上述泰勒展开公式进行计算:

将A3乘以第一个系数得到第一数值;

将A3平方操作再乘以第二个系数得到第二数值;

将A3进行三次方操作再乘以第三个系数得到第三数值;

……

以此类推,直到系数接近零时,将得到的第一数值、第二数值、第三数值、…等所有数值进行累加,得到函数尾数部分的第二计算结果;

将第一计算结果与第二计算结果相乘得到函数lnA的计算结果。

其中对于乘法的计算可以采用乘法器实现,累加的计算可以通过累加器(加法器)实现。

上述另一实施例的一个示例中,A0的取值为0.5,或者A0的取值为0.33。

A0的取值为0.5是为了实现泰勒展开的快速收敛,当泰勒展开函数中的取值为小数时,为了更快的收敛,将其取值控制为小于0.5,进一步,为达到更好的收敛效果,将取值设置在小于0.33。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

图2为本发明数据处理装置一个实施例的结构示意图。该实施例的装置可用于实现本发明上述各方法实施例。如图2所示,该实施例的装置包括

接收单元1,用于在所述数据处理装置通过泰勒公式计算函数f(x)时,接收作为x取值的输入数据A;

识别单元2,用于识别接收单元接收到的输入数据A是否为整数;

分解单元3,用于根据识别单元的识别结果,若A不是整数,将A分解为整数部分A1和小数部分A2;

存储单元4,用于存储预先设置的函数结果对照表,所述函数结果对照表包括所述函数f(x)在x分别为各整数值时对应的数值;

查询单元5,用于针对整数部分A1,查询函数结果对照表,获取函数f(x)在x=A1的数值作为第一计算结果;

第一计算单元6,用于针对小数部分A2,通过泰勒公式计算函数f(x)在x=A2的数值,作为第二计算结果;

第二计算单元7,用于将所述第一计算结果与所述第二计算结果相乘,以获得的乘积作为函数f(x)在x=A的计算结果。

上述实施例提供的装置在进行函数计算时,若变量取值为非整数,将此非整数分解为整数部分和小数部分;针对整数部分,查询预先设置的函数结果对照表,获取函数对应该整数的第一计算结果;针对小数部分,通过泰勒公式展开计算数值,作为第二计算结果;将第一计算结果与第二计算结果相乘,作为当前取值的最终计算结果。由于整数部分直接查询函数结果对照表即可获得对应的第一计算结果,而无需进行泰勒公式展开计算,而小数部分的数值小于1,展开到较低的级数时即可收敛,例如,小数部分的数值为0.5时,展开到级数16时获得的计算结果已经接近0,满足收敛条件。因此,本发明实施例相对于现有技术的函数计算方式,提高了收敛速度和数据处理效率,解决了目前对函数进行泰勒公式展开时,对于非整数无法收敛或收敛慢的问题。在图2所示装置实施例的一个示例中,所述查询单元,还用于根据识别单元2的识别结果,若A是整数,查询预先设置的函数结果对照表,获取函数f(x)在x=A的数值作为计算结果。

在图2所示装置实施例的一个示例中,所述第一计算单元,还用于根据识别单元2的识别结果,若A是整数,通过泰勒公式计算函数f(x)在x=A的数值作为计算结果。

作为本发明数据处理装置的又一实施例,图2所示的实施例中识别单元2也可省略,即:无论x取值的输入数据A是否为整数,都可以直接进入分解单元3,只是当A为整数时,分解得到的小数部分A2为0,对f(0)做泰勒公式展开得到1,将1与整数部分A1的函数结果相乘,得到的最终函数结果与通过示例中A为整数时得到的计算结果相同。

图3位本发明数据处理装置的再一实施例,在如图2所示的实施例的基础上,还包括获取单元8,用于:

计算获取分别基于各泰勒公式表示的函数在各整数值处的数值,并存储在函数结果对照表中,此时的函数结果对照表具体包括x的各整数值与基于各泰勒公式表示的函数的数值之间的对应关系,即:该函数结果对照表中包括了所有泰勒公式表示的函数在x取各整数值时的函数值。

具体的,获取单元8在需要对任何泰勒公式展开函数进行整数结果查找时,直接在该函数结果对照表中查找相应函数和x取整数取值时对应的数值,即为第一计算结果。

或者,在基于本发明上述装置的又一个实施例中,还可以包括:

分别针对基于各泰勒公式表示的函数,计算获取函数在各整数值处的数值,并存储在当前函数的函数结果对照表中,所述函数结果对照表具体包括x的各整数值与当前函数的数值之间的对应关系。

具体的,获取单元8通过将获取的不同种类泰勒展开函数分别存入不同的函数结果对照表,此时的函数结果对照表中包括取值和函数结果,再将所有函数结果对照表存入存储单元4中,即:每一个函数有一个单独的函数结果对照表,该函数结果对照表中仅包括当前泰勒公式表示的函数在x取各整数值时的函数值。在需要对泰勒公式展开函数进行整数结果查找时,首先查找该泰勒展开的函数结果对照表,在该函数结果对照表中查找x取整数时对应的数值,即为第一计算结果。

上述实施例提供了两种不同的函数结果对照表以及基于函数结果对照表,在函数结果对照表的设置上、以及查函数结果对照表获得计算结果的过程存在一定差异,但都能达到本实施例方法所需的通过查函数结果对照表即可获得变量取值为整数时的函数计算结果。

本发明数据处理装置的又一实施例,在上述实施例的基础上,所述函数包括但不限于:

f(x)=ex,或者f(x)=xa,或者f(x)=lnx。在实施例中对函数中变量的取值为浮点数,在具体计算过程中,对于的计算可以通过累加器(加法器)实现,对于乘法的计算可以采用乘法器实现。

上述装置实施例的一个示例中,f(x)=xa或者f(x)=lnx时,其中输入数据A具体为尾数数据;

所述接收单元,还用于接收函数f(x)的指数数据B;

所述第一计算单元,具体用于:

识别小数部分A2的取值是否大于预设数值A0;

若小数部分A2的取值大于预设数值A0,通过泰勒公式计算函数f(x)在x=A2的数值时,将泰勒公式中小数部分A2除以2、将指数数据B乘以2,计算f(x)在x=A2的数值;

若小数部分A2的取值不大于预设数值A0,直接针对小数部分A2,通过泰勒公式计算函数f(x)在x=A2的数值。

上述装置实施例的一个示例中,A0的取值为0.5,或者A0的取值为0.33。

本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

可能以许多方式来实现本发明的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。

本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1