【高等数学】随手小记

1. 泰勒公式

利用多项式无限逼近,保证一阶,二阶…n阶导数相同。
请添加图片描述

1.1 拉格朗日中值

展开1阶的泰勒公式。
请添加图片描述
罗尔定理是 f ( a ) = f ( b ) f(a)=f(b) f(a)=f(b)的情况,柯西中值是两个函数相比,也就是拉格朗日中值定理的参数方式。

1.2 麦克劳林公式

x 0 x_0 x0取0时的泰勒公式。

2. 欧拉公式

来源于泰勒公式:
在这里插入图片描述
这里通过复平面,换另一个角度理解。注意,复平面只是人为为了方便理解虚数而定义的平面,i本身并不具有旋转的意义,是在该平面下被赋予了该意义。

  • e e e的来源:
    累积无穷个复率相乘得到的上界,是发现,而非定义的一个数
    在这里插入图片描述
    推广至复平面,有
    在这里插入图片描述
    e实际上是一种增长方式,e的实数次幂是按照实数轴方向增长。如果放在复平面,就可以跟虚数的旋转性质结合起来,e的虚数次幂的增长方式就是时刻按正交方向增长。所以上式中等式左右两侧代表的都是 a x + b i ax+bi ax+bi类型的虚数!

  • 弧度制:弧度制是另一种描述角度的方法,其建立了易于测量的直线的长度不易测量的角度之间的关系。

下面探究弧度 θ \theta θ 对应的复平面情况,默认基底为 ( 1 , i ) (1, i) (1,i)

  • 从弧度角度来看:此时在单位元中,其代表的点的位置是 ( c o s θ , s i n θ ) (cos\theta, sin\theta) (cosθ,sinθ)

  • 从复平面的乘法来看:模长相乘,幅角相加。会发现这个极限,代表的就是 弧度制下 θ \theta θ对应的角度

    • 当n趋向于无穷时, i θ / n i\theta/n iθ/n趋向于0,此时模长趋向于1。
    • 幅角因为是相加的关系,趋向 θ / n ∗ n = θ \theta/n*n = \theta θ/nn=θ

至此,欧拉公式呼之欲出, e i θ = lim ⁡ n → + ∞ ( 1 + θ i / n ) n e^{i\theta}=\lim_{n\to +\infty}(1+\theta i/n)^n eiθ=limn+(1+θi/n)n,是 弧度制下 θ \theta θ对应的角度位置,即 ( c o s θ , s i n θ ) (cos\theta, sin\theta) (cosθ,sinθ)
在这里插入图片描述
欧拉公式提供了一个很好的联系实数与复数的契机:
在这里插入图片描述

同时,人们常常认为,复平面是类似于二维向量的一种表达形式,是对实数维度上的拓展,可以通过向量的加减进行图示。只不过其基底较为特殊,联系了自然指数的同时联系了三角函数:
请添加图片描述

3. 傅里叶变换

任意函数可以分解和奇偶函数之和:
在这里插入图片描述
三角函数可以通过调整频率,振幅和偏置,逼近任意函数:
在这里插入图片描述
傅里叶级数用于描述周期函数,其精髓在于找到了n组周期相同的正交基进行组合,系数是通过向基的投影得出的。

在这里插入图片描述
同时,等式右侧可以用复数形式代替,使用欧拉公式代换即可。其中 c n c_n cn为系数,而 e e e 的虚数次方为正交基:
在这里插入图片描述

不管时域、频域其实反映的都是同一个曲线,只是一个是用函数的观点,一个是用向量的观点。时域描述了函数本身,而频域描述了傅里叶展开后的形式。频域图的横轴代表了x赫兹,比如
在这里插入图片描述
则频域图为
在这里插入图片描述

随着周期的不断变大,频率不断变小(反应在图上更密集了),当我们把周期看作无限大的时候,非周期函数也可以用傅里叶展开来描述了。等式如下。
此时,我们更关注 F ( w ) F(w) F(w)函数,其通过 原函数向基底做内积 ,将一个已知的函数从时域转换到了频域,每个频率的对应的大小也就是函数基底的大小,从而可以用于分析,譬如舍弃那些不重要的频率。
在这里插入图片描述
非常巧妙的是, f ( w ) f(w) f(w) F ( w ) F(w) F(w) 总是息息相关,我们将函数和基底做内积,得出 C n C_n Cn的大小,这个过程称为分析。而通过已知的基底重新组成 f ( x ) f(x) f(x)的过程就是合成。
在这里插入图片描述

3.1 短时傅里叶变换

如果频率是非平稳信号,其随着时间而改变,此时傅里叶变化只能分析出有哪些频率,而并不能分析出时序关系。我们引入“窗口”这个概念,随着时间而移动窗口。此时得到的是一个下面这张图的样子:
请添加图片描述
但窗口的大小难以控制,过小的窗口导致频率可能松散(相近频率不足以拉开差距),但时间分辨率高(频率的变化将被敏锐的捕捉)。过大的窗口则相反,频率分辨率高而时间分辨率低。

鹅鹅鹅,这里补充一点。在量子力学里,不确定性原理(uncertainty principle,又译测不准原理)表明,粒子的位置与动量不可同时被确定,位置的不确定性越小,则动量的不确定性越大,反之亦然。体现在此处,就是 频率的确定性(宽度)取决于观测时间的长短

3.2 小波变换

小波变化将无限长的三角函数基换成了有限长的会衰减的小波基,给小波基以不同的周期和偏置,同时克服了STFT中多次傅里叶分析难以保证所有基正交的问题。
不同于傅里叶变换,变量只有频率ω,小波变换为了拟合时间上的变化,有两个变量:尺度a(scale)和平移量 τ(translation)。尺度a控制小波函数的伸缩,平移量 τ控制小波函数的平移。尺度就对应于频率(反比),平移量 τ就对应于时间。请添加图片描述
而所谓的“小波”不是一个函数,而是一组,它们满足 均值为0(正交) 以及在时域和频域都局部化 (不是蔓延整个坐标轴的,可以反应时间的变化),满足这两条的函数就是小波函数,有很多,最简单的是Haar Wavelet。

4. 拉格朗日乘子法和KKT条件

拉格朗日乘子法使得a个变量b个约束条件的优化问题 -> a+b个变量的无约束优化问题。

4.1 等式情况

  • f(x)和g(x)相切 -> δ f ( x ) = λ δ g ( x ) \delta f(x) = \lambda \delta g(x) δf(x)=λδg(x)
  • 满足g(x) -> g ( x ) = 0 g(x) = 0 g(x)=0

构造拉格朗日函数 L ( x , λ ) = f ( x ) + λ g ( x ) L(x, \lambda) = f(x) + \lambda g(x) L(x,λ)=f(x)+λg(x)。可以发现,上面第一行是对 x x x的求导等于0,第二行是对 λ \lambda λ求导等于0。也就是说,使得拉格朗日函数取极值的参数,就是求解上述含有约束条件的解。

4.2 不等式情况

不等式的加入对应两种情况:要么对原函数没有影响,要么限制在不等式上。
在这里插入图片描述
第一个不等式,满足原有范围。第三个不等式满足, λ = 0 \lambda=0 λ=0 无影响的情况。 g ( x ) = 0 g(x)=0 g(x)=0和第二个不等式,满足的是在不等式上的情况。

5. 参考资料

形象易懂讲解算法I——小波变换 - 知乎 (zhihu.com)

Fourier Transform 傅里叶变换 · 语雀 (yuque.com)

深入理解离散傅里叶变换(DFT) - 知乎 (zhihu.com)

马同学 (matongxue.com)

优化-拉格朗日乘子法

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Protobuf是一种高效的序列化协议,可以用于数据交换和数据存储。它的主要优势是大小小,速度快,可扩展性强。下面是使用Protobuf的一些小记: 1. 定义消息格式 首先,需要定义消息格式,以便Protobuf可以将数据序列化和反序列化。消息格式定义在.proto文件中,使用protobuf语言编写。例如,下面是一个简单的消息格式定义: ``` syntax = "proto3"; message Person { string name = 1; int32 age = 2; } ``` 这个消息格式定义了一个名为Person的消息,包含两个字段:name和age。 2. 生成代码 一旦消息格式定义好,就可以使用Protobuf编译器生成代码。编译器将根据消息格式定义生成相应的代码,包括消息类、序列化和反序列化方法等。可以使用以下命令生成代码: ``` protoc --java_out=. message.proto ``` 这将生成一个名为message.pb.java的Java类,该类包含Person消息的定义以及相关方法。 3. 序列化和反序列化 一旦生成了代码,就可以使用Protobuf序列化和反序列化数据。例如,下面是一个示例代码,将一个Person对象序列化为字节数组,并将其反序列化为另一个Person对象: ``` Person person = Person.newBuilder() .setName("Alice") .setAge(25) .build(); byte[] bytes = person.toByteArray(); Person deserializedPerson = Person.parseFrom(bytes); ``` 这个示例代码创建了一个Person对象,将其序列化为字节数组,然后将其反序列化为另一个Person对象。在这个过程中,Protobuf使用生成的代码执行序列化和反序列化操作。 以上是使用Protobuf的一些基本步骤和注意事项,希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值