取什么构造权函数(什么是构造函数法)

http://www.itjxue.com  2023-01-26 00:06  来源:未知  点击次数: 

什么是构造函数

简单地说构造函数是类函数,函数名与类名完全相同,无返回值

构造函数属于类的成员函数,除了具有一般成员函数的特点外,还具有自己的特点:

(1)是类的一个特殊的成员函数,函数名与类名相同;

(2)访问属性应该是public;

(3)功能是初始化对象,在构造函数中一般不作初始化以外的事情;

(4)可以在类内定义,也可在类外定义;

(5)无函数返回类型,注意:什么也不写,也不可写为void;

(6)程序运行时,当对象被创建后,该对象所属的类的构造函数自动被调用,在该对象生存期中也只调用这一次;

(7)可以重载

对于不同指标,权函数也不同,一般要选取什么函数

权函数定义

函数极限存在的条件:

一、单调有界准则。函数在某一点存在极限的必要条件是函数的左极限和右极限在某一点都同等存在。

左右界限不同,或者不存在的话。那么函数在当时极限不存在。也就是说,从左侧求点时的极限值和从右侧求点时的极限值相等。

二、夹逼准则,如果目标的版的数列或函数权比大极限的数列或函数可以有另外的目标,而且数列或函数比小的数列或函数极限可以找到,那么目标的数列或函数是一定会存在极限。

5. 权函数的确定方法

这种方法是根据模糊数学的原理,利用隶属函数进行综合评估。一般步骤为:首先利用隶属函数给定各项指标在闭区间(0,1) 内相应的数值,称为“单因素隶属度”,对各指标作出单项评估。

然后对各单因素隶属度进行加权算术平均,计算综合隶属度,得出综合评估的指标值。其结果越接近0越差,越接近1越好。

数值模拟的计算机方法

有限差分方法(FDM)是计算机数值模拟最早采用的方法,至今仍被广泛运用。该方法将 求解域划分为差分网格,用有限个网格节点代替连续的求解域。有限差分法以Taylor级 数展开等方法,把控制方程中的导数用网格节点上的函数值的差商代替进行离散,从而 建立以网格节点上的值为未知数的代数方程组。该方法是一种直接将微分问题变为代数 问题的近似数值解法,数学概念直观,表达简单,是发展较早且比较成熟的数值方法。 对于有限差分格式,从格式的精度来划分,有一阶格式、二阶格式和高阶格式。从差分 的空间形式来考虑,可分为中心格式和逆风格式。考虑时间因子的影响,差分格式还可 以分为显格式、隐格式、显隐交替格式等。目前常见的差分格式,主要是上述几种形式 的组合,不同的组合构成不同的差分格式。差分方法主要适用于有结构网格,网格的步 长一般根据实际地形的情况和柯朗稳定条件来决定。

构造差分的方法有多种形式,目前主要采用的是泰勒级数展开方法。其基本的差分表达 式主要有三种形式:一阶向前差分、一阶向后差分、一阶中心差分和二阶中心差分等, 其中前两种格式为一阶计算精度,后两种格式为二阶计算精度。通过对时间和空间这几 种不同差分格式的组合,可以组合成不同的差分计算格式。

有限元方法的基础是变分原理和加权余量法,其基本求解思想是把计算域划分为有限个互不重叠的单元,在每个单元内,选择一些合适的节点作为求解函数的插值点,将微分 方程中的变量改写成由各变量或其导数的节点值与所选用的插值函数组成的线性表达式 ,借助于变分原理或加权余量法,将微分方程离散求解。采用不同的权函数和插值函数形式,便构成不同的有限元方法。有限元方法最早应用于结构力学,后来随着计算机的发展慢慢用于流体力学的数值模拟。在有限元方法中,把计算域离散剖分为有限个互不重叠且相互连接的单元,在每个单元内选择基函数,用单元基函数的线形组合来逼近单元中的真解,整个计算域上总体的基函数可以看为由每个单元基函数组成的,则整个计算域内的解可以看作是由所有单元上的近似解构成。在河道数值模拟中,常见的有限元计算方法是由变分法和加权余量法发展而来的里兹法和伽辽金法、最小二乘法等。根据所采用的权函数和插值函数的不同,有限元方法也分为多种计算格式。从权函数的选择来说,有配置法、矩量法、最小二乘法和伽辽金法,从计算单元网格的形状来划分,有三角形网格、四边形网格和多边形 网格,从插值函数的精度来划分,又分为线性插值函数和高次插值函数等。不同的组合 同样构成不同的有限元计算格式。对于权函数,伽辽金(Galerkin)法是将权函数取为逼近函数中的基函数 ;最小二乘法是令权函数等于余量本身,而内积的极小值则为对代求系数的平方误差最小;在配置法中,先在计算域 内选取N个配置点 。令近似解在选定的N个配置点上严格满足微分方程,即在配置点上令方程余量为0。插值函数一般由不同次幂的多项式组成,但也有采用三角函数或指数函数组成的乘积表示,但最常用的多项式插值函数。有限元插值函数分为两大类,一类只要求插值多项式本身在插值点取已知值,称为拉格朗日(Lagrange)多项式插值;另一种不仅要求插值多项式本身,还要求它的导数值在插值点取已知值,称为哈密特(Hermite)多项式插值。单元坐标有笛卡尔直角坐标系和无因次自然坐标,有对称和不对称等。常采用的无因次坐标是一种局部坐标系,它的定义取决于单元的几何形状,一维看作长度比,二维看作面积比,三维看作体积比。在二维有限元中,三角形单元应用的最早,近来四边形等参元的应用也越来越广。对于二维三角形和四边形电源单元,常采用的插值函数为有Lagrange插值直角坐标系中的线性插值函数及二阶或更高阶插值函数、面积坐标系中的线性插值函数、二阶或更高阶插值函数等。

对于有限元方法,其基本思路和解题步骤可归纳为

(1)建立积分方程,根据变分原理或方程余量与权函数正交化原理,建立与微分方程初边值问题等价的积分表达式,这是有限元法的出发点。

(2)区域单元剖分,根据求解区域的形状及实际问题的物理特点,将区域剖分为若干相互连接、不重叠的单元。区域单元划分是采用有限元方法的前期准备工作,这部分工作量比较大,除了给计算单元和节点进行编号和确定相互之间的关系之外,还要表示节点的位置坐标,同时还需要列出自然边界和本质边界的节点序号和相应的边界值。

(3)确定单元基函数,根据单元中节点数目及对近似解精度的要求,选择满足一定插值条 件的插值函数作为单元基函数。有限元方法中的基函数是在单元中选取的,由于各单元 具有规则的几何形状,在选取基函数时可遵循一定的法则。

(4)单元分析:将各个单元中的求解函数用单元基函数的线性组合表达式进行逼近;再将 近似函数代入积分方程,并对单元区域进行积分,可获得含有待定系数(即单元中各节点 的参数值)的代数方程组,称为单元有限元方程。

(5)总体合成:在得出单元有限元方程之后,将区域中所有单元有限元方程按一定法则进 行累加,形成总体有限元方程。

(6)边界条件的处理:一般边界条件有三种形式,分为本质边界条件(狄里克雷边界条件 )、自然边界条件(黎曼边界条件)、混合边界条件(柯西边界条件)。对于自然边界条件, 一般在积分表达式中可自动得到满足。对于本质边界条件和混合边界条件,需按一定法 则对总体有限元方程进行修正满足。

(7)解有限元方程:根据边界条件修正的总体有限元方程组,是含所有待定未知量的封闭 方程组,采用适当的数值计算方法求解,可求得各节点的函数值。

有限体积法(Finite Volume Method)又称为控制体积法。其基本思路是:将计算区域划分为一系列不重复的控制体积,并使每个网格点周围有一个控制体积;将待解的微分方程对每一个控制体积积分,便得出一组离散方程。其中的未知数是网格点上的因变量的数值。为了求出控制体积的积分,必须假定值在网格点之间的变化规律,即假设值的分段的分布的分布剖面。从积分区域的选取方法看来,有限体积法属于加权剩余法中的子区域法;从未知解的近似方法看来,有限体积法属于采用局部近似的离散方法。简言之,子区域法属于有限体积发的基本方法。

有限体积法的基本思路易于理解,并能得出直接的物理解释。离散方程的物理意义,就 是因变量在有限大小的控制体积中的守恒原理,如同微分方程表示因变量在无限小的控 制体积中的守恒原理一样。 限体积法得出的离散方程,要求因变量的积分守恒对任意一组控制体积都得到满足,对整个计算区域,自然也得到满足。这是有限体积法吸引人的优点。有一些离散方法,例如有限差分法,仅当网格极其细密时,离散方程才满足积分守恒;而有限体积法即使在粗网格情况下,也显示出准确的积分守恒。就离散方法而言,有限体积法可视作有限单元法和有限差分法的中间物。有限单元法必须假定值在网格点之间的变化规律(既插值函数),并将其作为近似解。有限差分法只考虑网格点上的数值而不考虑值在网格点之间如何变化。有限体积法只寻求的结点值,这与有限差分法相类似;但有限体积法在寻求控制体积的积分时,必须假定值在网格点之间的分布,这又与有限单元法相类似。在有限体积法中,插值函数只用于计算控制 体积的积分,得出离散方程之后,便可忘掉插值函数;如果需要的话,可以对微分方程 中不同的项采取不同的插值函数。

什么是构造函数?构造函数的作用

C++语言为类提供的构造函数可自动完成对象的初始化任务,全局对象和静态对象的构造函数在main()函数执行之前就被调用,局部静态对象的构造函数是当程序第一次执行到相应语句时才被调用。

构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。

在对象编程语言中,一般在定义了一个类型之后,为了能使用它,必须把这个类型具体化,也就是指定为一个具体的对象。而构造函数就是从定义出发,建立与定义相对应的对象。用计算机语言来说,光有定义是不能使用,必须通过构造函数来分配内存空间给可使用的对象。

第三节 违背基本假设的情况

本节主要包括:

在这里先给大家普及一个单词 aftermath 创伤!真的是,,,学完实变函数心灵受到了极大的创伤,,,

言归正传,接下来的几章我们会说明,在回归的 三大基本假设 不满足的情况下,会有什么解决方案。

还记得回归的三大假设嘛?他们是:

在本章中我们主要研究不满足第二条的情况我们该如何处理。

数学上说就是 。现实中这样的例子也有很多,比方说收入模型,贫穷如我的人整天就会想怎么才能吃饱,就算想买点东西也买不起,穷人之间的购买力差异就很小,而富有的人的话,有的人出手阔绰,有的人比较节约,这就导致了富有的人支出差异很大。在异方差出现的时候,会有很多问题。比方说 参数不再是最佳线性无偏估计(但依然无偏),显著性检验也失效了。所以回归的效果也很不理想 。所以统计学家要想办法去侦测到它,并且努力去消除它。

因为正常情况下, ,所以异方差性是可以通过残差看出来的,这就是残差图检验的由来。

以残差ei为纵坐标,以其他适宜的变量为横坐标画散点图。

常用的横坐标有:

1.拟合值 ;

2.横坐标, ;

3.观测时间或序号.

在 满足假设时 残差图上的n个点散布应是随机的,无任何规律; 存在异方差 时,残差图上的点散布呈现相应的趋势.比方说我的残差长下面这个样子

这种方法简单来说就是计算自变量 与残差绝对值 之间的相关性,看看他们之间有没有什么系统的关系(函数关系)。注意我们采用Spearman 等级相关系数而没有采用 Pearson 简单相关系数,这是因为等级相关系数可以反映非线性相关的情况。

定义:

等级相关系数:

斯皮尔曼检验量:

在做等级相关系数检验之前需要先对模型做一次回归(虽然我们这里已经知道异方差性存在的情况下,回归没啥用了。但是如果你不做回归测试异方差性,你又怎么确定回归没用的呢?)。得到随机误差 的估计值残差 .然后取残差绝对值 ,把 与 都按照从高到低的顺序或者从低到高排序,最后标记二者的排位(就是第几大或者第几小),算出二者等级的对应差值计算出来就是 。比如说一个数据的自变量值 是第8大的,但是它的对应的残差绝对值 是第三大的,那么对应的 。

这个检验量在 的时候是近似服从 t 分布的,因此如果检验量的值 ,就可以认为没有异方差。否则说明 与 之间存在系统关系。

加权最小二乘估计是解决异方差问题的一种办法。还有Box-Cox变换法,等等。

一般来说,在最小二乘回归中,我们实际上就是要最小化 。注意到的是这个和式的每一项的期望都是 (因为异方差性假设存在,所以我们不再使用 )。所以如果某一项方差越大,实际上这一项所占的比重就很大,那么为了最小化我们的离差平方和,就必须要让回归直线“尽量偏向”这个方差很大的数据点。

从这里也可以看出来加权最小二乘法的一个局限性: 照顾小残差项是以牺牲大残差项为代价的。

为了解决这个问题我们把平方和改一下,写成下面的样子:

按照相同的方法回归,可得:

得到啥你自己看书吧-.-!P97 4.5

所以这个回归的关键就是如何选择我们的 。直观上来看,因为每一项的期望是 ,所以!只要让 就可以啦~(让回归直线“尽量偏向”这个方差很大的数据点嘛,方差越大权重就小一点,回归系数就大了)

problem solved~

不好意思没那么简单,理论可行,可是 是啥你不知道啊。所以如果没有电脑,我们一般是通过残差图去“猜测”应该用什么权。比方说如果 与 成正比,那么这个时候可以考虑拿 去作为权函数。实际上我们也是 一般使用类似于 这样的自变量的幂函数来构造权函数 。

如果使用 SPSS 计算就简单多了,通过寻找 m 值使得对数似然函数值最大,具体参见 P98。

多元的情况与一元十分相似,有一个问题就是我们权函数的构造,在一元中我们可以用自变量的幂函数构造。但是多元的情况,如果我们用每一个自变量的幂函数构造,那么对应的计算量可能就是 级别的,所以在多元的情况下我们 一般都只使用其中一个自变量 。所以问题来了,我们用哪一个自变量呢?

这也是有一个法则的,一般来说需要计算每一个自变量 与变通残差( )的等级相关系数(斯皮尔曼等级相关系数),取最大的那个构造即可。

具体的例子见 P103

随机误差项之间存在自相关性 的意思就是 。简单点来说就是误差项之间存在相关关系。

这种自相关包括 一阶自相关 与 多阶自相关 。

这在现实生活中也是很常见的。比如说金融危机一般都是要延后两三年才会有很显著的负面影响。另外时间序列模型本质上也就是一种自相关的模型。

(1)遗漏关键变量;

(2)经济变量的滞后性;

(3)采用错误的回归函数形式;

(4)蛛网现象带来的序列自相关性;

(5)对数据加工整理导致误差项之间产生自相关性。

自相关其实就相当于不满足G-M条件了,如果还是使用普通最小二乘法估计参数就会产生很多问题:

(1)参数估计值不再具有最小方差线性无偏性;

(2)均方误差(MSE)可能严重低估误差项的方差;

(3)容易导致 t 值过高,所以 F 检验、 t 检验就失效了

(4)最小二乘估计量也会对抽样的波动很敏感,意思是说在一些特定的样本中, 虽然无偏,但是估计出来的值 却可能严重与 真实值不同。

(5)预测和分析会带来较大的方差,甚至错误的解释。

这个问题还是挺严重的,下面瞅瞅怎么把这个问题检验出来:

首先直接使用普通最小二乘法估计参数,根据回归残差项 的相关性来判断随机误差项 的序列相关性。一般有两种方法:

可以看出这相当于是说随着时间的推移,残差并不是散乱,而是有序,或者说以一个函数形式出现的。这就说明存在自相关性了。

但是这种定性的分析总是感觉不够精确,所以我们需要更好的方法。

自相关系数说白了就是计算随机误差项之间的相关程度总和的一个量。如果这个量超过了某个数我们就认为这些随机误差项之间有关系,也就是说存在自相关性。

首先给出 误差序列 的系相关系数 定义:

这也是时间序列中一个很重要的统计量。和简单相关系数对比容易得到它的范围是 。

当 接近 -1 时表明误差序列存在负相关,当 接近 1 时表明误差序列存在正相关 。

还是有一个问题就是,误差序列 的真实值是未知的,那么我们就只能使用其估计值:残差 去代替。这就可以得到自相关系数的估计值 。

估计是可以的,但是这样又产生了一个问题,就是这个 作为 的估计值就与样本量有关了(直观来想就是样本量越多估计的越好呗),这就需要构造统计量,做一下显著性检验才能确定自相关性是否存在。一般使用下面的 DW 检验代替对 的检验。

DW (Durbin-Watson)检验其实说白了就是一假设检验。要有假设,需要构造统计量,计算拒绝域,最后根据显著性水平判断。DW 检验是很常用的一种检验自相关的方法。

DW 检验有一定的 使用条件 :

首先需要知道,随机扰动项的一阶自回归形式为:

其中 为自回归系数(数值上等于自相关系数,就是刚刚刚学的自相关系数还记得吗), 是满足 G-M 条件的随机误差项。

为了检验序列相关性,(其实就是检验上面的方程成立) 原假设 是:

构造的 统计量 是:

其中: 是回归估计式的残差 。

接下来的问题就是求拒绝域啦,首先我们来看看 DW 的取值范围:其实只需要将 DW 的分子展开一下就可以得到:

分子的第一项与第二项在 n 比较大的时候几乎是相同的(所以一般来说 DW 检验要求 ),而第三项与分母的比就是我们的 。 所以有 ,换句话说 。 根据以上的分析我们大约知道 DW 的取值范围为 。

因而 DW 值与 的对应关系表如下表所示:

在书上的P109页有一张表。(假装这里有表)

所以 确定拒绝域的方法是:根据样本量 n 和解释变量的数目 k (这里包括常数项)查 DW 分布表,得到临界值 和 ,最后根据计算得到的 DW 值决定模型的自相关状态。 如下图所示:

行,我们费了老大劲把自相关问题检验出来了,下面看看咋处理吧,,,咋整呀,,,

在处理自相关问题的时候需要首先查明自相关产生的原因,我们顺便复习一下 5 点奥(其实我也没记住翻回去看的,逃有几个问题可以直接解决,实在不行咱再想办法:

迭代法的想法就是想办法消掉误差项中相关的那一部分(剩下的不就是不相关的),这样就可以使用普通最小二乘回归啦,最后再把所做的变量替换带回去就可以的。

我们就以一阶自相关来举例:假设我们的模型为:

其中 满足 G-M 条件(期望值相等,相互独立)。

根据这个模型让时间倒退回去一点,就可以得到:

为了消除自相关性,归根结底是要让误差项回到 ,(谁让人家满足G-M条件嘛)

这就需要我们得到 。所以我们来计算

对应的变量做换元就可以可到: 。这个时候可以看出误差项就满足 G-M 条件啦。接下来就对变换后的模型使用普通最小二乘法就可以啦,然后再把变量带回去。

那么这样的方法可以看出如果真的误差项存在一阶自相关的话,那么很明显是有效的。但是实际情况并不总是如此,有时候误差项的自相关阶数是很高的,所以我们的方法是不停的迭代,直到我们的 DW 检验能够说明它没有自相关了为止,可以说是简单粗暴啊。

差分法的适用范围就更窄了,它是适用于原模型存在 较高程度一阶自相关 的情况才可使用。在迭代法的模型中我们设 ,就可以得到一个差分法的模型:( 注意这个模型不带常数项 ,回归直线过原点)

其中 ,

对它做一个回归就可以得到: (注意 t = 2 开始是因为差分肯定只能从第二项开始才会有数据)。

一般来说我们先使用 估计 ,(注意这里的 是自相关系数,而不是普通相关系数),如果 接近 1 就 采用差分法而不使用迭代法 ,这是因为:

有时候数据中会包含一两个极端或异常的观测值,这些数据与其他数据远远分开,会引起较大的残差,影响回归效果(这可不是啥好事儿),所以呢我们就想着怎么把这些害群之马给踢了,一般对于二元三元呢,我们画一个散点图看一下就知道了,但是多元就麻烦了,这家伙,没法儿画啊,你说气不气人,想想有没有啥其他招吧。

一般来说我们会分为 x y 两个维度讨论异常值:

在数据分析中,刚开始总是要看有没有特别特别“高”的点。一般来说会认为残差 超过 的残差的话它就是异常值。但是问题在于,多元回归中 ,其中 为帽子矩阵 的主对角线元素,这也就说明每一个数据点的误差是不相同的。那么单纯的因为它“特别高”就认为数据异常就不合适了。因为这很有可能是残差导致的,换句话说这个数据“特别高”不是因为它异常,而是因为它“就完全有可能这么高”。换句话说,因为误差是每一个数据点的固有性质,所以如果是因为残差特别大,导致某一个数据点像异常值,那么即使你剔除掉这个异常值,也不会对回归有任何帮助。(就是你踢错人了,人家不异常)

那么应该如何去做呢?我们在之前介绍过一个学生化残差

看似通过把杠杆值的影响去除掉可以解决方差不等的问题,但是如果观测数据中真的存在异常值,学生化残差也没有什么卵用。这是因为这个时候,异常值的存在会使得回归线“偏向”它,进而使得回归的标准差 实际上是偏大的。那么这样子的话,实际的学生化残差是偏小的,这就不能使用 的原则来判断残差了。

为了解决异常值的问题,我们需要别的办法。

我们这么构造删除残差:针对第 i 个观测值,我们计算它的残差时,用其余 n-1 个观测值拟合回归方程,计算出第 i 个观测值的删除拟合值 ,那么这个值显然不会受到第 i 个值是否是异常值的影响。所以我们定义 删除残差 为:

进一步:

删除化学生残差为 :

一般来说,认为 的时候就是异常值点。

首先需要知道啥叫强影响点:还是关于残差的方差式 ,可以看出 大的点残差小,因此如果观测值的杠杆值( )大,就会使得回归方程偏移产生影响。所以一般来说 杠杆值大的点我们叫做强影响点 ,注意它不一定是 y 的异常值。

强影响点并不总是 y 值的异常点, 此强影响点并不总会对回归方程造成不良影响 ,但是实际上,强影响点还是很需要被关注的,这是因为:

实际情况是很复杂的,所以一般使用一个粗略的标准,认为 就是异常值, 就是非异常值。

Box-Cox 变换也叫 方差稳定性变换 。这个方法比较特殊,所以把它单独拿出来了,说他特殊是因为它真的太!好!使!了! B-C 变换可以处理异方差、自相关、误差非正态、回归函数非线性等情况。

够狠!

它是对 y 做如下的变换:

在实际应用时,我们一般使用计算机找到一个 使得对数似然函数达到极大,也就是 达到最小即可(具体的推导见 P117)

最后找到最佳的 之后再把方程还原回去。下面举一个特例,考试喜欢这么出一个:

转化为原始变量方程:只需要把 代入,还原为原始方程为:

高中数学6种构造函数法是什么?

1、构造函数的函数名称与类名同名,其他方法(函数)名称可以自定义。

2、构造函数仅在对象被创建时系统会根据给定的参数以及类中的构造函数定义进行选择调用,如果类中没有定义构造函数,系统默认会提供一个无参构造空函数。其他函数根据程序员需要而调用,且必须显式调用。

3、由于对象创建后,系统必须返回新建对象的地址,赋值给指针变量(C++,C#中是将引用赋值给对象变量,其实一样,内部也是对象地址),因此构造函数就不能返回任何类型值,所有带返回值构造函数的定义编译器都不会通过。结果就是构造函数没有也不能有返回类型,而其他函数随意。

扩展资料

构造函数内存机制

在 Java, C# 和 VB .NET 里,构造器会在一种叫做堆的特殊数据结构里创建作为引用类型的实例。值类型(例如 int, double 等等)则会创建在叫做栈的有序数据结构里。

VB .NET and C# 会允许用new来创建值类型的实例。然而在这些语言里,即使使用这种方法创建的对象依然只会在栈里。

(责任编辑:IT教学网)

更多

推荐网页背景文章