精华内容
下载资源
问答
  • 有关Laplace的部分分式展开法_20151217

    千次阅读 2015-12-18 20:56:05
    原理分析: 例题体会:

    原理分析:
    这里写图片描述
    例题体会:
    这里写图片描述

    展开全文
  • Laplace变换的来源

    千次阅读 2019-03-03 16:28:07
    如泰勒展开,幂级数等等。Laplace 变换就是这样。 A(x)=∑i=1+∞aixiA(x)=\sum_{i=1}^{+ \infty }{a_i}x^iA(x)=∑i=1+∞​ai​xi 一个函数可以用幂级数的方式表达。a1,a2...an{a_1,a_2...a_n}a1​,a2​...an​,每组...

    中心思想

    数学上很多无法直接解决的复杂问题都是通过转换到其他简单的维度上进行解决的。如泰勒展开,幂级数等等。Laplace 变换就是这样。

    A(x)=i=1+aixiA(x)=\sum_{i=1}^{+ \infty }{a_i}x^i

    一个函数可以用幂级数的方式表达。a1,a2...an{a_1,a_2...a_n},每组这样的序列能决定一个函数

    将其推广成一般函数,离散i变成连续的t,

    A(x)=0+xtf(t)dtA(x)=\int_0^{+\infty}x^tf(t)dt

    便为了方便运算

    A(x)=0+(elnx)tf(t)dxA(x)=\int_0^{+\infty}(e^{lnx})^tf(t)dx

    为了方便

    s=lnx-s=lnx

    于是有
    A(x)=0+(es)tf(t)dxA(x)=\int_0^{+\infty}(e^{-s})^tf(t)dx

    接下来关注下取值范围,幂级数在 0<x<1时一定收敛,

    -\infty<lnx<0
    0<s< ++\infty
    定义完毕

    展开全文
  • 本文只实现最简单Laplace形变,按照论文《Laplacian Mesh Processing》进行展开。 github:https://github.com/GaoYuanBob/LaplaceDeformation 注:内容相当容易理解、本文所有讨论都是基于三角形网格模型...

        本文只实现最简单Laplace形变,按照论文《Laplacian Mesh Processing》进行展开。

    github:https://github.com/GaoYuanBob/LaplaceDeformation

    注:内容相当容易理解、本文所有讨论都是基于三角形网格模型( triangular mesh)进行的

        Laplace Deformation中最基础的两个概念就是, global Cartesian coordinates(全局笛卡尔坐标系) 和 differential representations(微分表示)。笛卡尔坐标系不用多讲,就是常见的(X, Y, Z)三个轴表示的坐标信息,而微分坐标(也叫 δ-coordinates)是和 Laplacian operator(Laplace算子) 相关的概念。

        首先,M = (V,E,F) 表示一个网格模型,M 代表 Model,V 代表 Vertices,E 代表 Edges,F 代表 Faces,模型上的每一个点,我们都能得到一个世界坐标 v_i = (x_i, y_i, z_i),接下来定义微分坐标 δ-coordinates,v_i 点的微分坐标表示为 \delta_i ,它表示点的世界坐标和这个点一圈邻接点的世界坐标的加权平均( the center of mass of its immediate neighbors in the mesh),用公式表示更容易理解:

        可以从公式看出来,三个轴上的微分坐标是可以单独计算的。 N(i) 就是点 v_i 的邻接点,也就是公用一条边的点,d_i 是这个点的邻接点的个数,比如周围有5个点,那么这5个点的坐标都对中心点有1/5 的贡献,微分坐标就是点的坐标和这个中心点的坐标的差(其实就是一个向量)。

        这样每个点都这么计算就能计算出每个点的微分坐标了,计算微分坐标的意义在于,Laplace形变认为这个微分坐标能够记录或者说表示模型的局部细节信息,比如鼻子,嘴巴,凸起,凹陷这样的信息,当模型形变后,我们希望模型的局部信息不要被破坏,那么换成坐标的说法就是,模型上点的世界坐标变了,但是我们希望模型上所有点的微分坐标没变,也就是点和点的相对位置关系没变

        一个一个点计算当然可以,但是不好记录和表示,所以Laplace形变用一个Laplace矩阵来记录,我们叫做L,然后用L * V = \delta,来得到Laplace坐标,也就是微分坐标。我们能够得到L:

        其中,D矩阵是一个对角矩阵,D_i_i = d_i ,也就是第 i 个点周围有几个邻居。A 矩阵是邻接矩阵(adjacency):

        这样,左乘上点的坐标的矩阵就可以得到所有点的微分坐标,值得注意的是,这里的V矩阵,可以是 n * 3 大小的(n是点的个数,3表示xyz三个维度),也可以单独计算某一个轴的值,也就是 n * 1 大小。

        上述矩阵就是Laplace矩阵,但是实际使用过程中,我们常常使用等式两边同时左乘D矩阵的结果,L_s = D * L = D - A,也就是:

        可以看到 L_s 矩阵是一个对称矩阵。用19个点的模型进行Laplace形变,矩阵的样子如下所示:

        这样我们可以得到xyz三个分量上的等式,L_s \cdot x = \delta ^(^x^)L_s \cdot y = \delta ^(^y^)L_s \cdot z = \delta ^(^z^)

        这个L_s 矩阵被称为  topological (or graph) Laplacian of the mesh,不知道怎么翻译比较好,就直接放英文吧。

        论文原文中有专门证明为什么这个向量可以近似表示模型的局部信息,不过和实现没有什么关系这里就不放了。

        上述公式中的权重是可以变得,每个点的权重按理说肯定应该不一样的, 最常用的是用cotangent加权,比如下图中 v_j 点的权重可以用两个角的cot的平均 \frac{1}{2}(cot \alpha _i_j + cot\beta _i_j) 来计算。数学上应该可以证明,这样的计算方式下,所有邻接点的权重的和还是1。当然也有更多种权重设置方式,比如 w_i_j = \frac{tan(\theta _{ij}^{1}/2) + tan(\theta _{ij}^{2}/2)}{||v_i - v_j||}

        这里只不过是权重的计算方式更加复杂,实现的流程上并没有什么区别,所以方便起见本文只描述用统一权重的加权方式来计算的流程。

        论文中和网上的教程中一直讲,因为这个矩阵不可逆,不能通过 x = L^-^1 \cdot \delta ^(^x^) 来计算坐标,所以需要增加锚点(anchors)来让矩阵可逆。这里我看了两天才明白,但还是不认为是这个原因才需要增加锚点,我觉得就是因为形变需要有控制点这种东西,所以在矩阵中增加锚点信息。也就是说,一个mesh,肯定有点移动了,才发生的laplace形变,不然形变个鬼啊。所以这些移动了的点形变过程中保证不动的点,成为锚点,因为它们属于我们不需要计算坐标的点,因为我们已经知道了。

        这样一下就好解释了,我们知道mesh模型形变前的所有点的坐标,以及形变后的一部分点(锚点)的坐标,通过所有点的Laplace坐标不变这一个限定条件,来计算线性方程组,得到所有点新坐标,对除锚点以外的点的坐标进行更新,就完成了Laplace 形变,就这么简单。网上很多教程讲得非常麻烦还没逻辑,搞得我第一次看都看懵了。

        在矩阵中添加锚点的方式是。在等式 L_s \cdot x = D \cdot \delta ^(^x^) 左边的 L_s 下方添加 anc 行(anc是锚点数量),每一行都是只有一个位置是1(或者非0),其他位置全是0,这个点的索引是几,那个位置上的值就是非0,这个非0值代表这个锚点的权重

        用论文中的例子来说明,下图中的mesh模型,红色点为锚点,第一个矩阵就是没有添加锚点信息的矩阵,第二个矩阵就是添加了锚点信息的矩阵,每个锚点权重都是1。(看懂下边三个图,Laplace Deformation 就完事了)

        左边的矩阵添加了 anc 行,右边的矩阵肯定也要加 anc 行。这 anc 的目的就是告诉等式,这些锚点在形变后的坐标是多少,这样能够计算弄出其他点的位移。也就是等式变成了如下形式:\

        I_m \times _m 是m行的单位矩阵,m就是上文说道的anc,右边的c就是锚点坐标。

        简写一下就是 \widetilde{L} \cdot \widetilde{x} = b (b可以是向量,也可以是(m + n) * 3大小的矩阵)。要求的就是 \widetilde{x} (\widetilde{x}是所有点的坐标,但是我们只需要更新不是锚点的点的坐标)。

        补充说明一点,就是锚点的数量的决定是有最低限要求的,一个完全联通的mesh是最少需要一个锚点的,数学上可以证明。不过锚点的数目多,对形变的控制性更强,不会出现很奇怪的情况。

        由于左边的 \widetilde{L} 是m*n的,不可逆,所以需要乘上转置,转成方阵再求逆,也就是 \widetilde{x} = (\widetilde{L}^{T} \cdot \widetilde{L})^{-1} \cdot \widetilde{L}^{T} \cdot b 。

        我是用VS2015上对MeshLab2016的源码进行编写的,添加了Laplace形变的功能,使用的是C++,以及VCG库里边的Eigen矩阵库。使用Eigen库很容易实现,用 MatrixXf 声明矩阵,用 VectorXf 声明向量,然后用三个 VectorXf 向量接收三个轴的所有点的坐标即可。10k+个点(共3个锚点)的话9分钟完成,实在是有点慢。

     

        可以看出来我这种实现方式,没有保持原有的体积,或者说这种laplacian deformation是对旋转不可靠的。有一种比较可靠的方式就是上图的Volumetric Laplacian Defroamation。 

        论文里对这个过程提到了加速的方式。因为数学上可以证明,矩阵 M = \widetilde{L}^{T} \cdot \widetilde{L} 是一个稀疏的正定矩阵(sparse and positive definite),所以可以计算它的cholesky分解 sparse Cholesky factorization,M = R^T \cdot R,R是上三角或者下三角的系数矩阵,这样计算能够省略很多重复的计算。论文中使用的是 TAUCS 这个库,研究了一下发现和Eigen好像差不多,而且Eigen接口更好用,MeshLab2016也是用的VCG的库,所以直接就用了Eigen库的里边的cholesky分解来求线性方程组。

        也就是求 Ax = b 这个线性方程组的时候,使用cholesky分解(LU三角分解法的变形)进行加速。

        比如我们要得到的所有点坐标是 Eigen::VectorXf v_new,A 是 MatrixXf 类型的矩阵(就是上文的M),b 就是上文添加了锚点信息的b。那么直接 v_new = M.llt().solve(b); 就可以了。v_new 的大小都不需要手动设定。这种加速方式下,10k个点2分钟多一点完成形变,但是论文中提到的是10s不到就可以结束,可能还是TAUCS库更快?

        Eigen库中还有其他的解线性方程组的方法,如下图(来源 https://www.cnblogs.com/python27/p/EigenQuickRef.html ):

        总结来说,对一个mesh模型进行Laplace Deformation的流程就是:

        1、计算所有点邻接点的权重;

        2、通过权重得到Laplace矩阵

        3、通过Laplace矩阵(方阵)计算所有点的Laplace \delta坐标;

        4、选择锚点,记录所有锚点的索引值,以及形变后的坐标值;

        5、对Laplace矩阵添加锚点信息,得到矩阵 A。添加的每行都是(0 0 0 0 \omega _i 0 0 0)这样的,\omega _i 为这个锚点的权重,\omega _i 所在的列数为锚点的索引数,比如第3个点(从0开始),就应该第2列为非0,其余位置为0;

        6、对右侧\delta坐标的矩阵或向量添加锚点信息,得到矩阵 b。如果是每个轴单独计算,则就是按照上一步添加锚点信息的顺序一次添加,填写的是锚点移动后的坐标,比如移动后为(1, 2, 3),如果指计算x轴,那么在向量后边加上1即可,如果三个轴一起计算,那就再b矩阵下边添加一行(1, 2, 3)即可;

        7、用Cholesky分解法加速求解 Ax = b 这个线性方程组;

        8、由于记录了锚点的索引值,所以遍历所有点,对不是锚点的点,用上一步得到的坐标进行位置的更新即可。

        所以说,比较重要的就是,邻接点的权重的计算方式以及计算,锚点的索引和形变后的坐标值。

        这只是简单的Laplace形变,不过更高级的Laplace形变也都是在这个基础上的,区别不大。

        接下来还会在写一份完整的代码流程以及结果展示的总结。

    展开全文
  • 在研究中,复杂的几何域是凹形的几何图案。 由于对称性,在研究中计算了几何图案的... 并通过特征函数展开和点匹配法解决了该问题。 此外,Visual C ++有助于获得数值计算的结果。 该研究还讨论了函数的局部值和均值。
  • 提出了基于密度函数的傅里叶余弦级数展开的总效率损失的估计,以量化使用MEEL方法时的效率损失。 建议用罚函数法对MEEL方法进行数值实现。 通过使用基于模型生成函数而不是LT的约束,可以轻松地将这些方法修改为在...
  • 在训练的时候假设x的所有特征是相互独立的,所以p(x|y) = 所有p(xi | y) 的乘积 只要通过贝叶斯展开+有xi独立 就能得到 这个模型里的参数就是,给定y这个条件下,生成某个特征xi的概率(),以及y本身的分布(使用中心...

    朴素贝叶斯分类是一种生成式分类

    p(y|x) = p(y,x) / p(x)
    =p(x|y) * p(y) | p(x)
    在训练的时候假设x的所有特征是相互独立的,所以p(x|y) = 所有p(xi | y) 的乘积 只要通过贝叶斯展开+有xi独立 就能得到
    这个模型里的参数就是,给定y这个条件下,生成某个特征xi的概率(),以及y本身的分布(使用中心极限定理得到均值就能作为估计)

    这里存在一个问题,就是如果在所有样本里,某个特征xi没出现过,那么根据中心极限定理得到均值就是0
    那么最后的乘积就是0

    这个结果对于实际来说不太合理,对于训练样本中没出现过的特征,实际的测试的时候,也是有可能出现

    所以需要做 拉普拉斯平滑

    就是在用中心极限定理得到均值 的时候 分子分母同时加上一个数,这样每个特征的条件概率肯定不为0了
    一般分子加1,分母加的是 分类数

    转载于:https://www.cnblogs.com/brainstorm/p/8888549.html

    展开全文
  • 2,3阶行列式的对角线法则,4阶以上(含4阶)是没有...解高阶行列式的方法 一般有用性质化上(下)三角形,上(下)斜三角形,箭形(爪形)按行列展开定理Laplace展开定理加边法递归关系法归纳法特殊行列式(如Vandermonde行列式)...
  • 我们以Baikov表示形式提供了一个显式生成的解决方案集,该解决方案对从Gram行列式的Laplace展开获得的任意数量的循环和外部动量都有效。 我们提供严格的数学证明,证明这套解决方案是完整的。 该证明将所讨论的对数...
  • 本文其实是为了我本人复习而用,想来想去做题复习没有多少意思,所以写了一个专栏...最后,什么是Laplace展开与Binet-Cauchy定理?如果有错误,很开心能由更专业的你们所指出,因为我也就是一个对专业知识了解得不能...
  • 用MATLAB进行部分分式展开

    万次阅读 2015-11-14 14:29:39
    为了方便LAPLACE反变换,先对F(s)进行部分分式展开。根据F(s)分为具有不同极点的部分分式展开和具有多重极点的部分分式展开。分别讨论。  不同极点的部分分式展开:  F(s)=B(s)/A(s)=num/den=(b0*s^n+b1*s^(n-1)...
  • 2.4 Laplace展开 2.5 Cramer法则与矩阵乘法 2.6矩阵的乘积与行列式 2.7行列式的计算 习题2 第3章线性方程组 3.1 Gauss消元法 3.2方程组与矩阵的秩 3.3行向量空间和列向量空间 3.4矩阵的行秩和列秩 3.5线性方程组解的...
  • 信号与系统复频域分析利用MATLAB进行部分分式展开例6-1部分分式展开法求F(s)的反变换利用MATLAB分析LTI系统的特性例6-2画出H(s)零极点并判断稳定性利用MATLAB 进行 Laplace 正、反变换例6-3Laplace正反变换离散系统...
  • 饱和土中圆柱形衬砌对瞬态弹性波的散射,高盟,高广运,基于Biot波动理论, 运用Laplace变换和波函数展开法, 得到瞬态弹性波入射条件下, 饱和土体及衬砌的位移应力表达式。利用饱和土体与衬砌�
  • 实验八、连续系统的复频域分析一、实验目的二、实验器材三、实验原理1、用MATLAB进行Laplace正、反变换例1:分别用Laplace和ilaplace函数求2、用MATLAB进行部分分式展开3、用MATLAB分析LTI系统的特性三、实验内容1、...
  • 并在此基础上,建立了计算含三角函数无穷积分的新方法,第十一章至第十六章讨论的是积分变换,介绍了有关Fourier变换和Laplace变换的一些理论问题,书中还介绍了Mellin变换,它与Fourier变换或Laplace变换密切相关,...
  • 拉普拉斯变换(Laplace transform)属于线性变换,是在控制领域绕不过去的积分变换。同时拉普拉斯变换与傅里叶变换也存在着绕不过去的关系。 傅里叶变换、傅里叶级数 傅里叶级数针对周期函数,傅里叶变换是针对非...
  • 广东技术师范学院实验报告 实验 三 项目名称 利用 MATLAB 分析连续系统及离散系统的复频域特性 一实验目的 掌握 Laplace 变换的意义基本性质及应用 掌握拉普拉斯变换的三维可视化表示 理解系统函数的零极点分布 (极...
  • 掌握 Laplace 变换的意义基本性质及应用 2.掌握拉普拉斯变换的三维可视化表示 3.理解系统函数的零极点分布 (极零图 )决定系统时间原函数的特性 4.掌握系统冲激响应 5. H (z)部分分式展开的 MA TLAB 实现 6. H (z) 的...
  • 特殊函数概论

    2019-04-04 18:02:12
    1.9 拉普拉斯(Laplace)积分的渐近展开.瓦特孙(Watson)引理 1.10 用正交函数组展开 习题 第二章 二阶线性常微分方程 2.1 二阶线性常微分方程的奇点 2.2 方程常点邻域内的解 2.3 方程奇点邻域内的解 2.4 正则解....
  • 掌握Laplace变换地意义基本性质及应用 . 2?掌握拉普拉斯变换地三维可视化表示 ? 3?理解系统函数地零极点分布 (极零图)决定系统时间原函数地特性? 掌握系统冲激响应. H(z)部分分式展开地 MATLAB实现 H(z)地零极点与...
  • 掌握 Laplace 变换地意义基本性质及应用. 2.掌握拉普拉斯变换地三维可视化表示. 3.理解系统函数地零极点分布(极零图)决定系统时间原函数地特性. 4.掌握系统冲激响应. 5. H(z)部分分式展开地MATLAB 实现 6. H(z)地零...
  • Laplace?变换地意义基本性质及应用. 2.掌握拉普拉斯变换地三维可视化表示. 3.理解系统函数地零极点分布(极零图)决定系统时间原函数地特性. 4.掌握系统冲激响应. 5?H(z)部分分式展开地?MATLAB?实现 6?H(z)地零极点与...
  • 波动函数展开法和共形映射法用于解决纳米尺度下不规则形腔周围的动应力集中因子问题。 通过使用广义的Young-Laplace方程获得表面上的应力边界条件。 结果表明,应力集中程度随着曲率的增加而变得更加明显。 以椭圆...
  • 我们给出了任意数量的外部状态的生成函数的一阶Cauchy-Riemann方程和二阶Laplace方程。 这种环面积分的低能膨胀引入了无穷大的非全同性模块化形式,称为模块化图形式。 我们的结果为任意此类模块化图形形式生成了...
  • 一、 学习内容及要求 ...线性代数学习笔记——第十五讲——行列式按行(列)展开 线性代数学习笔记——第十六讲——行列式的计算 线性代数学习笔记——第十七讲——伴随矩阵与逆矩阵 线性代数学习笔记—...
  • 整个图谱理论都是围绕着图的拉普拉斯矩阵为核心进行展开的,其中很多人会有疑问,为什么图的拉普拉斯矩阵的定义为 ?这里先介绍梯度的概念:梯度:表示一个函数在某一点的方向导数沿该方向取得最大值,假设一个函数 ...
  • 展开全部设抄IF表示傅立叶逆变换,则因此有袭故频域卷积定2113理5261得证。4102扩展资料频域卷积定理频域卷积定理表明两信号1653在时域的乘积对应于这两个信号傅立叶变换的卷积除以2π。卷积定理揭示了时间域与频率...
  • 以下列举的内容不包含中文出版格式方面的错误,只包含数学层面的错误以及叙述或论述中的不当之处。 ...欢迎大家多多指正!...第31页, 例1.37, 证明的第3行: 用Laplace定理按第一、第二列展开即得. 第45页...
  • 小波系数

    2016-05-28 12:21:00
    1. 求小波变化系数时a b怎么取? 小波变换的概念是由法国...正如1807年法国的热学工程师J.B.J.Fourier提出任一函数都能展开成三角函数的无穷级数的创新概念未能得到数学家J.L.Lagrange,P.S.Laplace以及A.M.Legend...
  • 第1章 信号与系统 ...The Laplace Transform 第10章 Z变换 The ZTransf01TII 第11章 线性反馈系统 Linear Feedback Systems 附录 部分分式展开 Partial-Fraction Expansion 参考文献 Bibliography 习题答案 Answers

空空如也

空空如也

1 2
收藏数 37
精华内容 14
关键字:

laplace展开