securecrt的使用

下载安装

  1. 下载https://blog.csdn.net/weixin_43025343/article/details/140504390?ops_request_misc=%257B%2522request%255Fid%2522%253A%25227513CC36-5429-4268-BC22-FC5A56D20BAE%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=7513CC36-5429-4268-BC22-FC5A56D20BAE&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-140504390-null-null.142^v100^pc_search_result_base1&utm_term=SecureCRT&spm=1018.2226.3001.4187
  2. 懂的https://www.bilibili.com/video/BV1DK411U7jC/?spm_id_from=333.337.search-card.all.click&vd_source=383c3454e0a30e6b8f08a9621b477848

使用

参见链接:https://www.jb51.net/article/229722.htm

此文档用来记录一些学术大家的轶事逸闻

参考链接

  1. https://blog.sciencenet.cn/blog-217073-802193.html

麦克斯韦的情书

1
Valentine by a Telegraph Clerk to a Telegraph Clerk电报里的情诗[1] The tendrils of my soul are twined我灵魂的触须With thine, though many a mile apart,交织于你的思绪,即使远隔万里,And thine in close-coiled circuits wind Around the needle of my heart.如盘旋的回路萦绕于指针,我的心。 Constant as Daniell, strong as Grove,如丹尼尔永恒,如格罗夫固执,Ebullient through its depths like Smee,像斯米那样在灵魂深处的热情[2],My heart pours forth its tide of love,涌出潮水的爱意,我的心,And all its circuits close in thee.一切汇流向你。 O tell me, when along the line From my full heart the message flows,请告诉我,这诗句,这胸中飞出的消息,What currents are induced in thine?可有电流在你心间感应?One click from thee will end my woes.你快滴答一声,终止我的焦虑。 Through many an Ohm the Weber flew,穿过一个又一个欧姆的韦伯[3],And clicked this answer back to me,是回音,I am thy Farad, staunch and true,我,你的真诚而忠实的法拉,Charged to a Volt with love for thee.满满一伏特,是爱,献给你[4]。

典型理工男的情诗,不过很浪漫。

注:下文转载自github上的大佬ChenClay,原文链接:https://github.com/Iamnotphage/CMC-SpeedRun/blob/main/README.md?plain=1, 感谢大佬的分享。

历年真题:https://mp.weixin.qq.com/s?__biz=MzI2OTE2NzczNQ==&mid=2650084520&idx=1&sn=a2bd1b58166988e1a8b230baf51a0a64&chksm=f2e5c9b0c59240a6c3e34a8aafeb6b8ced0f78ac1137193dd1f87ade0b26764dc99ae73e39b2&scene=178&cur_album_id=1818960555483660291#rd

CMC-SpeedRun


速通全国大学生数学竞赛教程(非数学专业)

针对🐹🐹的CMC-SpeedRun
cmc

  • CMC-SpeedRun
  • 前言
    • 读者须知
    • 🐹🐹情况
  • 如何速通
    • 第零步:准备工作
      • 🌟三角函数部分
      • 🌟导数工具部分
      • 🌟数列部分
      • 🌟不等式部分
      • 🌟反三角函数部分
    • 第一步:打好基础
    • 第二步:各章节知识点DLC
      • 1️⃣第一章 函数、极限、连续
        • 🌟Cauchy极限存在准则
        • 🌟Cauchy极限公式
        • 🌟奥特曼法
        • 🌟Stolz定理
        • 🌟中值定理求极限的方法
        • 🌟Stirling公式
        • 🌟无穷大量的比较
        • 🌟Darboux定理
        • 🌟一致连续的定义
        • 🌟Lipschitz条件
      • 2️⃣第二章 一元函数微分学
        • 🌟凑导数定义
        • 🌟Leibniz公式
      • 3️⃣第三章 一元函数积分学
        • 🌟区间再现公式
        • 🌟Wallis公式
        • 🌟三角函数有关的积分公式
        • 🌟积分中值定理
        • 🌟组合积分法
        • 🌟积分形式Cauchy-Schwarz不等式
      • 4️⃣第四章 多元函数微分学
        • 🌟偏导数与连续的关系
        • 🌟二元函数Taylor展开
      • 5️⃣第五章 多元数量值函数积分学
        • 🌟二重积分的和式极限
        • 🌟雅可比行列式
        • 🌟二重积分的换元公式
        • 🌟二重积分的极坐标换元
        • 🌟二重积分的球面坐标换元
        • 🌟二重积分的分部积分公式
        • 🌟三重积分换元公式
        • 🌟三重积分柱面坐标换元
        • 🌟三重积分球面坐标换元
      • 6️⃣第六章 多元向量值函数积分学
        • 🌟Green公式
        • 🌟Stokes公式
        • 🌟Gauss公式
      • 7️⃣第七章 常微分方程
        • 🌟可化为齐次方程的微分方程
        • 🌟Bernoulli方程
        • 🌟Euler方程
        • 🌟Liouville公式
        • 🌟常数变易法
      • 8️⃣第八章 无穷级数
        • 🌟Euler常数
        • 🌟拉链定理
        • 🌟Cauchy乘积
        • 🌟Cauchy收敛定理
        • 🌟Weierstrass准则
        • 🌟Parseval恒等式
    • 第三步:开始速通真题
  • 资料库
    • 推荐书籍
    • 往届真题
      • 初赛
      • 决赛
    • 权威公众号
  • 🐹🐹的笔记
  • 联系🐹🐹

前言

读者须知

本文适用于国内准大学生、大学生对CMC(全国大学生数学竞赛)或其他类似竞赛有准备需要的学生或者🐹🐹。
注意是非数,非数,非数!鼠鼠是CS学生,所以参加的是非数学类的CMC!本SpeedRun教程也是针对非数的教程。
一般CMC比赛时间:初赛每年11月左右,决赛每年3月左右,具体情况具体分析。
尤其是刚学完微积分课程的学生来说,知识掌握程度最佳,基本上不用准备也可能拿到初赛的三等奖,当然拿奖与否,跟你报名的赛区也是息息相关。
本文加入了适量emoji表情以增加可读性,请见谅。
前排:如果Github你下载太慢,欢迎前往以下链接下载
https://www.aliyundrive.com/s/qun3Q7sy5EG

🐹🐹情况

下面介绍一下🐹🐹的情况。
高考数学全国一卷120(并非你想的那么高) 所以人人都有机会完美速通CMC
高考只考了120
高数上总评98
高数1
高数下总评92
高数2
线代总评97
线代
离散数学总评95
离散
从课内成绩来看,🐹🐹算是中规中矩,前期的铺垫固然重要,但是要速通CMC,后期的努力更重要。
大二参加第十四届全国大学生数学竞赛,初赛66分一等奖 (校内名单,所以有具体分数)
第十四届
张贴在此处以增加🐹🐹文章的信服力,不然大街上随便找坨史也可以写这篇文章。
2023年6月补档,的确没有进入决赛,这里给大家一个参考,第十四届初赛66分编号88应该是全省88名没有达到决赛线。
cmc

如何速通

首先必须说明,在本科之前的基础也是重要的,尤其是三角函数、导数等工具的掌握,可能会影响本科课程中微积分的学习,但是影响不算巨大。
为了避免部分🐹🐹不知所措,茫然前行,本🐹🐹根据个人经验✍不断完善此库,以便帮助各位实现速通CMC。
在下文,我将列出在国内正常高中学习会涉及并且CMC中也会出现的数学工具,接下来是各种扩展知识点的介绍,最后是关于真题和一些资料的建议和推荐。
已经在本科学习完微积分课程并且总评优秀的可以跳过第零步和第一步。

第零步:准备工作

🌟三角函数部分

除了高中必修的三角函数变换、辅助角变换之后,大部分人都对积化和差、和差化积、万能公式不太熟悉,不必要死记硬背,但是遇到题目要能想到这一条退路。
下面三组公式常常在CMC中的求极限、求积分等题目中有出奇制胜的效果。
推导、记忆技巧等,详见各类辅助教材、网站。
积化和差
${\displaystyle \sin \alpha \cos \beta ={\sin(\alpha +\beta )+\sin(\alpha -\beta ) \over 2}}$
${\displaystyle \cos \alpha \sin \beta ={\sin(\alpha +\beta )-\sin(\alpha -\beta ) \over 2}}$
${\displaystyle \cos \alpha \cos \beta ={\cos(\alpha +\beta )+\cos(\alpha -\beta ) \over 2}}$
${\displaystyle \sin \alpha \sin \beta =-{\cos(\alpha +\beta )-\cos(\alpha -\beta ) \over 2}}$
和差化积
${\displaystyle \sin \alpha +\sin \beta =2\sin {\frac {\alpha +\beta }{2}}\cos {\frac {\alpha -\beta }{2}}}$
${\displaystyle \sin \alpha -\sin \beta =2\cos {\alpha +\beta \over 2}\sin {\alpha -\beta \over 2}}$
${\displaystyle \cos \alpha +\cos \beta =2\cos {\frac {\alpha +\beta }{2}}\cos {\frac {\alpha -\beta }{2}}}$
${\displaystyle \cos \alpha -\cos \beta =-2\sin {\alpha +\beta \over 2}\sin {\alpha -\beta \over 2}}$
万能公式
$\displaystyle \sin{x}=\frac{2t}{1+t^2}$
$\displaystyle \cos{x}=\frac{1-t^2}{1+t^2}$
${\displaystyle \tan{x}=\frac{2t}{1-t^2}}$
${\displaystyle x=2\arctan{t}}$

🌟导数工具部分

所有初等函数的导数,链式法则,以及最重要的一个,取对数求导法。
例如,求
$y=x^x$
的导数

$\ln y =x\ln x$
再求导,后面的步骤我就不说了。

🌟数列部分

基本的裂项,不动点法。

🌟不等式部分

均值不等式、柯西不等式、常见放缩。

🌟反三角函数部分

需要掌握定义、导数、以及一些常见恒等式
$arctan\frac{a-b}{1+ab}=arctan(a)-arctan(b)$
$arctanx+arctan\frac{1}{x}=\frac{\pi}{2}$

第一步:打好基础

我将在这部分主要叙述各个阶段的应对措施,希望能够帮助到各位🐹🐹
教材我们学校用的是同济的高等数学,🐹🐹也有幸溜进交大上过一次微分方程的课,他们用的是高等教育出版社的《工科数学分析基础》,各自教材差别不算特别大,最好还是根据你们上课的教材为主。
如果您正在进行微积分课程/高等数学课程/数学分析课程,在能保证目前所学内容掌握良好的情况下,自学后续内容能够更好地帮助实现速通。
如果很不幸,您跟不上您正在进行的微积分课程,请参考目录中的资料库-推荐书籍进行额外努力,打好基础是速通的必要条件。
如果很幸运您恰好学完了微积分课程,并且掌握情况良好,请直接参考第二步,您也不需要基础的辅助教材。
具体来说,我没遇到什么特别难的微积分的题目,只要跟着老师或者自学,按部就班学习的话,基本上课内成绩不会太差。
其次,要明确 能力!=分数 ,绝大多数情况下,分数只能做个参考,特别是大部分高校评价成绩都是采用平时和卷面占比来计算成绩,所以请各位🐹🐹不要太放在心上。

第二步:各章节知识点DLC

在打好基础的情况下,也就是你对微积分掌握了绝大部分,但是CMC或者考研会要求更多一点点,在此处,鼠鼠将会详细列出正常课程中没有的内容,也就是俗称DLC
下面🐹🐹按照浦和平的《大学生数学竞赛教程》的目录来进行扩展进阶的知识点,注意是进阶,所以课内一些基础的、简单的我不会提及。
涉及的是扩展内容,不是本体内容。也就是额外内容(DLC)
对于食用DLC,本🐹🐹的建议是结合辅导书,根据DLC内容进行练习,而不是死记知识点。

1️⃣第一章 函数、极限、连续

🌟Cauchy极限存在准则

数列
$x_n$
收敛的充分必要条件是:
对于任意给定的正数
$\epsilon$
,存在正整数
${N}$
,使得当
$m>N,n>N$
时,有
$|x_n-x_m|<\epsilon$

🌟Cauchy极限公式

若
$\lim\limits_{n\rightarrow\infty}a_n=A$
,则
$\lim\limits_{n\rightarrow\infty}{\frac{a_1+a_2+…+a_n}{n}}=A$

🌟奥特曼法

百度贴吧流传已久的一种求极限方法,其本质是“抓大头”,也就是变化最快的一个。数学语言描述如下:
$\lim\limits_{n\rightarrow\infty}{\sqrt[n]{a^n+b^n+c^n}}=max{{a,b,c}}$
outman

🌟Stolz定理

俗称数列的L’Hospital定理
(1) 定理一(
$\frac{*}{\infty}$
型)
设数列
$a_n,b_n$
满足:
$b_n$
严格单调递增
且
$\lim\limits_{n\rightarrow\infty}{b_n}=+\infty$
那么,有
$\lim\limits_{n\rightarrow\infty}{\frac{a_n}{b_n}}={\lim\limits_{n\rightarrow\infty}\frac{a_{n+1}-a_n}{b_{n+1}-b_n}}=L,$
其中
$L$
可以是有限数、
$+\infty$
、
$-\infty$
(2) 定理二 (
$\frac{0}{0}$
型)
设数列
$a_n,b_n$
满足:
$b_n$
严格单调递减且趋于零
且
$\lim\limits_{n\rightarrow\infty}{a_n}=0$
那么,有
$\lim\limits_{n\rightarrow\infty}{\frac{a_n}{b_n}}={\lim\limits_{n\rightarrow\infty}\frac{a_{n+1}-a_n}{b_{n+1}-b_n}}=L,$
其中
$L$
可以是有限数、
$+\infty$、
$-\infty$

🌟中值定理求极限的方法

首先要先掌握一些中值定理,详见第三章DLC。
这个只能结合例题来说明;
例如,求极限
$\lim\limits_{x\rightarrow3}\frac{\sin{x^x}-\sin{3^x}}{3^{x^x}-3^{3^x}}$
解:
$\lim\limits_{x\rightarrow3}\frac{\sin{x^x}-\sin{3^x}}{3^{x^x}-3^{3^x}}=\lim\limits_{x\rightarrow3}\frac{\cos{\xi}}{3^\xi\ln 3}$
,其中
$\xi$
介于
$x^x$
和
$3^x$
之间,
所以
$\lim\limits_{x\rightarrow3}\frac{\sin{x^x}-\sin{3^x}}{3^{x^x}-3^{3^x}}=\lim\limits_{x\rightarrow3}\frac{\cos{\xi}}{3^\xi\ln 3}=\frac{\cos9}{3^9\ln 3}$

🌟Stirling公式

斯特林公式(Stirling公式)

用一坨答辩来逼近
$n!$
$\lim\limits_{n\rightarrow\infty}{\frac{e^nn!}{n^n\sqrt{n}}}=\sqrt{2\pi}$
比较少数的CMC题目可以直接用这个公式。

🌟无穷大量的比较

如果学过算法分析,理解起来很容易,其实就是时间复杂度的比较。
当
$n\rightarrow+\infty$
时,有
$\ln n$
$<$
$n^{\alpha}$
$<$
$n^{\beta}$
$<$
$a^n$
$<$
$n!$
$<$
$n^n$
$(0<\alpha<\beta, a>1)$
所以可以直接有:
$\lim\limits_{n\rightarrow\infty}{\frac{n!}{n^n}}=0$

🌟Darboux定理

$f(x)$
的导函数
$f’(x)$
在
$[a,b]$
上不一定连续,
若
$f’(x)=\alpha$
,
$f’(x)=\beta$
,则
$\exists\xi\in(a,b)$
使
$f’(\xi)$
介于
$\alpha,\beta$
之间

🌟一致连续的定义

了解即可。
对于任意
$\epsilon>0$
,
$\exists\delta>0$
使得对于任意
$x_1,x_2\in I$
当满足
$|x_1-x_2|<\delta$
时,有
$|f(x_1)-f(x_2)|<\epsilon$
恒成立,则该函数在区间
$I$
上一致连续。

🌟Lipschitz条件

了解即可。
对于在实数集子集的函数
$f:D\subseteq R$
,若
$\exists$
常数
$k$
对于任意
$a,b\in D$
使得
$|f(a)-f(b)|\le k|a-b|$
,则称
$f$
符合Lipschitz条件,
$k_{min}$
为Lipschitz常数,符合Lipschitz条件的
$f$
必然一致连续,反之不一定。

2️⃣第二章 一元函数微分学

🌟凑导数定义

经常需要最原始的导数的定义来解决问题,所以虽然是很基础的内容,但是这里特地提一嘴。
$f’(x_0)=\lim\limits_{x\rightarrow x_0}\frac{f(x)-f(x_0)}{x-x_0}$
或者
$f’(x_0)=\lim\limits_{\Delta x\rightarrow 0}\frac{f(x_0+\Delta x)-f(x_0)}{\Delta x}$

🌟Leibniz公式

非常常见的求高阶导数的公式,使用频率很高。
$(f(n)\cdot g(n))^{(n)}=\sum C_n^i f^{(i)}(x)\cdot g^{(n-i)}(x)$

3️⃣第三章 一元函数积分学

🌟区间再现公式

1.有
$\int_{a}^{b}f(x)dx=\int_{a}^{b}f(a+b-x)dx$
2.若
$f(x)$
关于
$x=\frac{a+b}{2}$
对称,则
$\int_{a}^{b}xf(x)dx=\frac{a+b}{2}\int_{a}^{b}f(x)dx$
特例,也是常见的公式:
$\int_{0}^{\pi}xf(sinx)dx=\frac{\pi}{2}\int_{0}^{\pi}f(sinx)dx$

🌟Wallis公式

俗称点火公式/华莱士公式。
当
$n$
为偶数时,
$\int_{0}^{\frac{\pi}{2}}sin^nxdx=\int_{0}^{\frac{\pi}{2}}cos^nxdx=\frac{n-1}{n}\frac{n-3}{n-2}……\frac{3}{4}\frac{1}{2}\frac{\pi}{2}$
当
$n$
为奇数时,
$\int_{0}^{\frac{\pi}{2}}sin^nxdx=\int_{0}^{\frac{\pi}{2}}cos^nxdx=\frac{n-1}{n}\frac{n-3}{n-2}……\frac{2}{3}$

🌟三角函数有关的积分公式

除了区间再现和Wallis公式之外,还有一些小的积分公式。
此外,要常常想起和差半倍的一些公式,有利于积分,以及一些分部积分的技巧。
公式1:
$\int_{0}^{\frac{\pi}{2}}f(\sin x)dx=\int_{0}^{\frac{\pi}{2}}f(\cos x)dx$
证明1:
令
$x=\frac{\pi}{2}-t$
,剩下的你来。
公式2:
$\int_{0}^{\pi}xf(\sin x)dx=\frac{\pi}{2}\int_{0}^{\pi}f(\sin x)dx$
证明2:
令
$x=\pi-t$
,剩下的你来。

🌟积分中值定理

积分第一中值定理
若
$f(x)$
在闭区间
$[a,b]$
上连续,
$g(x)$
在
$[a,b]$
不变号,且
$g(x)$
在
$[a,b]$
上是可积的,则在
$[a,b]$
上至少存在一个点
$\epsilon$
,使得:
$\int_{a}^{b}f(x)g(x)dx=f(\epsilon)\int_{a}^{b}g(x)dx$

🌟组合积分法

这种积分的方法真要说,可以出一本书来讲。
组合积分法
不过这里介绍的只是一点点皮毛,主要思路是,观察所求积分的特点,再利用对称的积分或者一些已知的积分,然后用不定积分的加减法来得到线性方程,再接着解方程,从而求得一些复杂积分的解。
经典的例子:
求积分
$\int{\frac{\sin x}{\sin x+\cos x}}dx$
解:
记所求积分为
$I=\int{\frac{\sin x}{\sin x+\cos x}}dx$
考虑另外一个积分
$J=\int{\frac{\cos x}{\sin x+\cos x}}dx$
则有
$I+J=\int{\frac{\sin x+\cos x}{\sin x+\cos x}}dx=\int dx=x+C$
又因为
$J-I=\int{\frac{\cos x-\sin x}{\sin x+\cos x}}dx=\int{\frac{1}{\sin x+\cos x}}d{(\cos x+\sin x)}=\ln{|\sin x+\cos x|}+C$
上述俩个式子相减,得到
$2I=x+\ln{|\sin x+\cos x|}+C$
则
$I=\frac{x}{2}+\frac{1}{2} \ln{|\sin x+\cos x|}+C$
更多内容,详见各教辅或其他工具书。

🌟积分形式Cauchy-Schwarz不等式

$(\int f(x)g(x)dx)^2 \le \int f^2(x)dx \cdot \int g^2(x)dx$

4️⃣第四章 多元函数微分学

🌟偏导数与连续的关系

按照同济教材的内容,一般都是
俩个偏导数在点
$(x,y)$
存在且连续,则可以推出函数在该点可微。
但是,实际上,只需要一个偏导数存在(不一定连续),另一个偏导数存在且连续,则可以推出函数在该点可微。

🌟二元函数Taylor展开

首先引入记号:
$(h\frac{\partial }{\partial x}+k\frac{\partial}{\partial y})f(x_0,y_0)$
表示
$hf_x(x_0,y_0)+kf_y(x_0,y_0)$
同样的,
$(h\frac{\partial }{\partial x}+k\frac{\partial}{\partial y})^2f(x_0,y_0)$
表示
$h^2f_{xx}(x_0,y_0)+2hkf_{xy}(x_0,y_0)+k^2f_{xy}(x_0,y_0)$
更一般地,
$(h\frac{\partial }{\partial x}+k\frac{\partial}{\partial y})^{m}f(x_0,y_0)$
表示
$\sum_{p=0}^{m}C_{m}^{p}h^pk^{m-p}\frac{\partial ^mf}{\partial x^p\partial y^{m-p}}|_{(x_0,y_0)}$
设
$z=f(x,y)$
在点
$(x_0,y_0)$
的某一邻域内有直到
$n+1$
阶连续偏导数,
$(x_0+h,y_0+k)$
为此邻域内任一点,则有
$f(x_0+h,y_0+k)=f(x_0,y_0)+(h\frac{\partial}{\partial x}+k\frac{\partial}{\partial y})f(x_0,y_0)+\frac{1}{2!}(h\frac{\partial}{\partial x}+k\frac{\partial}{\partial y})^2f(x_0,y_0)+…+\frac{1}{n!}(h\frac{\partial}{\partial x}+k\frac{\partial}{\partial y})^nf(x_0,y_0)+R_n$
其中,
$R_n=\frac{1}{(n+1)!}(h\frac{\partial}{\partial x}+k\frac{\partial}{\partial y})^{n+1}f(x_0+\theta h,y_0+\theta k)$
其中,
$(0 \lt \theta \lt 1)$
这就是
$f$
在点
$(x_0,y_0)$
的
$n$
阶泰勒展开公式,其中
$R_n$
被称为拉格朗日余项。

5️⃣第五章 多元数量值函数积分学

🌟二重积分的和式极限

请类比一元积分的定义,这部分将很好理解。
下面用例题来说明;
大绿书第五章例3:
计算
$\lim\limits_{n\rightarrow\infty}\sum_{i=1}^{n}\sum_{j=1}^{2n}{\frac{2}{n^2}[\frac{2i+j}{n}]}$
,这里
$[x]$
是不超过
$x$
的最大整数.
解:
解答1
解答2

🌟雅可比行列式

重积分换元的必经之路,雅可比(Jacobi)行列式。
看懂下面的部分需要线性代数基础,并且我只针对下面需要用到的的换元公式来说明该部分,详情请自行查阅、搜索。
直观上说,雅可比行列式表示
$xOy$
平面上的面积微元和换元后的
$uOv$
平面上的面积微元的比值。
设
$x=x(u,v),y=y(u,v)$
则Jacobi行列式
Jacobi1
则有
$dxdy=|J|dudv$
注意一定要加绝对值。

🌟二重积分的换元公式

下面介绍一般的二重积分换元公式
结合上述的Jacobi行列式,换元变得迎刃而解。
作换元
$x=x(u,v),y=y(u,v)$
则
$\iint_{D}f(x,y)dxdy=\iint_{D’}f[x(u,v),y(u,v)]\cdot {|J|}dudv$
注意一定要加绝对值。
具体能怎么运用呢?实际上可以参考大绿书第五章例9的方法2
它这题方法2实际上是线性变换,可以参考线性代数里面的线性变换.

🌟二重积分的极坐标换元

一般换元公式的特例之一。
只需要将具体的换元代入即可。
作换元
$x=r\cos \theta,y=r\sin \theta$
于是
Jacobi2
则有
$dxdy=rdrd\theta$
现在知道极坐标换元的面积微元怎么来的吧~
注意一定要加绝对值。

🌟二重积分的球面坐标换元

一般换元公式的特例之一。

🌟二重积分的分部积分公式

把格林(Green)公式中被积函数换成俩函数乘积即可推出二重积分的分部积分公式。
$\iint_{\Omega}f\frac{\partial g}{\partial x}dxdy=\oint_{\partial \Omega}(f\cdot g)dy-\iint_{\Omega}g\frac{\partial f}{\partial x}dxdy$
$\iint_{\Omega}f\frac{\partial g}{\partial y}dxdy=-\oint_{\partial \Omega}(f\cdot g)dx-\iint_{\Omega}g\frac{\partial f}{\partial y}dxdy$

🌟三重积分换元公式

类比于二重积分换元公式。

🌟三重积分柱面坐标换元

类比于二重积分柱面坐标换元。

🌟三重积分球面坐标换元

类比于二重积分球面坐标换元。

6️⃣第六章 多元向量值函数积分学

其实第六章内容不多,无非就是前面的积分整一整,再多几个向量形式的积分公式而已。

🌟Green公式

课内已有,不再赘述。

🌟Stokes公式

课内已有,不再赘述。

🌟Gauss公式

课内已有,不再赘述。

7️⃣第七章 常微分方程

人类对微分方程的研究其实不多,很多微分方程人类都是解不出来的,所以CMC应该不会出太难的微分方程的题目。
这部分DLC不多。

🌟可化为齐次方程的微分方程

🌟Bernoulli方程

形如
$y’+P(x)y=Q(x)y^n$
的微分方程
俩边同时除
$y^n$
即可得到
$y^{-n}\frac{dy}{dx}+P(x)y^{1-n}=Q(x)$
之后再换元
$z=y^{1-n}$
解关于
$z$
的一阶线性微分方程即可。

🌟Euler方程

以二阶的微分方程为例子(n阶同理):
对于方程
$x^2y’’+pxy’+qy=f(x)$
作变量代换
$x=e^t$
或
$t=\ln x$
,方程化为二阶常系数线性微分方程
$D(D-1)y+pDy+qy=f(e^t)$
其中,
$D=\frac{d}{dt}$

🌟Liouville公式

对于二阶线性齐次微分方程
$y’’+p(x)y’+q(x)y=0$
已知一个特解
$y_1$
,则另一个线性无关的特解为
$$y_2=y_1\int{\frac{1}{y_1^2}e^{-\int{p(x)dx}}}dx$$
证明:
Liouville

🌟常数变易法

第十三届CMC初赛中,大题第三题可以直接用常数变易法解方程,然后再判断有界性,相比给出的奇技淫巧,更为简单粗暴,可以直接求得答案。
比如常数变易法求二阶线性方程
$y’’+py’+qy=f(x)$
的步骤:
常数变易法

8️⃣第八章 无穷级数

🌟Euler常数

了解即可,一个发散级数带来的常数。
$\sum_{i=1}^{\infty} \frac{1}{n}=\ln n+ \gamma$
其中,
$\gamma \approx 0.57721 56649$
为欧拉常数。
换句话说,
$\sum_{i=1}^{\infty} \frac{1}{n}-\ln n= \gamma$
$(0<\alpha<\beta, a>1)$
所以可以直接有:
$\lim\limits_{n\rightarrow\infty}{\frac{n!}{n^n}}=0$

🌟拉链定理

其实这个点也可以放在第一章里面。
数列收敛的充要条件是其奇、偶子数列收敛于同一极限。

🌟Cauchy乘积

也叫做俩数列的离散卷积。
Cauchy乘积的定义为:
对于俩个级数
$\sum_{n=0}^{\infty}a_n$
和
$\sum_{n=0}^{\infty}b_n$
,不论其敛散性,其Cauchy乘积为:
$(\sum_{n=0}^{\infty}a_n)\cdot(\sum_{n=0}^{\infty}b_n)=\sum_{n=0}^{\infty}(\sum_{m=0}^{n}a_mb_{n-m})$

🌟Cauchy收敛定理

若
$\sum_{n=0}^{\infty}a_n$
和
$\sum_{n=0}^{\infty}b_n$
绝对收敛,且
$\sum_{n=0}^{\infty}a_n=A$
,
$\sum_{n=0}^{\infty}b_n=B$
则其柯西乘积绝对收敛,且收敛到
$A\cdot B$
也就是说,
$(\sum_{n=0}^{\infty}a_n)\cdot(\sum_{n=0}^{\infty}b_n)=\sum_{n=0}^{\infty}(\sum_{m=0}^{n}a_mb_{n-m})=A\cdot B$

🌟Weierstrass准则

若存在一个收敛的正项级数
$\sum_{n=1}^{\infty}M_n$
,对任意
$n\in N_{+}$
以及任意
$x\in I$
,恒有
$|u_n(x) \le M_n|$
则级数
$\sum_{n=1}^{\infty}u_n(x)$
在
$I$
上一致收敛。

🌟Parseval恒等式

设
$f(x)$
是
$[0,2\pi]$
上的分段连续函数,且
$f(x)~\frac{a_0}{2}+\sum_{n=1}^{\infty}(a_n \cos {nx}+b_n \sin {nx})$
则有
$\frac{1}{\pi}\int_{0}^{2\pi}(f(x))^2dx=\frac{a_0^2}{2}+\sum_{n=1}^{\infty}(a_n^2+b_n^2)$

第三步:开始速通真题

参考资料库或者其他各种渠道的真题即可。
速通建议:配合本文DLC的知识点,再利用“大绿书”做相应知识点的练习。
在完成大部分DLC知识点的巩固后,可以进一步直接做真题,参考资料库中往年的真题汇总和解析即可。
这部分大概耗时1个月就可以了,如果想要得到一等奖或者决赛入场券,可以适当延长练习时间,更广泛巩固DLC知识点和本体知识点。

资料库

资料库包含部分电子版推荐书籍,往届真题,🐹🐹的笔记。
均上传到了本库中的source文件夹中。

推荐书籍

1.数学分析习题集-吉米多维奇著
俗称就是吉米多维奇习题集。
非常不建议全部做一遍,因为非常多,会耗费大量时间。(鼠鼠的个人观点)
可以偶尔翻两下。
吉米多维奇
2.大学生数学竞赛教程-蒲和平著
俗称大绿书,鼠鼠当初只用了这一本书,推荐指数🌟🌟🌟
对着🐹🐹总结的DLC,做对应知识点的练习题足以速通。
大学生数学竞赛教程
3.大学生数学竞赛习题精讲-陈兆斗著
没做过,听说还不错。鼠鼠就只用过大绿书,比鼠鼠努力且有时间的可以试试这本。
陈兆斗
4.普林斯顿微积分读本
略读过,感觉有点cjb了,就是辅导差生学好微积分而已,个人觉得用处不大。
因为如果你能在系统的学习下掌握知识,那么这种书对你来说就是鸡肋。
推荐的原因是,如果你是小白,那么这本书还是不错的。
普林斯顿
5.数学女孩系列
神中神,🐹🐹高中时期午休时光的精神食粮,对我来说附带青春buff,而且里面很多数学科普知识跨度很大,从幼儿园到人类前沿,漫游各个领域的数学知识,属于提升素养方面的书籍。
放在本速通教程中纯属是🐹🐹个人推荐,对速通CMC或许有着无用之用的用处。
mathgirls

往届真题

截止到目前鼠鼠更新本库,一共进行了十四届CMC。

初赛

初赛的题目都是只包含高等数学的内容,考试大纲请参考官方网站。
资料库索引:

sources/真题

决赛

决赛的题目除了包含80%的高等数学内容外,还包含20%的线性代数内容。
由于🐹🐹在更新本文时,并不清楚自己是否进入了决赛名单(很有可能没有),所以这部分内容不多。
2023年6月补档,的确没有进入决赛,这里给大家一个参考,第十四届初赛66分编号88应该是全省88名没有达到决赛线。
资料库索引:

sources/真题

权威公众号

这里不得不说一个非常权威的公众号:
考研竞赛数学
里面各种真题、模拟题、每日一题等等等等,内容丰富。

🐹🐹的笔记

本🐹🐹在数学方面记的东西是少之又少,但是多少还是有点硬通货的,我将会把pdf版本的笔记放在本github库中,以便其他🐹🐹参考学习,请各位斧正。

联系🐹🐹

📫邮箱: [email protected]

以下来自各个大神的转载:https://blog.singee.me/2018/06/28/python/jupyter-kernel/

说明

数据分析工作者常用 Jupyter Notebook 来完成,新手初学 Python 也建议使用 Jupyter 来上手。但是,多 Python 版本切换 Jupyter Notebook 会很复杂,幸好,Jupyter Notebook 原生支持跨环境的多内核使用。本文将讲解如何在 Jupyter Notebook 中添加和删除新的内核。

步骤

  1. 预先配置未完待续

以下文章来自大神转载

1. 认识 Anaconda

1.1 Anaconda 安装

首先有必要对 Anaconda、conda、pip、virtualenv 等这些有个认识,以及 Anaconda 在 Windows、MacOS、Linux 下的安装教程,参考:

  • Anaconda介绍、安装及使用教程
  • Python,Pycharm,Anaconda等的关系与安装过程~为初学者跳过各种坑
  • 致Python初学者:Anaconda入门使用指南
  • Windows下Anaconda的安装和简单使用
    简单总结下:
  • Anaconda 就是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda 包含了 conda、Python 在内的超过 180 个科学包及其依赖项。简单说,当在电脑上安装好 Anaconda 以后,就相当于安装好了 Python,还有一些常用的库,如 numpy,scrip,matplotlib 等库。
  • conda 是包及其依赖项和环境的管理工具。
  • pip 是用于安装和管理软件包的包管理器。
  • virtualenv 是用于创建一个独立的 Python 环境的工具。
    安装 Anaconda :点击 这里 下载对应自己想要安装的 python 版本的 Anaconda ,然后下一步下一步安装就行。

    注意:因为 anaconda 是自带 Python 的,所以不需要自己再去下载安装 Python 了,当然,如果你已经安装了 Python 也不要紧,不会发生冲突的。
    这里提下,下载的 Anaconda 和 Python 版本对应情况,图片来源网络:

    解释一下上表,anaconda 在每次发布新版本的时候都会给 python3 和 python2 都发布一个包,版本号是一样的。假设你想安装 python3.6.5,就去下载 anaconda3-5.2.0;假设你想安装 python2.7.14,就去下载 anaconda2-5.2.0。
    在安装过程有遇到的问题和注意的地方,在这记录下:
    (1)我的电脑就已经安装过 Python 环境并设置到了电脑的用户变量 PATH 中,但在安装 Anaconda 完毕之后,我的电脑只有这么一个菜单,如下:

    不知道怎么回事,尝试卸载了再重装几次还是这样。然后按照 Python3学习壹——Anaconda+Pycharm环境搭建 作者的解决方式,删除了之前的 Python 环境变量再重装,但也不行,以及按照该文 关于安装Anaconda3各种各样的问题,吐血总结 的方式,进入 Anaconda 安装目录下的 CMD 中敲 python .\Lib\_nsis.py mkmenus 也没成。无奈之下,干脆卸载了 Python 再安装 Anaconda,也没解决这个问题。
    最后,尝试把安装目录改为别的地方,竟然 ok 了。(注:之前一直选择的是和 Python安装目录的同一目录,莫非这个导致的?)
    (2)假设 Anaconda 安装目录为 D:\Anaconda3 ,则把 D:\Anaconda3;、 D:\Anaconda3\Scripts;、 D:\Anaconda3\Library\bin;,把它们添加到 PATH 中。

1.2 源更改

使用 Anaconda 管理,安装 Python 库的时候默认是使用国外的源,这时候下载速度会很慢,国内的源下载速度要好很多。参考:

  • 在pycharm中配置Anaconda以及pip源配置
  • pip和conda安装源更改

(1) pip 源更改

配置环境:Windows7 (64位),Python3.6
(1)临时使用
pip 后加参数:-i https://pypi.tuna.tsinghua.edu.cn/simple,例如:

1
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas

(2)永久使用
Linux 下:
修改 ~/.pip/pip.conf (没有就创建一个), 修改 index-url至tuna,内容如下:

1
[global]index-url = https://pypi.tuna.tsinghua.edu.cn/simple

Windows 下:

  1. 在 Windows 文件管理器中,输入 %APPDATA% 回车
  2. 接着会定位到一个新的目录,在这个目录中新建一个 pip 文件夹,然后在 pip 文件夹中新建个 pip.ini 文件
  3. 最后再新建的 pip.ini 文件中输入一下内容: xml [global]index-url = https://pypi.tuna.tsinghua.edu.cn/simple

(2) conda 源更改

在安装了 Anaconda 后,我们也可以使用 Anaconda 来进行 Python 库的安装,同样的也需要进行源的配置。
这个配置方法就很简单了,你只需要在配置了 Anaconda 的终端(Terminal)输入一下命令即可:

1
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --set show_channel_urls yes

此时,目录 C:\Users<你的用户名> 下就会生成配置文件 .condarc,内容如下:

1
channels:  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/  - defaultsshow_channel_urls: true

好了,源的更改到此就完成了。大家有兴趣可以去清华大学的 开源镜像站 看看,会有很多惊喜的。
查看当前配置信息 conda info,容如下,即修改成功,关注 channel URLs 字段内容:

1
platform : win-32    conda version : 4.3.22 conda is private : Falseconda-env version : 4.3.22 requests version : 2.12.4     channel URLs : https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/win-32                    https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/noarch

2. conda 的包管理

Anaconda 为我们提供方便的包管理命令:conda,下面我们来看看都有哪些有用的命令。

1
conda --v	#验证conda已被安装conda --h	#查看conda帮助信息conda list	# 查看已经安装的packagesconda list -n py3	# 查看某个指定环境py3的已安装包conda search numpy	# 查找package信息conda search --full-name python	#查找全名为“python”的包有哪些版本可供安装。conda install -n py3 numpy	# 安装package到名为py3环境,如果不用-n指定环境名称,则被安装在当前活跃环境conda install scipy	# 安装scipy到当前活跃环境conda update --all 或者 conda upgrade --all	# 更新所有包conda update -n py3 numpy	# 更新名为py3环境的packageconda remove -n py3 numpy	# 删除名为py3环境的package

由于 conda 将 conda、python 等都视为 package,因此,完全可以使用 conda 来管理 conda 和 python 的版本,例如:

1
conda update conda # 更新conda,保持conda最新conda update anaconda # 更新anacondaconda update python # 更新python

卸载 Anaconda:

1
Linux 或 MacOS 下: rm -rf ~/anaconda3Windows 下:控制面板 → 卸载程序 → 选择“Python X.X (Anaconda)” → 点击“删除程序”

当使用 conda install 无法进行安装时,可以使用 pip 进行安装,例如:see 包。

1
pip install <package_name>注1: <package_name> 为指定安装包的名称。包名两边不加尖括号“<>”。如: pip install see 即安装see包。注2:当前是哪个环境,pip 会把包安装在当前环境。1、pip只是包管理器,无法对环境进行管理。因此如果想在指定环境中使用pip进行安装包,则需要先切换到指定环境中,再使用pip命令安装包。2、pip无法更新python,因为pip并不将python视为包。3、pip可以安装一些conda无法安装的包;conda也可以安装一些pip无法安装的包。因此当使用一种命令无法安装包时,可以尝试用另一种命令。

另:当使用 conda install 无法进行安装时,可以考虑从 http://Anaconda.org 搜索要安装的包名,并获取安装包的命令,进行安装。

3. Anaconda 环境管理

关于 Anaconda 的环境重点说下。
(1)创建新环境: conda create --name <env_name> <package_names>

1
<env_name> 即创建的环境名。建议以英文命名,且不加空格,名称两边不加尖括号“<>”。<package_names> 即安装在环境中的包名。名称两边不加尖括号“<>”。① 如果要安装指定的版本号,则只需要在包名后面以 = 和版本号的形式执行。如:conda create --name py2 python=2.7 ,即创建一个名为“py2”的环境,环境中安装版本为2.7的python。② 如果要在新创建的环境中创建多个包,则直接在 <package_names> 后以空格隔开,添加多个包名即可。如: conda create -n py3 python=3.5 numpy pandas ,即创建一个名为“python3”的环境,环境中安装版本为3.5的python,同时也安装了numpy和pandas。注1:--name 可以替换为 -n 。注2:默认情况下,新创建的环境将会被保存在 Anaconda 安装目录下的 envs 目录,其中, <user_name> 为当前用户的用户名。

注:假设创建的新环境为 py3(会在 Anaconda 安装目录下 env 文件夹下生产同名的文件夹 py3),activate py3 进入 py3 环境中,再运行命令:conda install tensorflow,则会安装 tensorflow 到 py3 此环境中,即下载的 TensorFlow 文件,存放在 D:\Anaconda3\envs\py3\Lib\site-packages 下。
(2)切换环境
① Linux 或 macOS 下:source activate <env_name>
② Windows 下:activate <env_name>
③ 提示

  • 如果创建环境后安装Python时没有指定Python的版本,那么将会安装与Anaconda版本相同的Python版本,即如果安装Anaconda第2版,则会自动安装Python 2.x;如果安装Anaconda第3版,则会自动安装Python 3.x。
  • 当成功切换环境之后,在该行行首将以“(env_name)”或“[env_name]”开头。其中,“env_name”为切换到的环境名。如:在macOS系统中执行 source active python2,即切换至名为“python2”的环境,则行首将会以(python2)开头。
    (3)退出环境至root
    ① Linux 或 macOS 下:source deactivate
    ② Windows 下:deactivate
    ③ 提示:当执行退出当前环境,回到root环境命令后,原本行首以“(env_name)”或“[env_name]”开头的字符将不再显示。
    (4)显示已创建环境:conda info --envs 或 conda env list
    (5)复制环境:conda create --name <new_env_name> --clone <copied_env_name>
1
注意:① <copied_env_name> 即为被复制/克隆环境名。环境名两边不加尖括号“<>”。② <new_env_name> 即为复制之后新环境的名称。环境名两边不加尖括号“<>”。③ conda create --name py2 --clone python2 ,即为克隆名为“python2”的环境,克隆后的新环境名为“py2”。此时,环境中将同时存在“python2”和“py2”环境,且两个环境的配置相同。

(6) 删除环境:conda remove --name <env_name> --all

  • 注意: 为被删除环境的名称。环境名两边不加尖括号“<>”。
    有了虚拟环境,在 PyCharm IDE 下就可以指定虚拟环境下的解析器,非常方便。具体做法是:File –> Default settings –> Default project –> project interpreter,接着点击 project interpreter 的右边的小齿轮,选择 add local ,选择 anaconda 文件路径下想要使用的虚拟环境下的 python.exe,接着 PyCharm 会更新解释器,导入模块等,要稍等一点时间。
    注:在 PyCharm IDE 中安装库会自动下载到指定解析器所在的环境的<env-name>\Lib\site-packages 下。
    另外:关于创建虚拟环境,如果你只是安装了 Python,官方自带创建虚拟环境功能,如创建名为 myenv 的虚拟环境 python -m venv myenv;另外也可以通过安装 virtualenv 来创建虚拟环境,步骤如下:
  1. 首先安装 virtualenv:pip install virtualenv
  2. 创建虚拟环境: xml $ mkdir myproject$ cd myproject$ virtualenv venv 创建了一个名为 myproject 的文件夹,然后这里边创建虚拟环境 venv。参考:Anacodna之conda VS Virtualenv VS Python 3 venv 对比使用教程,创建虚拟环境
    关于 pip 和 virtualenv 以及 conda 区别,可以这么理解:pip 是一个包管理器,virtualenv 是一个环境管理器,而 conda 就是它们俩的综合体。

4. 注意和总结

(1) 注意
在安装有多个 Python 环境情况下,比如除了单独的 Python,还有 Anaconda 环境,那么在 Windows 的 CMD 下使用 pip install <package>、conda install <package> 等命令到底使用的哪个环境呢?毕竟还是要清楚自己安装的库到底是安装在哪吧。
(1)查看 pip 命令来源哪个环境:pip --version 或 pip -V,可以看到如下:

1
pip 9.0.1 from D: devInstall\ Anaconda3\ lib\ site-packages <python 3.6)

如上表示来自 Anaconda 环境下的 pip,则使用 pip 安装的库安装在对应的 anaconda 环境下。
(2)使用:conda install <package> 表示安装在默认的 anaconda 环境下,如果想要安装到新建的虚拟环境,如 py3 ,则先切换到该虚拟环境 activate <env_name>(windows 下),然后使用 conda install 安装即可。
(3)查看 CMD 下使用的 python 命令来源哪个环境,python --version 或 python -V,比如可以看到:

1
Python 3.6.4:: Anaconda, Inc.

表明来源 Anaconda 环境。

5. 自己操作遗留的问题

  1. 按目录4里查看pip命令来源的环境如下 pip 24.0 from D:\anaconda\Lib\site-packages\pip (python 3.12) 说明是来自 Anaconda 环境下的 pip,则使用 pip 安装的库安装在对应的 anaconda 环境下,但是我查看一开始安装的python3.12也存在pip,感觉就是现在anaconda安装的pip被设为默认了,那么问题就来了,我怎么使用原来安装的python中的pip来为其和其所创建的虚拟环境安装库呢(这里”其”是指在anaconda之前安装的python3.12,其创建管理虚拟环境的方式一般采用venv)
  2. 以上提到的对实现安装的python3.12创建管理虚拟环境的方法也要了解。下面给出具体的链接。 介绍管理四种管理虚拟环境的方法(主要看venv):https://blog.csdn.net/qq_42951560/article/details/124224972 venv 官方文档:https://docs.python.org/3/library/venv.html

基本框架(从github上抄来的感觉可行)

1
#ifndef PID_H#define PID_Htypedef struct{    //所需要调节的参数    float Kp;    float Ki;    float Kd;        float tau;//积分所用到的低通滤波时间常数    float limMin;//out输出限制幅度    float limMax;    float limMinInt;//积分项限制幅度    float limMaxInt;    float T;//采样速率    float integrator;//积分项    float prevError;//上一次的误差    float differentiator;//微分项    float prevMeasurement;//上一次的测量值    float out;//输出} PIDController;float PID_update(PIDController *pid, float setpoint, float measurement);#endif /* PID_H */
1
#include "pid.h"PIDController motor_pid;// create a PIDController object for motorspeed controlfloat PID_update(PIDController *pid, float setpoint, float measurement) {	/*	* Error signal	*/    float error = setpoint - measurement;	/*	* Proportional	*/    float proportional = pid->Kp * error;	/*	* Integral	*/    pid->integrator = pid->integrator + 0.5f * pid->Ki * pid->T * (error + pid->prevError);	/* Anti-wind-up via integrator clamping */    if (pid->integrator > pid->limMaxInt) {        pid->integrator = pid->limMaxInt;    } else if (pid->integrator < pid->limMinInt) {        pid->integrator = pid->limMinInt;    }	/*	* Derivative (band-limited differentiator)	*/		    pid->differentiator = -(2.0f * pid->Kd * (measurement - pid->prevMeasurement)	/* Note: derivative on measurement, therefore minus sign in front of equation! */                        + (2.0f * pid->tau - pid->T) * pid->differentiator)                        / (2.0f * pid->tau + pid->T);	/*	* Compute output and apply limits	*/    pid->out = proportional + pid->integrator + pid->differentiator;    if (pid->out > pid->limMax) {        pid->out = pid->limMax;    } else if (pid->out < pid->limMin) {        pid->out = pid->limMin;    }	/* Store error and measurement for later use */    pid->prevError       = error;    pid->prevMeasurement = measurement;	/* Return controller output */    return pid->out;}

补充

  1. 对于微分项后面 plaintext pid->differentiator = -(2.0f * pid->Kd * (measurement - pid->prevMeasurement) /* Note: derivative on measurement, therefore minus sign in front of equation! */ + (2.0f * pid->tau - pid->T) * pid->differentiator) / (2.0f * pid->tau + pid->T);
  • 代码解释
    1. -(2.0f * pid->Kd * (measurement - pid->prevMeasurement)):pid->Kd 是PID控制器中的微分增益(Derivative Gain)。
      • measurement - pid->prevMeasurement 是当前测量值与上一次测量值的差,表示测量值的变化率。
      • 2.0f * pid->Kd * (measurement - pid->prevMeasurement): 计算的是微分项的一部分。
      • 前面的负号 “-”是因为这里计算的是测量值的微分,而不是误差的微分。注释中提到的“therefore minus sign in front of equation!”就是这个意思。
      • (2.0f * pid->tau - pid->T) * pid->differentiator:
      • pid->tau 是一个滤波常数,用于限制微分项的高频噪声。
      • pid->T 是采样时间。
      • (2.0f * pid->tau - pid->T) * pid->differentiator 是微分项的递推部分,用于平滑微分输出。
    2. / (2.0f * pid->tau + pid->T):
      • 这是对整个微分项进行归一化处理,以确保微分项的幅值在合理的范围内。
  1. 对于积分项后面 plaintext pid->integrator = pid->integrator + 0.5f * pid->Ki * pid->T * (error + pid->prevError);
  • 代码解释
    1. 0.5f * pid->Ki * pid->T * (error + pid->prevError):
      • error + pid->prevError 是当前误差和上一次误差的和。
      • 0.5f * (error + pid->prevError) 是对误差和进行平均处理,以平滑积分项的计算。
      • pid->Ki * pid->T 是积分增益和采样时间的乘积,表示积分项的单位时间内的累积速率。
      • 因此,0.5f * pid->Ki * pid->T * (error + pid->prevError) 计算的是当前采样周期内积分项的增量。
    2. pid->integrator + 0.5f * pid->Ki * pid->T * (error + pid->prevError):
      • 这是将当前采样周期内积分项的增量加到之前的积分项上,以更新积分项的值。

还可以的一个视频教程和文字教程

视频链接:(https://www.bilibili.com/video/BV1bQ4y1n7sn/?spm_id_from=333.337.search-card.all.click&vd_source=383c3454e0a30e6b8f08a9621b477848)
菜鸟教程链接(可以当作补充下面的命令):(https://www.runoob.com/python-qt/anaconda-tutorial.html)

一些常用的命令(感觉有助于理解虚拟环境)

目前对虚拟环境的理解就是创建一个单独的为特定项目服务的python编译环境(或者是解释器,环境更贴切一点因为环境里面可以加各种需要用到的包)

1
conda info查看虚拟环境列表:conda env listanaconda换源:conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/conda config --set show_channel_urls yes更改anaconda虚拟环境默认安装位置:conda config --add envs_dirs D:\software\anaconda\envs新建虚拟环境:conda create -n yourname python=3.7启用虚拟环境conda activate yourname删除虚拟环境conda remove -n yourname --all指定源安装pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple

用到的插件

  1. 一些涉及C语言语法的插件
  2. keil assistant插件,将其扩展设置打开,添加keil的路径。

遇到的问题

  1. 打开keil文件后,intelliSense一直显示正在初始化,导致跳转文件无法使用。解决方法是要先配置complierPath为安装的gcc程序。(在edit configurations(UI)中设置,或者直接在命令面板里找到>slect intellisense configuration,然后选择gcc编译器)这里给出官方的配置文档链接:https://vscode.github.net.cn/docs/cpp/configure-intellisense#_configuration-providers

这是我的第一篇博客

1
以下内容来自大神的转载,链接:https://github.com/walter201230/Python

不知道免费不

一、List(列表)

1、什么是 List (列表)

List (列表)是 Python 内置的一种数据类型。 它是一种有序的集合,可以随时添加和删除其中的元素。
那为什么要有 List (列表)呢?
我们用一个例子来说明。
现在有一个团队要出去玩,要先报名。如果用我们之前学过的知识,那么就是用一个字符串变量把他们都记录起来。

但是这样太麻烦了,而且也不美观。
在编程中,一定要学会偷懒,避免「重复性工作」。如果有一百个成员,那么你及时是复制粘贴,也会把你写烦。
这时候就可以使用列表了。

就这样,一行代码就可以存放 N 多个名字了。

2、怎么创建 List(列表)

从上面的例子可以分析出,列表的格式是这样的。

其实列表就是用中括号 [] 括起来的数据,里面的每一个数据就叫做元素。每个元素之间使用逗号分隔。
而且列表的数据元素不一定是相同的数据类型。
比如:

1
list1=['两点水','twowter','liangdianshui',123]

这里有字符串类型,还有整数类型。
我们尝试把他打印出来,看看打印的结果是怎样的。

结果如下:

3、如何访问 List(列表)中的值

就像一开始的例子,我们有时候不需要把全部人员的姓名都打印出来,有时候我们需要知道第 3 个报名的人是谁?前两名报名的是谁?
那么怎么从列表中取出来呢?
换种问法就是,怎么去访问列表中的值?
这时候我们可以通过列表的下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符。
例如:

1
name = ['一点水', '两点水', '三点水', '四点水', '五点水']# 通过索引来访问列表print(name[2])# 通过方括号的形式来截取列表中的数据print(name[0:2])

输出的结果:

可见,我们需要知道知道 name 这个列表中第三个报名的是谁?只需要用 name[2] 就可以了。
这里你会问,为什么是 2 ,不是 3 呢?
这是因为在编程世界中,都是从 0 开始的,而不是我们生活习惯中从 1 开始。
所以需要知道第三个是谁?
那就是 name[2] 就可以了。
从例子来看,我们还把 name[0:2] 的结果打印出来了。
从打印结果来看,只打印了第一,第二个元素内容。
这里可能会有疑问?
为什么不是打印前三个啊,不是说 2 就是第 3 个吗?
那是因为这是左闭右开区间的。
所以 name[0:2] 的意思就是从第 0 个开始取,取到第 2 个,但是不包含第 2 个。
还是那句话,为了更好的理解,可以多去尝试,多去玩编程。
所以你可以尝试下下面的各种方式:

看看输出的结果:

根据输出的结果和上面讲到的知识,就很容易理解其中的一些用法了。

1
## 4、怎么去更新 List(列表) ##

还是一开始的例子,我们用代码记录了报名人的名字,那后面可能会有新人加入,也有可能会发现一开始写错名字了,想要修改。
这时候怎么办呢?
这时候可以通过索引对列表的数据项进行修改或更新,也可以使用 append() 方法来添加列表项。

1
name = ['一点水', '两点水', '三点水', '四点水', '五点水']# 通过索引对列表的数据项进行修改或更新name[1]='2点水'print(name)# 使用 append() 方法来添加列表项name.append('六点水')print(name)

输出的结果:

5、怎么删除 List(列表) 里面的元素

那既然这样,肯定会有人中途退出的。
那么我们就需要在列表中,把他的名字去掉。
这时候使用 del 语句来删除列表的的元素

1
name = ['一点水', '两点水', '三点水', '四点水', '五点水']print(name)# 使用 del 语句来删除列表的的元素del name[3]print(name)

输出的结果:

你看输出的结果,列表中已经没有了 四点水 这个数据了。证明已经删除成功了。

6、List(列表)运算符

列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。

Python 表达式 结果 描述
len([1, 2, 3]) 3 计算元素个数
[1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 组合
[‘Hi!’] * 4 [‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’] 复制
3 in [1, 2, 3] True 元素是否存在于列表中
for x in [1, 2, 3]: print x, 1 2 3 迭代

7、List (列表)函数&方法

函数&方法 描述
len(list) 列表元素个数
max(list) 返回列表元素最大值
min(list) 返回列表元素最小值
list(seq) 将元组转换为列表
list.append(obj) 在列表末尾添加新的对象
list.count(obj) 统计某个元素在列表中出现的次数
list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
list.index(obj) 从列表中找出某个值第一个匹配项的索引位置
list.insert(index, obj) 将对象插入列表
list.pop(obj=list[-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list.remove(obj) 移除列表中的一个元素(参数是列表中元素),并且不返回任何值
list.reverse() 反向列表中元素
list.sort([func]) 对原列表进行排序

8、实例

最后通过一个例子来熟悉了解 List 的操作
例子:

1
#-*-coding:utf-8-*-#-----------------------list的使用----------------------------------# 1.一个产品,需要列出产品的用户,这时候就可以使用一个 list 来表示user=['liangdianshui','twowater','两点水']print('1.产品用户')print(user)# 2.如果需要统计有多少个用户,这时候 len() 函数可以获的 list 里元素的个数len(user)print('\n2.统计有多少个用户')print(len(user))# 3.此时,如果需要知道具体的用户呢?可以用过索引来访问 list 中每一个位置的元素,索引是0从开始的print('\n3.查看具体的用户')print(user[0]+','+user[1]+','+user[2])# 4.突然来了一个新的用户,这时我们需要在原有的 list 末尾加一个用户user.append('茵茵')print('\n4.在末尾添加新用户')print(user)# 5.又新增了一个用户,可是这个用户是 VIP 级别的学生,需要放在第一位,可以通过 insert 方法插入到指定的位置# 注意:插入数据的时候注意是否越界,索引不能超过 len(user)-1user.insert(0,'VIP用户')print('\n5.指定位置添加用户')print(user)# 6.突然发现之前弄错了,“茵茵”就是'VIP用户',因此,需要删除“茵茵”;pop() 删除 list 末尾的元素user.pop()print('\n6.删除末尾用户')print(user)# 7.过了一段时间,用户“liangdianshui”不玩这个产品,删除了账号# 因此需要要删除指定位置的元素,用pop(i)方法,其中i是索引位置user.pop(1)print('\n7.删除指定位置的list元素')print(user)# 8.用户“两点水”想修改自己的昵称了user[2]='三点水'print('\n8.把某个元素替换成别的元素')print(user)# 9.单单保存用户昵称好像不够好,最好把账号也放进去# 这里账号是整数类型,跟昵称的字符串类型不同,不过 list 里面的元素的数据类型是可以不同的# 而且 list 元素也可以是另一个 listnewUser=[['VIP用户',11111],['twowater',22222],['三点水',33333]]print('\n9.不同元素类型的list数据')print(newUser)

list的使用

so 到底免费还是收费

  1. 如果是有免费额度的话那我就部署在相关的平台上,例如zeabur,这里附上操作链接:https://blog.laogou717.com/2024/07/31/AI%20era/Hexo/
  2. 不过Github Pages 用着也还好。
  3. 回到原来先试一试
  4. 现在还不知道POST(也就是要写的文章)怎么通过tags都整理到一起
  5. 在菜单上也没有加入搜索选项
0%