精华内容
下载资源
问答
  • 展开翻译结果候选单词选择框Shift + Alt + T 翻译并替换Ctrl + Alt + T 将鼠标悬停以翻译所选文本。 可以通过设置来设置翻译的目标语言。 暂时切换到翻译语言,直到关闭工作空间或修改配置。 google-translate....
  • Two-Frame Motion Estimation Based on Polynomial Expansion:基于多项式展开的两帧运动估计 Lucas/Kanade Meets Horn/Schunck: Combining Local and Global Optic Flow Methods:局部与全局光流方法的结合 High ...

    github:https://github.com/MichaelBeechan
    CSDN:https://blog.csdn.net/u011344545

    Two-Frame Motion Estimation Based on Polynomial Expansion:基于多项式展开的两帧运动估计
    Lucas/Kanade Meets Horn/Schunck: Combining Local and Global Optic Flow Methods:局部与全局光流方法的结合
    High Accuracy Optical Flow Estimation Based on a Theory for Warping:基于变分理论的高精度光流估计
    若对你有用,给博主点个赞,顺便打个赏!!灰常感谢(❁´ω`❁)
    三篇论文打包下载地址
    展开全文
  • 我刚开始安装的是版本5.2,后面通过控制面板卸载了该软件,还另外卸载了其包含的组件iWebPDF;后来在安装6.6.2.1新版本的软件时,忘记了关闭杀毒软件avast,结果就报出了RT的错误。 解决方法其实也比较简单,通过...

    我刚开始安装的是版本5.2,后面通过控制面板卸载了该软件,还另外卸载了其包含的组件iWebPDF;后来在安装6.6.2.1新版本的软件时,忘记了关闭杀毒软件avast,结果就报出了RT的错误。

    解决方法其实也比较简单,通过装回旧版本5.2,然后覆盖安装新版本6.6.2.1,就OK了,当然这时要记得事前关闭杀毒软件,随后桌面的快捷方式Logo也能通过刷新手段同步更新过来。

    展开全文
  • 使用RecyclerView实现列表展开动画

    万次阅读 2015-07-24 10:19:51
    Android开发:使用RecyclerView实现列表展开动画效果(翻译+转载)

      昨天想起了公司前一段时间需要实现的一个动效,用listView实现列表item的展开动画。最后由于时间关系,只是实现了展开效果,但是展开的过程中是没有添加动画效果的,整个展开列表是由一种十分生硬的方式直接弹出来的,体验非常不好。本周的工作量不大,就想看一下有没有更好的实现方式,就在网上找了一下,看到了Google提供的RecyclerView,就查了一下相关的资料,看到了一位国外大牛写的用RecyclerView实现的这种效果,就下载源码看了一下,非常简单的实现,但效果很好,就来这里记录一下,防止以后需要的时候找不到。这也是我的第一篇博客,算是翻译+转载了。在这里感谢一下那位大牛。

      好了,不说废话了。使用Google最新的列表控件需要添加一个jar包,我使用的时studio 的开发环境,所以只需要在build.gradle中添加一句代码compile ‘com.android.support:recyclerview-v7:21.+’就可以了。使用eclipse的童鞋可以在网上搜一下相关的jar包,有很多,就不提供下载地址了。

      下面开始上代码。

      首先是列表的item布局,这里只是两个textview,第一个tv是一个标题,也就是运行后界面上始终显示的一个文字;另外的一个textview就是默认隐藏的控件了,点击列表的item的时候隐藏的部分慢慢展开。

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:clickable="true"
        android:orientation="vertical"
        android:paddingBottom="10dp"
        android:paddingEnd="10dp"
        android:paddingLeft="30dp"
        android:paddingRight="10dp"
        android:paddingStart="30dp"
        android:paddingTop="20dp">
    
        <TextView
            android:id="@+id/contactName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:text="Contact name"
            android:textAppearance="?android:attr/textAppearanceLarge"
            tools:ignore="HardcodedText"/>
    
        <TextView
            android:id="@+id/infos"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/lipsum"
            android:textAppearance="?android:attr/textAppearanceMedium"/>
    </LinearLayout>

      activity的界面布局就更简单了,只有一个列表控件。

    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
    
        <android.support.v7.widget.RecyclerView
            android:id="@+id/rv"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scrollbars="vertical" />
    </FrameLayout>

      activity里的代码很少,只有几行,具体内容就看代码里的注释了。

    public class MainActivity extends ActionBarActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main_activity);
    
            // 实例化控件
            final RecyclerView rv = (RecyclerView) findViewById(R.id.rv);
    
            // 设置启动列表的修改动画效果(默认为关闭状态)
            rv.getItemAnimator().setSupportsChangeAnimations(true);
            // 设置动画时长
            rv.getItemAnimator().setChangeDuration(300);
            rv.getItemAnimator().setMoveDuration(300);
    
            // 实现RecyclerView实现竖向列表展示模式
            final LinearLayoutManager layoutManager = new LinearLayoutManager(this);
            rv.setLayoutManager(layoutManager);
    
            // 实例化数据适配器并绑定在控件上
            final MainAdapter adapter = new MainAdapter();
            rv.setAdapter(adapter);
        }
    }
    

      接下来就是最最重要的Adapter类了,之前的操作都和使用ListView差不多,google对RecyclerView的Adapter做了很多优化,让开发者使用起来更加的方便。

    public class MainAdapter extends RecyclerView.Adapter<MainAdapter.MainViewHolder> {
    
        // 为列表提供数据的数据集合
        final String[] contacts = new String[]{
                "Amanda M. Ormond",
                "Anquises Mejia Bustos",
                "Bellisima Goodchild",
                "Bodo Greenhand",
                "Brogan Allan",
                "Claudia Bosch",
                "Elisa Asmara",
                "Emile Barrientos",
                "Ermes Toscano",
                "Guarino Romani",
                "Heike Dresner",
                "Isobel Chamberlain",
                "Ja'rod Kahnrah",
                "Jessica L. Carrillo",
                "Joseph M. Parks",
                "Kabarann D'Ghor",
                "Karol Perea Paredes",
                "Kotkhe Varrin",
                "Kiera Pritchard",
                "Lavinia Sackville-Baggins",
                "Manville Dubois",
                "Marion Deslauriers",
                "Mewael Semere",
                "Negassi Girmay",
                "Numilen Sarabia Solano",
                "Ovidio Colombo",
                "Simone Hahn",
                "Stanley Ross",
                "Spencer Porter",
                "Tekle Ambessa",
                "Yasmin Alexander"
        };
    
        // 列表展开标识
        int opened = -1;
    
        /**
         * 绑定item布局
         * @param parent
         * @param pos
         * @return
         */
        @Override
        public MainViewHolder onCreateViewHolder(ViewGroup parent, int pos) {
            return new MainViewHolder((ViewGroup) LayoutInflater.from(parent.getContext()).inflate(R.layout.main_item, parent, false));
        }
    
        /**
         * 绑定数据到控件
         * @param holder
         * @param pos
         */
        @Override
        public void onBindViewHolder(MainViewHolder holder, int pos) {
            final String contact = contacts[pos];
            holder.bind(pos, contact);
        }
    
        /**
         * 返回列表条数
         * @return
         */
        @Override
        public int getItemCount() {
            return contacts.length;
        }
    
        /**
         * 实例化控件等操作
         */
        public class MainViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
    
            // 标题
            public final TextView contactNameTV;
            // 隐藏的内容
            public final TextView infos;
    
            // 实例化
            public MainViewHolder(ViewGroup itemView) {
                super(itemView);
                contactNameTV = ((TextView) itemView.findViewById(R.id.contactName));
                infos = ((TextView) itemView.findViewById(R.id.infos));
    
                itemView.setOnClickListener(this);
            }
    
            // 此方法实现列表的展开和关闭
            public void bind(int pos, String name) {
                contactNameTV.setText(name);
    
                if (pos == opened)
                    infos.setVisibility(View.VISIBLE);
                else
                    infos.setVisibility(View.GONE);
    
            }
    
            /**
             * 为item添加点击效果
             * (recyclerView是不提供onItemClickListener的。所以列表的点击事件需要我们自己来实现)
             * @param v
             */
            @Override
            public void onClick(View v) {
                if (opened == getPosition()) {
                    opened = -1;
                    notifyItemChanged(getPosition());
                }
                else {
                    int oldOpened = opened;
                    opened = getPosition();
                    notifyItemChanged(oldOpened);
                    notifyItemChanged(opened);
                }
            }
        }
    }

      所有的代码到这里就结束了,再次感谢各位前辈的贡献,让我们的开发之路走得更加顺畅,但路还是要自己来走。

    RecyclerView体验简介 http://blog.iderzheng.com/first-date-with-recyclerview/

    展开全文
  • 文本翻译工具

    2016-01-15 14:35:13
    文本翻译工具,含有代码,主要实现的功能 1、助记符翻译 2、程序地址分配/、 3、Label替换程序地址 4、数据地址替换 5、宏定义的展开
  • 调用:金山翻译,阿里翻译,百度翻译,搜狗翻译,腾讯翻译,彩云小译,DeepL,沪江日语词典等。 搜索包含:知乎,b站,微博,百科,wiki,youtube,twitter等。 设置:展开后,单击“设置”可以调整排序和是否显示。...
  • 泰勒展开

    千次阅读 多人点赞 2020-05-22 23:09:31
    总结一下佩亚诺的思路:首先,他把泰勒展开式中没有写出来的那些项补全,然后,他把这些项之和称为误差项,之后,他想把误差项变为0,考虑到泰勒展开式中的项越来越小,他就让误差项除以最后一项,试图得到0的结果...

    本段的核心思想是仿造。

    当我们想要仿造一个东西的时候,无形之中都会按照上文提到的思路,即先保证大体上相似,再保证局部相似,再保证细节相似,再保证更细微的地方相似……不断地细化下去,无穷次细化以后,仿造的东西将无限接近真品。真假难辨。

    这是每个人都明白的生活经验。

    ===============

    一位物理学家,把这则生活经验应用到他自己的研究中,则会出现下列场景:

    一辆随意行驶的小车,走出了一个很诡异的轨迹曲线:
    在这里插入图片描述
    物理学家觉得这段轨迹很有意思,也想开车走一段一摸一样的轨迹。

    既然是复制,他把刚才关于“仿造”生活经验应用到这里,提出了一个解决办法:

    既然想模仿刚才那辆车,那首先应该保证初始位置一样,

    继续模仿,让车在初始位置的速度也一样,

    不满足,继续细化,这次保持位置、在初始位置处的速度一样的同时,保证在初始位置处车的加速度也一样,
    不满足,继续细化,这次保证初始位置、初始位置处的速度、初始位置处的加速度都一样,也保证初始位置处的加速度的变化率也一样,

    不满足,精益求精,可以一直模仿下去。
    物理学家得出结论:把生活中关于“仿造”的经验运用到运动学问题中,如果想仿造一段曲线,那么首先应该保证曲线的起始点一样,其次保证起始点处位移随时间的变化率一样(速度相同),再次应该保证前两者相等的同时关于时间的二阶变化率一样(加速度相同)……如果随时间每一阶变化率(每一阶导数)都一样,那这俩曲线肯定是完全等价的。

    =================

    一位数学家,泰勒,某天看到一个函数 y = e x \bold{y=e^x} y=ex ,不由地眉头一皱,心里面不断地犯嘀咕:有些函数啊,他就是很恶心,比如这种,还有三角函数,这样的函数本来具有很优秀的品质(可以无限次求导,而且求导还很容易),但是呢,如果是代入数值计算的话,就很难了。比如,看到 y = c o s x \bold{y=cosx} y=cosx 后,我无法很方便地计算 x = 2 \bold{x=2} x=2 时候的值。

    为了避免这种如鲠在喉的感觉,必须得想一个办法让自己避免接触这类函数,即把这类函数替换掉。

    可以根据这类函数的图像,仿造一个图像,与原来的图像相类似,这种行为在数学上叫近似。不扯这个名词。讲讲如何仿造图像。
    他联想到生活中的仿造经验,联想到物理学家考虑运动学问题时的经验,泰勒首先定性地、大概地思考了一下整体思路。(下面这段只需要理解这个大概意思就可以,不用深究。)

    面对 y = c o s x \bold{y=cosx} y=cosx的图像,泰勒的目的是:仿造一段一模一样的曲线 g ( x ) \bold {g(x)} g(x),从而避免余弦计算。
    在这里插入图片描述
    想要复制这段曲线,首先得找一个切入点,可以是这条曲线最左端的点,也可以是最右端的点,anyway,可以是这条线上任何一点。他选了最左边的点。

    由于这段曲线过 ( 0 , 1 ) \bold{(0,1)} (0,1) 这个点,仿造的第一步,就是让仿造的曲线也过这个点,

    完成了仿造的第一步,很粗糙,甚至完全看不出来这俩有什么相似的地方,那就继续细节化。开始考虑曲线的变化趋势,即导数,保证在此处的导数相等。

    经历了第二步,现在起始点相同了,整体变化趋势相近了,可能看起来有那么点意思了。想进一步精确化,应该考虑凹凸性。高中学过:表征图像的凹凸性的参数为“导数的导数”。所以,下一步就让二者的导数的导数相等。

    起始点相同,增减性相同,凹凸性相同后,仿造的函数更像了。如果再继续细化下去,应该会无限接近。所以泰勒认为“仿造一段曲线,要先保证起点相同,再保证在此处导数相同,继续保证在此处的导数的导数相同……

    有了整体思路,泰勒准备动手算一算。

    下面就是严谨的计算了。

    先插一句,泰勒知道想仿造一段曲线,应该首先在原来曲线上随便选一个点开始,但是为了方便计算,泰勒选择从 ( 0 , 1 ) \bold{(0,1)} (0,1)这个点入手。

    把刚才的思路翻译成数学语言,就变成了:

    首先得让其初始值相等,即: g ( 0 ) = f ( 0 ) \boldsymbol{g(0)=f(0)} g(0)=f(0)
    其次,得让这俩函数在x=0处的导数相等,即: g ′ ( 0 ) = f ′ ( 0 ) \boldsymbol{g'(0)=f'(0)} g(0)=f(0)
    再次,得让这俩函数在x=0处的导数的导数相等,即: g ′ ′ ( 0 ) = f ′ ′ ( 0 ) \boldsymbol{g''(0)=f''(0)} g(0)=f(0)
    ……

    最终,得让这俩图像在x=0的导数的导数的导数的……的导数也相同。

    这时候,泰勒思考了两个问题:

    第一个问题,余弦函数能够无限次求导,为了让这两条曲线无限相似,我仿造出来的 g ( x ) \boldsymbol{g(x)} g(x)必须也能够无限次求导,那 g ( x ) \boldsymbol{g(x)} g(x)得是什么样类型的函数呢?

    第二个问题,实际操作过程中,肯定不能无限次求导,只需要求几次,就可以达到我想要的精度。那么,实际过程中应该求几次比较合适呢?

    综合考虑这两个问题以后,泰勒给出了一个比较折中的方法:令 g ( x ) \boldsymbol{g(x)} g(x)为多项式,多项式能求几次导数呢?视情况而定,比如五次多项式 g ( x ) = a x 5 + b x 4 + c x 3 + d x 2 + e x + f \boldsymbol{g(x)=ax^5+bx^4+cx^3+dx^2+ex+f} g(x)=ax5+bx4+cx3+dx2+ex+f,能求5次导,继续求就都是0了,几次多项式就能求几次导数。

    泰勒比我们厉害的地方仅仅在于他想到了把这种生活经验、翻译成数学语言、并运用到仿造函数图像之中。假如告诉你这种思路,静下心来你都能自己推出来。

    泰勒开始计算,一开始也不清楚到底要求几阶导数。为了发现规律,肯定是从最低次开始。

    先算个一阶的。

    在这里插入图片描述

    可以看出,除了在 ( 0 , 1 ) \boldsymbol{(0,1)} (0,1) 这个点,其他的都不重合,不满意。

    再来个二阶的。
    在这里插入图片描述

    可以看出,在 ( 0 , 1 ) \boldsymbol{(0,1)} (0,1) 这个点附近的一个小范围内,二者都比较相近。

    再来个四阶的。

    在这里插入图片描述

    可以看出,仍然是在 ( 0 , 1 ) \boldsymbol{(0,1)} (0,1) 这个点附近的一个范围内二者很相近。只是,此时二者重合的部分扩大了。

    到这里,不光是泰勒,我们普通人也能大概想象得到,如果继续继续提高阶数,相似范围继续扩大,无穷高阶后,整个曲线都无限相似。插个图,利用计算机可以快速实现。

    在这里插入图片描述
    然而泰勒当时没有计算机,他只能手算,他跟我们一样,算到四阶就算不动了,他就开始发呆:刚才为什么这么做来着?哦,对了,是为了计算 c o s 2 \boldsymbol{cos 2} cos2的时候避免出现余弦。所以他从最左端 ( 0 , 1 ) \boldsymbol{(0,1)} (0,1) 处开始计算,算着算着,他没耐心了,可是离着计算 x = 2 \boldsymbol{x=2} x=2 还有一段距离,必须得继续算才能把这俩曲线重合的范围辐射到 x = 2 \boldsymbol{x=2} x=2 处。

    此时,他一拍脑门,恍然大悟,既然我选的点离着我想要的点还远,我为啥不直接选个近点的点呢,反正能从这条曲线上任何一个点作为切入,开始仿造。近了能省很多计算量啊。想计算 c o s 2 \boldsymbol{cos2} cos2,可以从 c o s π 2 \boldsymbol{cos{\pi \over2}} cos2π 处开始仿造啊。
    所以啊,泰勒展开式就是把一个三角函数或者指数函数或者其他比较难缠的函数用多项式替换掉。也就是说,有一个原函数 f ( x ) \boldsymbol{f(x)} f(x) ,我再造一个图像与原函数图像相似的多项式函数 g ( x ) \boldsymbol{g(x)} g(x) ,为了保证相似,我只需要保证这俩函数在某一点的初始值相等,1阶导数相等,2阶导数相等,……n阶导数相等。

    写到这里,你已经理解了泰勒展开式。

    如果能理解,即使你记不住泰勒展开式,你都能自己推导。所以,我建议你,考试之前临时死记硬背一下,即使考试因为紧张忘了,也可以现场推。如果不是为了考试,那记不住也没关系,反正记住了一段时间不用,也会忘。用的时候翻书,找不到书就自己推导。

    继续说泰勒。

    泰勒算到四阶以后就不想算了,所以他想把这种计算过程推广到n阶,算出一个代数式,这样直接代数就可以了。泰勒就开始了下面的推导过程。

    首先要在曲线 f ( x ) \boldsymbol{f(x)} f(x)上任选一个点,为了方便,就选 ( 0 , f ( x ) ) \boldsymbol{(0,f(x))} (0,f(x)),设仿造的曲线的解析式为 g ( x ) \boldsymbol{g(x)} g(x) ,前面说了,仿造的曲线是一个多项式,假设算到n阶。能求n次导数的多项式,其最高次数肯定也为n。所以,仿造的曲线的解析式肯定是这种形式:
    在这里插入图片描述
    前面说过,必须保证初始点相同,即
    在这里插入图片描述,求出了 a 0 a_0 a0
    接下来,必须保证n阶导数依然相等,即
    在这里插入图片描述

    因为对 g ( x ) \boldsymbol{g(x)} g(x)求n阶导数时,只有最后一项为非零值,为 n ! a n \boldsymbol{n!a_n} n!an
    由此求出
    在这里插入图片描述
    求出了 a n \boldsymbol{a_n} an,剩下的只需要按照这个规律换数字即可。

    综上: 在这里插入图片描述

    知道了原理,然后把原理用数学语言描述,只需要两步即可求出以上结果。背不过推一下就行。泰勒推到这里,又想起了自己刚才那个问题:不一定非要从x=0的地方开始,也可以从 在这里插入图片描述开始。此时,只需要将0换成 x 0 \boldsymbol{x_0} x0,然后再按照上面一模一样的过程重新来一遍,最后就能得到如下结果:
    在这里插入图片描述

    泰勒写到这里,长舒一口气,他写下结论:有一条解析式很恶心的曲线 f ( x ) \boldsymbol{f(x)} f(x),我可以用多项式仿造一条曲线 g ( x ) \boldsymbol{g(x)} g(x) ,那么在这里插入图片描述
    泰勒指出:在实际操作过程中,可根据精度要求选择n值,只要n不是正无穷,那么,一定要保留上式中的约等号。若想去掉约等号,可写成下面形式:
    在这里插入图片描述

    好了,泰勒的故事讲完了。其实真正的数学推导只需要两步,困难的是不理解思想。如果背不过,就临时推导,只需要十几二十秒。

    ===============

    泰勒的故事讲完了,但是事情没完,因为泰勒没有告诉你,到底该求导几次。于是,剩下一帮人帮他擦屁股。

    第一个帮他擦屁股的叫佩亚诺。他把上面式子中的省略号中的东西给整出来了。然而最终搁浅了,不太好用。

    后面拉格朗日又跳出来帮佩亚诺擦屁股。至此故事大结局。

    首先讲讲佩亚诺的故事。

    简单回顾一下,上文提到,泰勒想通过一个多项式函数 g ( x ) \boldsymbol{g(x)} g(x)的曲线,把那些看起来很恶心的函数 f ( x ) \boldsymbol{f(x)} f(x) 的曲线给仿造出来。提出了泰勒展开式,也就是下面的第一个式子:
    在这里插入图片描述

    佩亚诺开始思考误差的事。先不说佩亚诺,假如让你思考这个问题,你会有一个怎样的思路?既然是误差,肯定越小越小对吧。所以当我们思考误差的时候,很自然的逻辑就是让这个误差趋近于0。佩亚诺也是这么想的,他的大方向就是令后面这半部分近似等于0,一旦后半部分很接近0了,

    那么就可以省去了,只展开到n阶就可以了,泰勒展开就可以用了。但是他不知道如何做到。

    后来,他又开始琢磨泰勒的整个思路:先保证初始点位置相同,再保证一阶导数相同,有点相似了,再保证二阶导数相同,更细化了,再保证三阶导数相同……突然灵光闪现:**泰勒展开是逐步细化的过程,也就是说,每一项都比前面一项更加精细化(更小)。**举个例子,你想把90斤粮食添到100斤,第一次,添了一大把,变成99斤了,第二次,添了一小把,变成99.9斤了,第三次,添了一小撮,变成99.99斤了……每一次抓的粮食,都比前一次抓的少。泰勒展开式里面也是这样的:在这里插入图片描述
    由此可见,最后一项(n阶)是最小的。皮亚诺心想:**只要让总误差(后面的所有项的总和)比这一项还要小,不就可以把误差忽略了吗?**现在的任务就是比较大小,比较泰勒展开式中的最后一项、与误差项的大小,即:在这里插入图片描述
    如何比较大小?高中生都知道,比较大小无非就是作差或者坐商。不能确定的话,一个个试一下。最终,皮亚诺用的坐商。他用误差项除以泰勒展开中的最小的项,整理后得到:
    在这里插入图片描述
    红框内的部分是可以求出具体数字的。佩亚诺写到这里,偷了个懒,直接令 x \boldsymbol{x} x 趋近于 x 0 \boldsymbol{x_0} x0 ,这样,误差项除以泰勒展开中的最小项不就趋近于0了吗?误差项不就趋近于0了吗?

    我不知道你们看到这里是什么感觉,可能你觉得佩亚诺好棒,也可能觉得,这不糊弄人嘛。

    反正,为了纪念佩亚诺的贡献,大家把上面的误差项成为佩亚诺余项。

    总结一下佩亚诺的思路:首先,他把泰勒展开式中没有写出来的那些项补全,然后,他把这些项之和称为误差项,之后,他想把误差项变为0,考虑到泰勒展开式中的项越来越小,他就让误差项除以最后一项,试图得到0的结果,最后发现,只有 x \boldsymbol{x} x当趋近于 x 0 \boldsymbol{x_0} x0时,这个商才趋近于0,索性就这样了。

    其实整体思路很简单,当初学不会,无非是因为数学语言描述这么个思路会让人很蒙逼。

    佩亚诺的故事讲完了,他本想完善泰勒展开,然而,他的成果只能算 x \boldsymbol{x} x趋近于 x 0 \boldsymbol{x_0} x0 时的情况。这时候,拉格朗日出场了。

    拉格朗日的故事说来话长,从头说起吧。话说有一天,拉格朗日显得无聊,思考了一个特别简单的问题:一辆车,从 S 1 \boldsymbol{S_1} S1处走到 S 2 \boldsymbol{S_2} S2处,中间用了时间 t \boldsymbol{t} t ,那么这辆车的平均速度就是
    在这里插入图片描述
    ,假如有那么一个时刻,这辆车的瞬时速度是小于平均速度 v \boldsymbol{v} v 的,那么,肯定有一个时刻,这辆车的速度是大于平均速度 v \boldsymbol{v} v 的,由于车的速度不能突变,从小于 逐渐变到大于 v \boldsymbol{v} v ,肯定有一个瞬间是等于 v \boldsymbol{v} v 的。就这个问题,我相信在做的大多数,即使小时候没有听说过拉格朗日,也一定能想明白这个问题。拉格朗日的牛逼之处在于,能把生活中的这种小事翻译成数学语言。他把 在这里插入图片描述图像画出来了,高中生都知道,在这个图像中,斜率表征速度:在这里插入图片描述把上面的这个简单的问题用数学语言描述出来,就是那个被拉格朗日了的定理,简称拉格朗日中值定理:有个函数在这里插入图片描述 ,如果在一个范围内连续,可求导,则 在这里插入图片描述

    后来啊,拉格朗日的中值定理被柯西看到了,柯西牛逼啊,天生对于算式敏感。柯西认为,纵坐标是横坐标的函数,那我也可以把横坐标写成一个函数啊,于是他提出了柯西中值定理:在这里插入图片描述

    拉格朗日听说了这事,心里愤愤不平,又觉得很可惜,明明是自己的思路,就差这么一步,就让柯西捡便宜了,不过柯西确实说的有道理。这件事给拉格朗日留下了很深的心理阴影。接下来,拉格朗日开始思考泰勒级数的误差问题,他同佩亚诺一样,只考虑误差部分(见前文)。插一句,各位老铁,接下来拉格朗日的操作绝壁开挂了,我实在是编不出来他的脑回路。首先,跟佩亚诺一样,先把误差项写出来,并设误差项为 在这里插入图片描述在这里插入图片描述

    误差项 中每一项都是俩数的乘积,假如是你,你肯定是想两边同时除掉一个 ,对吧,为了简单,把 在这里插入图片描述 设为在这里插入图片描述 :
    在这里插入图片描述
    所以除过之后,就成了:在这里插入图片描述
    等等,这一串东西看着怎么眼熟?咦?这不是柯西老哥推广的我的中值定理么?剩下的不就是……:
    在这里插入图片描述
    红框中,脑路之清奇、操作之风骚、画风之诡异、场面之震撼,让我们不禁感慨,拉格朗到底日了什么,脑海里才会想到柯西。拉格朗日写到这里卡住了,不知道你们有没有这种经验,反正我思考一道数学题的时候,会尝试着把思路进行到底,直到完全进了死胡同才会否定这种思路。有了前面的脑洞,拉格朗日继续复制这种思路,想看看能不能继续往下写:

    先看分子

    在这里插入图片描述

    再看分母

    在这里插入图片描述

    好巧合,又可以用一次柯西的中值定理了。

    在这里插入图片描述
    总之,按照这种方法,可以一直求解下去,最终的结果就是:
    在这里插入图片描述

    至此,拉格朗日把后面无数多的误差项给整合成了一项,而且比配诺亚更加先进的地方在于,不一定非要让 x \boldsymbol{x} x 趋近于 x 0 \boldsymbol{x_0} x0 ,可以在二者之间的任何一个位置 ξ \boldsymbol{\xi} ξ 处展开,及其好用。

    本文涵盖泰勒展开式、佩亚诺余项、拉格朗日中值定理、柯西中值定理、拉格朗日余项。全文完毕。

    链接:https://www.zhihu.com/question/25627482/answer/313088784
    来源:知乎

    展开全文
  • 翻译如写生

    千次阅读 多人点赞 2019-09-18 11:50:09
    究竟翻译一本书有多少惊天动地,百转千回的故事,倒没有。翻转记忆的胶带:无非是时光顺着书脊蜿蜒、爬升,然后化作蝌蚪,消失在半亩方塘中;无非是凌晨的阳光拖着文字,像一颗胶囊,也像一颗琥珀,凝固在地铁逼仄的...
  • 循环展开技术

    千次阅读 2013-04-26 07:14:33
    循环展开技术转载:http://blog.chinaunix.net/uid-122937-id-2983686.html循环一直令我们头疼,因为循环体内总是隐藏着热点!请读者回顾上一小节中的示例代码。for(i = 0; i temp = temp * (array[i]); } ...
  • 从某国外网站翻译过来的会员登录方式,点击展开折叠,轻巧方便,不占用空间
  • 用户进入一个令人着迷的数字世界,在其中他们可以使用自动实时翻译以十二种语言与他人交谈,并观看他们在虚拟现实中令人眼花rendered乱的对话中的情感内容。 由@ elsa-brown,@ thefishter,@ keziyah和@ssundby...
  • 展开的步骤

    千次阅读 2011-12-21 17:51:49
    展开在预处理中进行,觉得无非就是替换,很简单。最近遇到一个问题,看了一些关于嵌套宏展开的文章,处处皆学问啊! 这三篇是英文的。 The Macro Expansion Process Macro ssession of TheGNU C Preprocessor...
  • Bootstrap Table API 中文版(完整翻译文档)

    万次阅读 多人点赞 2017-09-11 20:20:27
    >Bootstrap table API 中文文档(完整翻译文档) *$('#table').bootstrapTable({}); *看网上有中文版的,但有些就是字面直接译过来了,而且有的就没有翻译,那就打算自己再翻译一遍,每一条会尽 *最大可能结合尽可能...
  • "翻译文学"与"源文"之间的关系类似于"历史文本"与"历史"之间的关系,而"历史文本"与"历史"的差异性和...这样的翻译文学文化批评是从翻译文学史的三个基本要素(译本、译者和翻译事件)展开的,有着鲜明的翻译文学学科意识。
  • 便捷翻译工具-crx插件

    2021-03-22 12:58:46
    一个用于翻译文本的谷歌插件,默认支持英汉互译。 语言翻译器-英文和中文之间的文本翻译,默认情况下已简化。 最重要的功能:—仅一步一步即可翻译文本! (右上角的弹出式翻译对话框!)(默认情况下不会展开!)您...
  • public class MainActivity extends AppCompatActivity implements View.OnClickListener { private int maxLine = 3; private SpannableString elipseString;...//展开的文字 private TextView tv; @Overrid.
  • 调用谷歌翻译类库

    2013-06-20 14:53:42
    C#可以调用的谷歌翻译类库,只实现了简体繁体和英文之间的互相翻译
  • 翻译单元

    千次阅读 2014-10-20 01:10:40
    但是单独的目标文件(翻译单元产生的目标文件)功能也像一个独立的模块,如果一个源文件没有包含其它源文件,内部连接(翻译单元范围)可能被认为是包括所有头文件的文件范围。 4 代码组织 大部分工程的...
  • 翻译助手(chrome 插件) 鼠标滑词或者语句,然后通过快捷键command+e生成中文翻译,提高看英文文档的效率。...快捷键:command + →,展开 Markdown 面板 快捷键:command + ←,收起 Markdown 面板
  • 侧边翻译-crx插件

    2021-03-21 01:42:54
    现在你只需要使用键盘就可以完成翻译选定词、展开查词面板、固定和取消固定翻译结果等操作; * 我们提供了实用的黑名单功能,你可以很方便地将正在浏览的页面添加到黑名单中以禁用该页面上的划词翻译和双击翻译,...
  • 基于多项式展开的两帧运动估计 翻译 Two-Frame Motion Estimation Based on Polynomial Expansion
  • 资源名称:Pro OGRE 3D Programming中文翻译版本0.2.0内容简介: 在具体讨论Ogre3D SDK概念之前,我们先简单介绍一下一些基本的概念,这有助于我们展开具体Ogre3D SDK的讨论。其中最重要的两个概念是API和SDK。 API...
  • 科普丨机器学习翻译和谷歌翻译算法 原2017.08.22人工智能爱好者俱乐部 作者:Daniil Korbut  机器翻译引擎的基本原理 谷歌机器翻译 Zero-shot:零次 Training:训练 Google Neural ...
  • 语法制导的翻译

    万次阅读 多人点赞 2017-11-30 21:32:37
    继词法分析和文法分析之后,本文将介绍使用上下文无关文法来引导对语言的翻译,包括SDD和SDT。
  • 达芬奇手术机器人原文和翻译,机器人技术的研究和应用已经在我国各行各业中逐渐展开 , 而结合了 IT技术和机器人技术的网络机器人 技术在我国机械制造业中的研究和应用尚处于萌芽状态,
  • 汇编指令翻译

    千次阅读 2017-04-07 17:22:51
    汇编语言翻译器  项目上用自定义指令的汇编语言来写硬件驱动,需要将编写的汇编指令转换为机器识别的2进制码。同时,需要检测汇编程序中的错误,并进行统计。  整个翻译器包括获取存储单词,指令检测,翻译和统计...
  • 原生js实现文本内容展开收起 首先我们要先了解单行文本和多行文本超出隐藏的情况,语文水平不过关,直接上代码。 单行文本 overflow:hidden; //溢出隐藏 text-overflow:ellipsis;//超出显示省略号 white-space:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 69,418
精华内容 27,767
关键字:

展开翻译