精华内容
下载资源
问答
  • PAGEPAGE 34连续系统离散化处理的基本方法在数字计算机上对连续系统进行仿真时,首先遇到的问题是如何解决数字计算机在数值及时间上的离散性与被仿真系统数值及时间上的连续性这一基本问题。从根本意义上讲,数字...

    PAGE

    PAGE 34

    连续系统离散化处理的基本方法

    在数字计算机上对连续系统进行仿真时,首先遇到的问题是如何解决数字计算机在数值及时间上的离散性与被仿真系统数值及时间上的连续性这一基本问题。

    从根本意义上讲,数字计算机所进行的数值计算仅仅是“数字”计算,它表示数值的精度受限于字长,这将引入舍入误差;另一方面,这种计算是按指令一步一步进行的,因而,还必须将时间离散化,这样就只能得到离散时间点上系统性能。用数字仿真的方法对微分方程的数值积分是通过某种数值计算方法来实现的。任何一种计算方法都只能是原积分的一种近似。因此,连续系统仿真,从本质上是对原连续系统从时间、数值两个方面对原系统进行离散化,并选择合适的数值计算方法来近似积分运算,由此得到的离散模型来近似原连续模型。如何保证离散模型的计算结果从原理上确能代表原系统的行为,这是连续系统数字仿真首先必须解决的问题。

    设系统模型为:,其中u(t)为输入变量,y(t)为系统变量;令仿真时间间隔为h,离散化后的输入变量为,系统变量为,其中表示t=kh。如果,,即,(对所有k=0,1,2,…),则可认为两模型等价,这称为相似原理(参见图2.1)。

    原连续模型

    原连续模型

    仿真模型

    u(t)

    h

    y(t)

    -

    +

    图2.1 相 似 原 理

    实际上,要完全保证是很困难的。进一步分析离散化引的误差,随着计算机技术的发展,由计算机字长引入的舍入误差可以忽略,关键是数值积分算法,也称为仿真建模方法。相似原理用于仿真时,对仿真建模方法有三个基本要求:

    (1)稳定性:若原连续系统是稳定的,则离散化后得到的仿真模型也应是稳定的。关于稳定性的详细讨论将在2.4节中进行。

    (2)准确性:有不同的准确性评价准则,最基本的准则是:

    绝对误差准则:

    相对误差准则:

    其中? 规定精度的误差量。

    (3)快速性:如前所述,数字仿真是一步一步推进的,即由某一初始值出发,逐步计算,得到,每一步计算所需时间决定了仿真速度。若第k步计算对应的系统时间间隔为计算机由计算需要的时间为Tk,则,若Tk=hk称为实时仿真,Tk?hk称为超实时仿真,而大多数情况是Tk?hk ,对应于离线仿真。

    图2.2数值积分法原理连续系统数字仿真中离散化最基本的算法是数值积分算法。对于形如的系统,已知系统变量的初始条件,现在要求随时间变化的过程计算过程可以这样考虑(参见图2.2):首先求出初始点的,微分方程可以写作:

    图2.2数值积分法原理

    (2.1)

    图2.2所示曲线下的面积就是,由于难以得到f(y,u,t)积分的数值表达式,人们对数值积分方法进行了长期探索,其中欧拉法是最经典的近似方法。

    欧拉法用矩形面积近似表示积分结果,也就是当t=t1时,的近似值为 :

    (2.2)

    重复上述作法,当时

    所以,对任意时刻tk+1,有:

    (2.3)

    令称为第步的计算步距。若积分过程中步距不变,可以证明,欧拉法的截断误差正比于。

    为进一步提高计算精度,人们提出了“梯形法”。 梯形法近似积分形式如式(2.4)所示,令:已知:时的近似值,那么:

    (2.4)

    可见,梯形法是隐函数形式。采用这种积分方法最简单的预报?校正方法是用欧拉法估计初值,用梯形法校正,即:

    (2.5)

    (2.6)

    式(2.6)称作预报公式,采用欧拉法,式(2.5)为校正公式,采用梯形法。用欧拉法估计一次的值,代入校正公式得到的校正值。设?是规定的足够小正整数,称作允许误差,若i=0, i+1=1称作第一次校正;称作第二次校正;通过反复迭代,直到满足,这时是满足误差要求的校正值。

    上述方法是针对(2.3)式所示的微分方程在已知初值情况下进行求解,因此也称为微分方程初值问题数值计算法,为统一起见,本书中称为数值积分法。连续系统数字仿真的离散化方法有两类,它们是数值积分方法和离散相似方法,本文讨论数值积分法。

    数值积分方法采用递推方式进行运算,而采用不同的积分方法会引进不同的计算误差,为了提高计算精度,往往会增加运算量。就同一种积分算法而言,为提高计算精度,减小积分步距,计算量增大,影响系统运算速度。因此,计算精度和速度是连续系统仿真中常迂到的一对矛盾,也是数字仿真中要求解决的问题之一。也就是说,选择合适的算法、合适的软、硬件环境,在保证计算精度的前提下,考虑怎样提

    展开全文
  • 使用pandas实现连续数据的离散化处理方式(分箱操作) 今天小编就为大家分享一篇使用pandas实现连续数据的离散化处理方式(分箱操作),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 Python...

    使用pandas实现连续数据的离散化处理方式(分箱操作)

    今天小编就为大家分享一篇使用pandas实现连续数据的离散化处理方式(分箱操作),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    Python实现连续数据的离散化处理主要基于两个函数,pandas.cut和pandas.qcut,前者根据指定分界点对连续数据进行分箱处理,后者则可以根据指定箱子的数量对连续数据进行等宽分箱处理,所谓等宽指的是每个箱子中的数据量是相同的。

    下面简单介绍一下这两个函数的用法:

    # 导入pandas包
    import pandas as pd
    ages = [20, 22, 25, 27, 21, 23, 37, 31, 61, 45, 41, 32] # 待分箱数据
    bins = [18, 25, 35, 60, 100] # 指定箱子的分界点

    pandas.cut函数 :

    cats1 = pd.cut(ages, bins)
    cats1

    cats1结果:

    [(18, 25], (18, 25], (18, 25], (25, 35], (18, 25], ..., (25, 35], (60, 100], (35, 60],
    (35, 60], (25, 35]]
    Length: 12
    Categories (4, interval[int64]): [(18, 25] < (25, 35] < (35, 60] < (60, 100]]
    # labels参数为False时,返回结果中用不同的整数作为箱子的指示符
    cats2 = pd.cut(ages, bins,labels=False) 
    cats2 # 输出结果中的数字对应着不同的箱子

    cats2结果:

     array([0, 0, 0, 1, 0, 0, 2, 1, 3, 2, 2, 1], dtype=int64)
    pd.value_counts(cats1) # 对不同箱子中的数进行计数

    计数结果:

    (18, 25]  5
    (35, 60]  3
    (25, 35]  3
    (60, 100] 1
    dtype: int64
    pd.cut(ages, [18, 26, 36, 61, 100], right=False) # 指定分箱区间是左闭右开

    改变区间开闭结果:

    [[18, 26), [18, 26), [18, 26), [26, 36), [18, 26), ..., [26, 36), [61, 100), [36, 61),
    [36, 61), [26, 36)]
    Length: 12
    Categories (4, interval[int64]): [[18, 26) < [26, 36) < [36, 61) < [61, 100)]
    # 可以将想要指定给不同箱子的标签传递给labels参数
    group_names = ['Youth', 'YoungAdult', 'MiddleAged', 'Senior']
    cuts3 = pd.cut(ages, bins, labels=group_names) 
    cuts3

    cats3结果:

    [Youth, Youth, Youth, YoungAdult, Youth, ..., YoungAdult, Senior, MiddleAged,
    MiddleAged, YoungAdult]
    Length: 12
    Categories (4, object): [Youth < YoungAdult < MiddleAged < Senior]

    pandas.qcut函数:

    qcats1 = pd.qcut(ages,q=4) # 参数q指定所分箱子的数量
    qcats1

    qcats1结果:

    [(19.999, 22.75], (19.999, 22.75], (22.75, 29.0], (22.75, 29.0], (19.999, 22.75], ...,
    (29.0, 38.0], (38.0, 61.0], (38.0, 61.0], (38.0, 61.0], (29.0, 38.0]]
    Length: 12
    Categories (4, interval[float64]): [(19.999, 22.75] < (22.75, 29.0] < (29.0, 38.0] <
    (38.0, 61.0]]
    qcats1.value_counts() # 从输出结果可以看到每个箱子中的数据量时相同的

    计数结果:

    (19.999, 22.75] 3
    (22.75, 29.0]  3
    (29.0, 38.0]  3
    (38.0, 61.0]  3
    dtype: int64

    ​​​参考:《利用Python进行数据分析》——Wes McKinney 第二版

    展开全文
  • pandas进行数据离散化 list_bins = [0, 100000, 500000, 1000000000000] list_labels = ['小于10', '10到100', '大于100'] df['scale_laber'] = pd.cut(df['amount'], bins=list_bins, labels=list_labels, ...

    pandas进行数据离散化

    list_bins = [0, 100000, 500000, 1000000000000]
                    list_labels = ['小于10', '10到100', '大于100']
                    df['scale_laber'] = pd.cut(df['amount'], bins=list_bins, labels=list_labels, include_lowest=True)
                    sum_ = df.groupby('scale_laber')['amount'].sum().values
                    count_ = df.groupby('scale_laber')['scale_laber'].count().values
                row = {
                    'amount_average': amount_average, 'amount_small': sum_[0], 'amount_middle': sum_[1],
                    'amount_large': sum_[2], 'count_small': count_[0], 'count_middle': count_[1], 'count_large': count_[2],
                    'count_total': count_total}
    
                tocket_datas.append(row)
    
    展开全文
  • 什么叫离散化? 比如给你一个数组 下标 1 2 3 数值 1 5000 2 需要你进行一系列大小比较有关的操作,那么他们的实际大小就不重要了 比如让你求出数组中比1大的元素个数,你知道有两个 那我把5000换成 3,是不是还有2...

    什么叫离散化?
    比如给你一个数组
    下标 1 2 3
    数值 1 5000 2
    需要你进行一系列大小比较有关的操作,那么他们的实际大小就不重要了
    比如让你求出数组中比1大的元素个数,你知道有两个
    那我把5000换成 3,是不是还有2个?
    这个数组中5000就是最大的,如果我的操作不涉及求值,只用比较大小,就像我刚才说的,求出一个数组中比1大的元素个数
    那这个5000换成3 ,换成4 或者把下标为3的那个2换成3,换成4,都是不会改变的。
    而有的操作需要靠数值大小来确定地址,如果你的数值太大,那么这个空间就会造成很大的浪费,所以你就要离散化!
    离散化是啥意思
    我给你操作一下
    1.排序
    新下标 1 2 3
    原下标 1 3 2
    数值 1 2 5000
    2.
    新下标 1 2 3
    原下标 1 3 2
    数值 1 2 3
    ok完成了,这就叫离散化处理,把数组边的好看一点,
    然后还要记住他的下标是多少,一边我们处理,或者找到他真正的值是多少
    这就叫离散化处理!
    当然如果有重复的元素,你就按照问题需要,看看到底是去重还是留着。

    展开全文
  • 离散化的数据处理

    2021-05-21 11:03:08
    离散化的处理注:对数据进行离散化处理的前提是这些数据只于他们的相对大小有关,而不与其具体数值有关,例如排序等。进行离散化的处理其实很简单:为所有巨大的数据从小到大进行编号。例如有6个...
  • #(1000,10) # 使用线性回归训练分箱处理后的数据 Linear_ = LinearRegression().fit(df_x_binned,y) # 对line测试数据集进行预测 y_predict = Linear_.predict(line_binned) # (1000,) 可视化处理: # 使用原始...
  • 文章目录数据离散化和类型 数据离散化和类型 操作数据的逻辑分层,所谓离散化是将无限空间中的有限个体映射到有限空间。数据离散化操作主要在连续数据上执行。处理后,数据值范围分布将从连续属性更改为离散属性。此...
  • 在业务层面一般都会将连续的数据离散化处理,这实质上是一种tradeoff. 在工业界,很少直接将连续值作为逻辑回归模型的特征输入,而是将连续特征离散化为一系列0、1特征交给逻辑回归模型,这样做的优势有以下几点:0...
  • 数据预处理之离散化

    2021-01-20 22:33:09
    下面我将介绍一些对于这些变量进行离散化处理。无序分类变量的离散化方法:比如在泰坦尼克号当中,有一个变量叫做乘客登陆的港口,取值为(C, Q, S)代表三个地方。这是一个典型的无序分类变量,我们在进行数据预处理...
  • 状态空间方程离散化的matlab处理

    千次阅读 2021-04-28 06:10:22
    之前已经简单了解过状态空间方程的离散化方法,对于二阶等效电路模型来讲,由于其本身各个方程之间不是耦合的,所以离散化计算过程并不是十分复杂,很容易就可以得到其状态空间方程的离散形式。但是对于某些状态空间...
  • 高级处理——数据离散化 学习目标 目标 应用cut、qcut实现数据的区间分组 应用get_dummies实现数据的one-hot编码 应用 找出股票的涨跌幅异动(异常)值 1 为什么要离散化 连续属性离散化的目的是为了简化...
  • pandas高级处理-数据离散化 1 为什么要离散化 连续属性离散化的目的是为了简化数据结构,数据离散化技术可以用来减少给定连续属性值的个数。离散化方法经常作为数据挖掘的工具。【简化数据,让数据用起来更加高效...
  • c语言 离散化

    2021-11-14 11:25:13
    离散化在许多题目中可以简化空间的分配方式,降低编程复杂度。现在你得到了一个数组a[],你需要将其离散化得到数组b[],满足对于任意i,j: 若ai=aj,则bi=bj; 若ai>aj,则bi>bj。 除此之外,你还需要保证,...
  • 连续属性离散化就是在数据的取值范围内设定若干个离散的划分点,将取值范围划分为一些离散化的区间,最后用不同的符号或整数值代表落在每个子区间中的数据值。所以,离散化涉及两个子任务:确定分类数以及如何将连续...
  • [数学]偏微分方程的离散化方法4偏微分方程的离散化方法 一、离散化的概念 油藏是非均... 离散化的核心是把整体分成若干单元来处理,而每个小单元的形状是规则的,并可以认为是均质的,从而把形状不规则的非均质的问...
  • 《偏微分方程的离散化方法研究》由会员分享,可在线阅读,更多相关《偏微分方程的离散化方法研究(30页珍藏版)》请在人人文库网上搜索。1、偏微分方程的,一、离散化的概念,油藏是非均质的,岩石和流体性质伴随时间...
  • 一、原理数据离散化(也称,数据分组),指将连续的数据进行分组,使其变为一段离散化的区间。根据离散化过程中是否考虑类别属性,可以将离散化算法分为:有监督算法和无监督算法。事实证明,由于有监督算法充分利用了...
  • '''问题:1、假设DataFrame中有一列名为type,其字段中内容为a,b,c 等用,隔开的值,如:typea,b,ca,f,xb,c,e...统计type中每个类型出现的次数 并绘图'''import pandas as pdimport numpy as npfrom matplotlib import...
  • 连续传递函数离散化

    千次阅读 2021-04-22 05:19:01
    s变换到z变换:command:c2d作用:离散化;其中离散化的方法又有很多:前向差分;后向差分;tustin;零极点匹配;脉冲响应;阶跃响应;下面先说一说各种离散方式的特点:前向差分:方法是用一阶前向差分近似替代微分...
  • Java离散化原理及实现

    2021-02-10 18:11:22
    离散化 当一个数组中的长度很短,但是每个数却非常大,那么就可以使用离散化进行映射关系 例如有一个数组[50,500,900,1500,20000,320000,540000],我们可以找到映射关系来储存这个数组以及对数组的值进行操作 1.先将...
  • “分箱法”相信学过统计学的小伙伴们都不会陌生,它的主要作用就在于对噪音数据进行剔除,同时将连续型数据进行离散处理。在模型分析开始前,我们经常需要使用到分箱法来处理和清洗数据。 作为一款功能全面、专业性...
  • Chimerge算法与matlab代码实现(数据离散化) 1、算法分析 (卡方检验) 是统计样本的实际观测值与理论推断值之间的偏离程度,实际观测值与理论推断值之间的偏离程度就决定卡方值的大小,如果卡方值大则偏差大,反之,...
  • 坐标离散化,实际上就是把较大的稀疏图变得'紧密'一点,让整个图形缩小但是不改变它本身的'结构'其实离散化处理后我们已经不关心每个点的坐标,而是关心这些点或者线之间的关系,比如上述的题目就是让你求区域的个数...
  • 这题状态转移方程很简单,关键是路程范围1e9太大了,必须离散化 离散化之前需要知道一个数学定理: 对于本题来说就是:当两个石子距离超过st时 st后的任意距离都可以到达 证明: 这个数学定理有什么用呢,就是说当...
  • 下题为例:
  • 假如设计好了一个控制器,得到了...我们这里讲的离散化都是借助matlab工具进行的,matlab提供多种离散化的方法; dsys=c2d(sys,ts,’method’); % 传函离散,其中ts表示离散的采样周期,method表示离散的方法;sys表示
  • 转化器(Transformer)用于对数据的处理,例如标准、降维以及特征选择等,提供的函数大致是: fit(x,y):该方法接受输入和标签,计算出数据变换的方式。 transform(x):根据已经计算出的变换方式,返回对输入数据x...
  • 离散化

    2021-06-15 17:27:17
    离散化 1. 离散化原理 原理 一般来说,当数据范围很大,而我们只需要数据的相对顺序时,就可以使用保序离散化。 保序离散化:例如给定我们数据-5, 7, 5211314, -1001, -5,我们可以分为如下几步进行离散化: ...
  • 特征离散化方法

    2021-01-29 09:27:12
    一、为什么要离散化? 1、 算法需要 如决策树是基于离散数据展开的。离散化能减少算法的时间和空降开销,减少数据的噪音,提高分类聚类能力; 2、离散化特征更容易理解,比如,用户在哪个区间表示高收入和低收入。 3...
  • 本文为大家分享了python数据分析数据标准化及离散化的具体内容,供大家参考,具体内容如下标准化1、离差标准化是对原始数据的线性变换,使结果映射到[0,1]区间。方便数据的处理。消除单位影响及变异大小因素影响。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 124,124
精华内容 49,649
关键字:

离散化处理