高等数学的奇技淫巧
Common Sense
绝对值不等式
画图理解 画图理解
有理多项式
1. 方程的解
奇数次多项式必然有奇数个零点,至少有1个零点(无穷异号、零点定理)。
若有偶数个零点,多项式必然可以拆出偶数+奇数项,奇数项本身会带零点,因此,零点只能为奇数个。
2. 提取公因式
如:
三角函数
特别的,假如在[0,]积分令t=,上下限都是0无法得到结果,因此必须经过上述恒等变换来解决。
函数 极限 连续
无穷小性质:
1 有限个无穷小的和仍是无穷小。
2 有限个无穷小的积仍是无穷小。
3 无穷小量和有界变量的积仍是无穷小。
无穷大量性质
1 两个无穷大量的积仍为无穷大量。
2 无穷大量与有界变量之和仍为无穷大量。
3 无穷大量和非零常数的积仍为无穷大量。
注: 1 有限个无穷大量之和不一定为无穷大量。
2 无穷大量与有界变量之积不一定为无穷大量。 如 均不是无穷大。
函数放缩: 为多项之和,各项取绝对值再求和
一元函数微分学
可积充分条 ...
连续|导数|中值定理
六十多岁的老专家还在钻研函数性质折磨考生,二十多岁的小伙子怎么能对这些看似简单的知识嗤之以鼻呢。学习是快乐的,开始吧。
函数连续性
直接给出定义:若函数f(x)满足 称函数在是连续的。
另一种形式:满足 称函数在是连续的。两种定义是等价的。
函数的导数
定义: 为函数在处的一阶导数。
同样的有另一种形式: 称函数在是连续的。两种定义同样是等价的。前者适合用于计算函数的一阶导数,后者适合用于折腾,因为可以相应地替换成满足一定条件的无穷小量,首先要满足当然是保证无穷小量能同时从和趋于0,才能作为导数的定义。
函数性质
函数、导数都是数学定量化的模型,或者称手段,目的只是为了研究函数本身的性质(单调性、凹凸性)以及由性质延伸出来特殊的点位(极值点、拐点)。这些点在不同的学科中都有着重要的研究意义,例如物理中速度、加速度,信号分析中信号变化的速率、考虑一个计算模型的收敛速度等。
单调性判别准则
单调性的判别:f(x)满足闭区间连续、开区间可导则:
1. 在开区间内满足
0,而且等号仅在有限个点上成立,则函数在闭区间上单调增加。
2. 在开区间内满足
0,而且 ...
数据结构与算法(三):查找与排序算法
此前的两篇文章介绍了线性表、树、图的基本思想以及相关算法,不难发现有若干算法是需要在有序的前提下实现的,查找和排序在数据结构中常常被当成预处理使用,而反过来,有的数据结构可以载入杂乱的数据供给查找和排序,故二者是相辅相成,相互依赖的,这就是为什么会在数据结构的末章总会提到查找和排序算法的原因,本文记录了相关常用的算法,旧金山大学网站中给出了相关算法的可视化交换页面,非常方便理解和算法验证。
查找
相关术语
查找:在数据集合中寻找某种符合条件数据元素的过程;
查找表:用于查找操作的数据集合,通常用于统称一种数据结构,不是什么新的数据结构。
关键字:可以唯一区别数据对象的数据元素,关键字查找结果必须是唯一的。
静态查找表:只需要对元素进行查找,性能只考虑查找速度即可。
动态查找表:需要对查找表进行元素查找、插入、删除等,性能除了关注查找速度,还要考虑插入删除的复杂度。
查找算法的评价指标
平均查找长度(Average Search
Length,ASL):表示查找过程中进行关键字比较次数的平均值,通常对同一个算法要同时考虑查找成功的ASL和查找失败的ASL。
时间复杂 ...
数据结构与算法(二):二叉树与图
递归问题
递归和迭代是程序设计中的两种基本思想,从数列的思想中可以进行理解:迭代就是给出某个数列的位置(如第i个),就需要使用通项公式来进行计算;而递归则不关心这个通项公式是什么,它只关心邻近项(前一项、前两项......)进行计算,虽然对人脑而言,从第一项去推断成百上千的计算量是很大的,但是用于是固定形式的计算,这种方式对计算机却很友好,尽管有时候会导致不必要的计算,但是这种思想下的代码却显得十分简洁易写。
另一方面,迭代是一种for循环的思想,它需要用户知道需要迭代多少次,什么时候进行停止和计算,就像数组的查找一样。而递归类似while循环思想,给定退出的条件,我们并不关心它究竟执行了多少次,只要退出时是我们需要的结果,递归就算成功,就像链表索引,无论链表多长,我们总可以通过指针去索引后面的值直到最后一位。但是在树和图中,数据元素之间不再具有线性表这种一对一关系,使用迭代对程序员的思维而言过于庞大,因此大量的递归将在这两种数据结构中体现。
汉诺塔问题
汉诺塔是经典的递归问题:A柱子中有64个圆盘,分别有64个大小,现在需要把A柱子中的所有圆盘移动到C柱子,移动过程每根柱子必 ...
信号与系统:信号的傅里叶变换
难得有心情,虽说是学科性的,但是也很有启发,应该记录一下。
泰勒级数
从一条著名的式子开始
这个公式告诉我们任意给定f(x),只要满足f(x)在x0是任意阶可导的,那么这个函数就能由一系列幂函数的和逼近,无穷项幂函数的和一般称为幂级数,上述这个幂级数称为泰勒级数,Rn称为余项,表达式称为泰勒公式。
其中如果
则称Rn为拉格朗日余项;如果
则称Rn为皮亚诺余项。两种余项是描述高阶幂函数在无限逼近f(x)产生的“余量”,这个余量是x^n次幂的高阶无穷小。
而如果
注意这里没有了余项,并且我们把两端划等号了,说明右侧的泰勒级数收敛于f(x)。应该知道,泰勒级数收敛于f(x)的充要条件是
然而,泰勒公式在信号与系统的工程实践中并不常用,很大原因是由于它的条件过于苛刻,泰勒级数要求信号必须任意阶可导,在现实生活中的信号难以满足这个条件。
傅里叶级数
拟合函数不是幂函数的专利,还有一类非常完美的函数———三角函数也可以用来拟合信号函数。之所以称得上完美,这是因为三角函数具备其他函数如三角波、方波不具有的性质———保真性。对很多系统而言,正余弦信号作为输入,输出信号 ...
数据结构与算法(一):线性表、栈、队列
数据结构导论
数据结构诞生于1968年,克努特教授《计算机程序设计技巧》中系统阐述了数据逻辑结构的概述和思想,开创了数据结构概念,甚至比C(1972)、C++(1980)等语言出现还早,编程语言只是底层工具,半个世纪过去数据结构和算法的思想经久不衰,值得记录和学习。本文回顾了两年前初识数据结构的笔记、算法记录、代码等,根据参考视频、博客等重新补充、整理,以C语言为编程语言,介绍了各自数据结构和算法。
数据
数据:一个总称,例如生产日期、身高体重
数据元素:是数据处理的基本单位,即数据的记录,例如某月某日、170kg等。
逻辑结构
集合结构:数据元素同属一个集合,一个类,散乱的装载,没有其他关系了。
线性结构:数据元素间是一对一的关系。
树形结构:从根结点出发,一对多、多对一的关系。
图形结构:复杂的网状结构,一对多、多对一、多对多关系。
存储结构
数据元素的存储结构有两种:
顺序存储结构:数据元素存放在地址连续的存储单元中,数据的逻辑关系和物理关系是一致的。
链式存储结构:数据元素被存储在存储单元中,可以连续,也可以不连续的,存在一个指针域指向下一个数据地址。 ...
C++记忆恢复集要之三:继承、多态与容器
继承
类是C++封装特点的重要体现,类的继承是指从已有的基类(父类)派生出的新类(子类),是C++面向对象的第二个重要特点。类的继承写法如下:
12345678//单类继承class 子类类名:继承类型 父类类名{ ...};//多类继承class 子类类名:继承类型 父类类名,继承类型 父类类名...{...};
1. 三种继承类型
三种继承类型:公有继承(public)
、私有继承(private)、受保护继承(protected)。
子类并不是照搬父类的成员权限,而是根据继承类型和父类的类内权限共同决定的。总结如下:
1.
父类私有权限成员:无论以何种方式继承,子类和类外均不能直接访问和操作(私有成员变量的确占用了子类的空间,但是这些变量对子类是不可见的,既然是不可见,就说不上在子类中有什么权限,所以一般要通过父类的公有函数来访问);
2.
父类受保护权限成员:公有、受保护继承时,该成员在子类权限仍为受保护权限,私有继承时在子类权限为私有权限;
3.
父类公有权限成员:公有继承时,在子类权限为公有权限;受保护继 ...
C++记忆恢复集要之二:类与对象
类和对象
1. 从结构体到类
结构体: 12345678910111213141516171819#include <iostream>using namespace std;struct Person{ string name; int id; int score; void PrintInfo(){ cout<<name<<'\t'<<id<<'\t'<<score<<endl; }};int main(){ Person Eden; Eden.name="MrEason"; Eden.id=110; Eden.score=123; Eden.PrintInfo(); return 0;}
结构体和类的唯一区别:结构体默认权限是公有的,而类默认成员权限是私有的。只需声明权限即成为类的结构:
12 ...
C++记忆恢复集要之一:C++基础
C++基础
1. 经典头
12#include<iostream> //预编译using namespace std;
iostream是C++用于管理输入和输出的头文件,包含了在控制台、文件中输入输出的类和函数。
std是C++定义的一个命名空间,cin、cout都在此命名空间中管理,两种输出方式:
1 声明命名空间:using namespace std;
2 域解析符号: std::cout<<“hello
world”<<endl;
2. 面向对象编程语言的三要素:
封装:把客观事物封装成抽象的类,而且仅让可信的类或者对象进行操作;将成员函数和成员变量封装在内部,根据需要设置访问权限。通过成员函数管理内部状态。如C语言结构体内不能定义函数,而C++可以。
继承:一个类可以继承另一个类的成员函数和成员变量,复用性大大增加。
多态:也即一个接口,多种方法;程序在运行时才决定调用的函数,是面向对象的核心概念。分为静态多态(函数重载、运算符重载)和动态多态(虚函数、纯虚函数、虚析构函数、纯虚析构函数);
3. ...
引入Aplayer后图片无法正常显示
作为一款轻便的H5音乐播放器,Aplayer插件提供了很好的界面和效果,比普通的HTML播放器更加方便美观。根据官方文档完成代码框架搭建后却发现背景图片莫名不显示了。。。原来一直调试时背景图片依靠浏览器缓存所以在本地服务器运行没有消失,等真正推送在无缓存页面打开才原形毕露。检查了本地的配置没有发现什么问题,而检查服务器时发现网页渲染CSS文件首行莫名多了:
1<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><script class="meting-secondary-script-marker" src= ...