达美航空

微分起源

被刻印的时光 ゝ 提交于 2019-11-27 10:19:01
http://www.baike.com/wiki/%E5%BE%AE%E5%88%86 http://www.cnblogs.com/hustlzp/archive/2011/09/11/the-framework-of-the-calculus.html 以直代曲,以切线代曲线。 1. 微分由求给定曲线在给定点的切线问题开始的,求切线就是求导,就是得到Δy/Δx的极端值, 算出这个商的最终比。这个最开始研究的时候需要一点点计算出来,首先需要估计出Δy的值,Δy=f(x0+Δx)-f(x0) 要得到Δy/Δx的极端值,假设它有值,值等于A,那么Δy长什么样呢? Δy≈A×Δx,Δy=A×Δx+ο(Δx), ο(Δx)=Δy-A×Δxο(Δx),ο(Δx)大小怎么样呢?它应该是相对于Δy忽略不计的小,很小。伴随着Δx,Δy越来越小,ο(Δx)应该是越来越可以忽略掉了。 ο(Δx)是相比Δx的无穷小量,二者的比值ο(Δx)/Δx会无限接近0,而不是一个绝对值大于0的数,比如ο(Δx)是这样的(Δx)², (Δx)³, ln(Δx), 最精彩的地方是我们把ο(Δx)去掉,正如y=x²,在x=2处的切线,Δx=0.000000000000000001, Δy=4Δx+(Δx)²=0.000000000000000004000000000000000001≈0

姿态控制的ekf预测控制与结算学习

女生的网名这么多〃 提交于 2019-11-27 08:11:35
代码框架篇 代码的主要结构由ekf2_main.cpp, estimator_interface.cpp, 和ekf.cpp,ekf_helper.cpp 互相交互,在加上底层的的一系列处理文件。 事实上,之前花费了一周的时间,画的流程图意义和价值很大,这让我在程序代码分析的时候更加直观 流程图的连接见: https://download.csdn.net/download/weixin_39350416/11546415 接下来我该做什么呢,主要分析一下,updated()函数中的五个步骤 1。 预测状态 2。预测协方差 3。 控制融合模式 4。 运行地形估计 5。计算输出状态(输出状态的论文已经梳理过了,但是程序还需要再仔细琢磨) 然后我们现在从预测状态开始 predictState(); predictCovariance(); 这两个函数的主要任务就是执行主过滤器的状态和协方差预测; controlFusionModes(); 这个函数控制融合观测数据 刚刚把第一个状态预测函数过了下,这个函数在ekf.cpp中 确实是根据δ角度和δ速度,校正当前的角度和速度,然后校正垂直方向的速度,和位置信息。 现在过预测协方差,这个函数在协方差的大文件里,covariance.cpp中 这个预测协方差主要做协方差的计算,但是这个内部协方差是计算还是置位,都是有条件的

「POI2010」Bridges

早过忘川 提交于 2019-11-27 08:11:24
传送门 Luogu团队题链接 解题思路 首先二分答案,然后在所有边权小于二分值的边和所有点组成的图中判欧拉回路。 由于可能出现混合图,所以要用到网络流。 把所有无向边钦定一个方向,那么原图就是一个有向图。 那么存在欧拉回路的充要条件就所有点的入度等于出度且图联通。 我们考虑把点 \(x\) 的入度与出度之差记作 \(\Delta x\) 。 那么对于所有的定向后的无向边 \((u,v)\) ,连一条从 \(u\rightarrow v\) 的容量为 \(1\) 的边。 表示将该条边反向可以使 \(\Delta u += 2,\Delta v -= 2\) 。 然后考虑对于所有度数差小于 \(0\) 的点 \(x\) ,连一条 \(s \rightarrow x\) 的容量为 \(\frac{|\Delta x|}{2}\) 的边。 表示 \(x\) 需要操作这么多次,使得 \(\Delta x\) 达到 \(0\) 。小于零的情况同理。 最后判断是否满流即可。 细节注意事项 细节有点多,要有耐心 参考代码 #include <algorithm> #include <iostream> #include <cstring> #include <cstdlib> #include <cstdio> #include <cctype> #include <cmath> #include

smartJQueryZoom(smartZoom) 存在的兼容性BUG,以及解决方法

这一生的挚爱 提交于 2019-11-27 08:03:05
smartJQueryZoom 是一个很好用的库。 它基于jQuery,可以对某个元素(比如 img)进行渲染,渲染之后可以放大这个区域,在做图片浏览时很好用。 但它有一个兼容性BUG: 当浏览器不是chrome(比如safari)时,放大倍率会出现问题:滚轮滚一下,就直接到了最大倍率。 为了修复这个BUG,我看了一下这个库的源码。 // listening mouse and touch events if(settings.touchEnabled == true) targetElement.bind('touchstart.smartZoom', touchStartHandler); if(settings.mouseEnabled == true){ if(settings.mouseMoveEnabled == true) targetElement.bind('mousedown.smartZoom', mouseDownHandler); if(settings.scrollEnabled == true){ containerDiv.bind('mousewheel.smartZoom', mouseWheelHandler); containerDiv.bind( 'mousewheel.smartZoom DOMMouseScroll.smartZoom',

逼真的HTML5 3D水波动画 可多视角浏览

隐身守侯 提交于 2019-11-27 05:13:53
这是一款基于HTML5的3D水波动画特效,它的效果非常逼真,水池中的石头在水中沉浮,泛起了一层层水波。同时我们可以拖拽鼠标从不同的视角来浏览水池,3D效果非常不错。另外,我们可以按“G”键来让水池中的石头上下浮动,按“L”键添加灯光效果,设计相当完美。同时说明一下,这款3D水波动画是基于WebGL渲染技术的,大家可以了解一下WebGL。 HTML代码 <img id="xneg" src="xneg.jpg"> <img id="xpos" src="xpos.jpg"> <img id="ypos" src="ypos.jpg"> <img id="zneg" src="zneg.jpg"> <img id="zpos" src="zpos.jpg"> JavaScript代码 function Water() { var vertexShader = '\ varying vec2 coord;\ void main() {\ coord = gl_Vertex.xy * 0.5 + 0.5;\ gl_Position = vec4(gl_Vertex.xyz, 1.0);\ }\ '; this.plane = GL.Mesh.plane(); if (!GL.Texture.canUseFloatingPointTextures()) { throw new Error(

Chapter 2. 反向传播

旧时模样 提交于 2019-11-27 05:10:34
前言 BP算法最初在1970年代被提及,主要用于快速计算 代价函数 的 梯度,其核心是代价函数 C C C 关于任意权重 w w w (或偏置 b b b )的偏导数 ∂ C ∂ w \frac {\partial C}{\partial w} ∂ w ∂ C ​ 的表达式,通过改变权重和偏置,从而评估代价函数变化的快慢。 2.1 神经网络中使用矩阵快速计算输出的方法 权重 用 w j k l w_{j_k}^l w j k ​ l ​ 表示从 ( l − 1 ) t h (l-1)^{th} ( l − 1 ) t h 层的 k t h k^{th} k t h 个神经元到 l t h l^{th} l t h 层的 j t h j^{th} j t h 个神经元的连接上的权重。 用 b j l b_j^l b j l ​ 表示在 l t h l^{th} l t h 层第 j t h j^{th} j t h 个神经元的偏置,使用 a j l a^l_j a j l ​ 表示 l t h l^{th} l t h 层第 j t h j^{th} j t h 个神经元的激活值。从而变可以对 l t h l^{th} l t h 层的第 j t h j^{th} j t h 个神经元的激活值 a j l a^l_j a j l ​ 和 ( l − 1 ) t h (l-1)^{th

浅谈玄学算法——模拟退火

十年热恋 提交于 2019-11-27 03:40:42
浅谈玄学算法——模拟退火                                           转载自 洛谷 初级篇 本篇讲解SA的基本概念。 如果您已经了解SA的基本概念,您可以跳过这一段。 简介 模拟退火算法(Simulate Anneal,SA)是一种通用概率演算法,用来在一个大的搜寻空间内找寻命题的最优解。模拟退火是由S.Kirkpatrick, C.D.Gelatt和M.P.Vecchi在1983年所发明的。V.Černý在1985年也独立发明此演算法。模拟退火算法是解决TSP问题的有效方法之一。 模拟退火的出发点是基于物理中固体物质的退火过程与一般组合优化问题之间的相似性。模拟退火算法是一种通用的优化算法,其物理退火过程由加温过程、等温过程、冷却过程这三部分组成。 ——百度百科 简单说,模拟退火是一种随机化算法。当一个问题的方案数量极大(甚至是无穷的)而且不是一个单峰函数时,我们常使用模拟退火求解。 它与爬山算法最大的不同是,在寻找到一个局部最优解时,赋予了它一个跳出去的概率,也就有更大的机会能找到全局最优解。 原理 模拟退火的原理也和金属退火的原理近似:将热力学的理论套用到统计学上,将搜寻空间内每一点想像成空气内的分子;分子的能量,就是它本身的动能;而搜寻空间内的每一点,也像空气分子一样带有“能量”,以表示该点对命题的合适程度

数值计算day8-数值积分

China☆狼群 提交于 2019-11-27 02:24:43
上节课主要介绍了计算微分的几种数值方法,对一阶微分,最简单的莫过于两点前向差分、后向差分和中心差分这三种方法,其中中心差分的精度最高,这三种差分公式都可以通过推导泰勒展开式得到,而通过泰勒展开式还可以推导出三点前向差分和三点后向差分。对二阶微分,则可以推导出三点中心差分、三点前向差分、三点后向差分公式。这些数值方法均可以推广到数值偏微分的领域,且对于两个精度不高的数值算法,还可以使用Richardson外推加速算法得到一个精度更高的算法。本节课主要介绍计算积分的数值方法。 1. 矩形和中点法 区间$[a,b]$上的积分表示的是曲线$f(x) \(在\) [a,b] \(内的面积,若将\) [a,b]$分解为$n$个小区间: \(a=x_0<x_1<\cdots<x_n=b\) ,$J_i=[x_,x_i]$区间内的面积可以估算为一个黎曼和: \(A_i=f(x^*_i)\Delta x_i\) ,其中$x^*_i$表示$J_i$内的某个点, \(\Delta x_i = x_i-x_{i-1}\) ,此时积分即为黎曼求和的极限: \(I(f)=\int^b_{a}f(x)dx=\lim_{n \rightarrow \infty,\Delta x \rightarrow 0}\sum^n_{i=1}f(x^*_i)\Delta x_i\) 其中$\Delta x = \max {

pku 1459 最大流 SAP

被刻印的时光 ゝ 提交于 2019-11-27 00:49:11
#include < iostream > #include < queue > #define msize 205 // 最大顶点数目 // #define INT_MAX 100000000 using namespace std; int d[msize]; // 标号 int r[msize][msize]; // 残留网络,初始为原图 int num[msize]; // num[i]表示标号为i的顶点数有多少 int pre[msize]; int n,m; // m个顶点,n条边,从源点s到汇点t int min( int a, int b) { if (a < b) return a; else return b; } void init( int s, int t) // BFS计算标号,汇点t标号为0 { int k; queue < int > Q; memset(d, 1 , sizeof (d)); memset(num, 0 , sizeof (num)); Q.push(t); d[t] = 0 ; num[ 0 ] = 1 ; while ( ! Q.empty()) { k = Q.front(),Q.pop(); for ( int i = 0 ;i < n + 2 ;i ++ ) { if (d[i] >= n + 2 && r[i][k] >

SAP(最短增广路算法) 最大流模板

断了今生、忘了曾经 提交于 2019-11-27 00:48:55
#include <iostream> #include <queue> #define msize 1024 //最大顶点数目 using namespace std ; int d [ msize ] ; //标号 int r [ msize ] [ msize ] ; //残留网络,初始为原图 int num [ msize ] ; //num[i]表示标号为i的顶点数有多少 int pre [ msize ] ; int n,m,s,t ; //m个顶点,n条边,从源点s到汇点t void ini_d ( ) //BFS计算标号,汇点t标号为0 { int k ; queue < int > Q ; memset ( d, 1 , sizeof ( d ) ) ; memset ( num, 0 , sizeof ( num ) ) ; Q. push ( t ) ; d [ t ] = 0 ; num [ 0 ] = 1 ; while ( ! Q. empty ( ) ) { k = Q. front ( ) ,Q. pop ( ) ; for ( int i = 0 ; i < m ; i ++ ) { if ( d [ i ] >= m && r [ i ] [ k ] > 0 ) { d [ i ] = d [ k ] + 1 ; Q. push ( i ) ;