- 博客(15)
- 收藏
- 关注
原创 求导链式法则证明
求导链式法则证明链式法则对于一元连续函数y=f(u),如果f(u)在u=g(x)处可导且u在g(x)=x0处可导,那么复合函数(f∘g)(x)=f(g(x))在x0处可导,且(f∘g)′(x)=f′(g(x))⋅g′(x)即ΔyΔx=ΔyΔu⋅ΔuΔx\begin{aligned}&对于一元连续函数y=f(u),如果f(u)在u=g(x)处可导且u在g(x)=x_0处可导,\\ 那么&复合函数(f\circ{g})(x)=f(g(x))在x_0处可导,且(f\circ{g})'(x
2021-02-23 04:55:41
1128
原创 求导链式法则证明
求导链式法则证明链式法则对于一元连续函数y=f(u),如果f(u)在u=g(x)处可导且u在g(x)=x0处可导,那么复合函数(f∘g)(x)=f(g(x))在x0处可导,且(f∘g)′(x)=f′(g(x))⋅g′(x)即ΔyΔx=ΔyΔu⋅ΔuΔx\begin{aligned}&对于一元连续函数y=f(u),如果f(u)在u=g(x)处可导且u在g(x)=x_0处可导,\\ 那么&复合函数(f\circ{g})(x)=f(g(x))在x_0处可导,且(f\circ{g})'(x
2021-02-23 04:43:12
1019
原创 和差化积公式推导
和差化积公式推导依据sinx=−sinxcosx=cos−xsin(a+b)=sinacosb+cosasinbsin(a−b)=sinacosb−cosasinbcos(a+b)=cosacosb−sinasinbcos(a−b)=cosacosb+sinasinb\begin{aligned}\sin{x} &= -\sin{x} \\\cos{x} &= \cos{-x} \\\sin{(a+b)} &= \sin{a
2021-02-23 03:33:43
2227
2
原创 最小二乘法的矩阵形式推导
最小二乘法是一种基本的线性回归方法,现总结其矩阵形式的推导。优化目标minxf(x)=∣∣Ax−B∣∣22\mathop{min}\limits_{\mathbf{x}}f(\mathbf{x})={||\mathbf{Ax-B||}_2^2}xminf(x)=∣∣Ax−B∣∣22第一步: l2范式展开f(x)=(Ax−B)T(Ax−B)=xTATAx−BTAx−xTATB+BTB=xTATAx−2BTAx+BTB\begin{aligned}f(\mathbf{x}) &= \ma
2021-01-23 18:35:11
4253
原创 2020-10-28
映射template <class Key, class T, class Compare = less<Key>, class Alloc = allocator<pair<const Key, T> > > class map;< map >介绍映射是一种关联容器,元素按按顺序排列,有“键”和“值”组成。在映射中,“键”通常用来排序而且唯一标识了一个元素,而“值”为一个“键”所关联的内容。“键”和“值”的类型可能不同,而且会被组合在
2020-10-28 16:33:32
61
原创 2020-10-28
集合template <class T, class Compare = less<T>, class Alloc = allocator<T> > class set;< set >介绍set是按顺序存储无重复元素的容器。在set中,一个值标志一个元素,而且每个值都是唯一的。set中元素的值不能被修改,但是可以被插入或删除。在内部,元素会通过一个比较对象(Compare类型)来按照一个“弱排序准则”按特定顺序排列。在通过键查找元素方面set要
2020-10-28 15:57:29
110
原创 2020-10-28
链表template <class T, class allocator<T>> class list;介绍list是序列容器,允许在序列中的任何位置进行恒定时间的插入和擦除操作,并在两个方向上进行迭代。list被实现为双向链表,双向链表中包括了存储在不同内存位置中的元素,每个元素中包括了上一个和下一个元素的位置的信息。list很像forward_list,不同点是forward_list是单向链表,在forward_list中只能进行前向的迭代,作为交换,forward
2020-10-28 12:21:28
98
原创 2020-10-28
前向链表template <class T, class Alloc = allocator()> class forward_list;< forward_list >forward lists是一种序列容器,其中插入和删除消耗常量时间。forward lists被实现为单链表,单链表中的元素分布在内存中的不同位置。它们的顺序是通过每一个元素中向后一个元素的next链接维持的。forward_list容器和list容器的主要区别是:在list中除了头元素只有向后的链接,
2020-10-28 12:02:22
60
原创 2020-10-27
栈< stack >template <class T, class Container = deque<T> > class stack;介绍后进先出栈。栈是一种容器适配器,专门用于“后进先出”背景下的问题,它的元素从首部插入,从尾部弹出。栈被实现为容器适配器,它们是使用特定容器类的封装对象作为其底层容器的类,提供了一组特定的成员函数来访问其元素。 元素从特定容器的“后部”被推入/弹出,这被称为栈的顶部。底层容器可以是任一种标准容器,也可以是自定义的一种容
2020-10-27 21:34:10
71
原创 2020-10-27
优先队列< queue >template <class T, class Container = vector<T>, class Compare = less<typename Container::value_type> > class priority_queue;介绍优先队列是一种容器适配器,它的第一个元素永远是容器中“最大的”元素,所谓“最大”是通过自定义的某个准则(弱排序准则)排出的。就像堆一样,可以随时插入元素,但是只能获取最大元素
2020-10-27 21:16:25
88
原创 2020-10-27
Queue 队列template <class T, class Container = queue<T>> class queue;介绍先进先出队列。queues是一种容器适配器,专门被用来解决在“先进先出”背景下的问题:它从尾部添加元素,从首部删除元素。queues被实现为容器适配器,它们是使用特定容器类的封装对象作为其基础容器的类,提供了一组特定的成员函数来访问其元素。 元素被推入特定容器的“后部”,并从其“前部”弹出。底层的容器可能是一种标准模板类容器,也可能是专
2020-10-27 20:44:52
66
原创 2020-10-27
std::deque 双端队列template <class T, class alloc = allocator<T>> class deque;介绍双端队列(deque)是有两个尾部的队列(double-ended-queue)的缩写。它是一个尺寸可变的线性序列的容器,可在两端进行扩张或缩减。特定的库可能将双端队列用在特定场合,通常是用作动态的数组。但是在某些场景,它允许通过迭代器对元素进行随机读取,同时根据需要通过扩张或缩减来动态的管理存储。因此,它在功能上与vec
2020-10-27 20:20:51
93
原创 2020-10-26
STL arraytemplate <class T, size_t N> array;介绍arrays是固定的s序列容器,它盛放特定数目的按现行顺序排列的序列。在内部,arrays的成员只s有它盛放的元素,(甚至没有它的尺寸,这是在编译时就固定下来的)就存储的尺寸而言,它与用标准语法[]声明的数组一样有效,这个类仅仅对它添加了一层成员和全局函数,因此可被用作标准容器。不像其他的标准容器,arrays有一个固定的尺寸而且不适用分配器来管理元素的内存分配:它们是合并的类型包含在一个固定
2020-10-26 21:33:03
125
原创 STL vector
c++ vector概念和相关操作最近开始系统学习c++标准库,以及练习写博客。先从翻译STL文档开始,加入了自己的一点理解,大概会有一些错误,日后逐渐修正。概念vector是盛放序列的容器,是一种尺寸可变的数组。像数组一样,vector使用连续的内存空间来存放元素,这意味着可以使用平常的指针偏置来读取元素,能像数组一样高效。但不同于数组的是,vector可以动态改变大小。在内部,vector使用一个动态分配的数组来存储元素,当数组已满且需要插入新元素时,vector会重新分配一个新的更大空间的数组
2020-10-25 21:43:26
149
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人