平面曲线的弧长和曲率
通过定积分我们能够计算平面曲线的弧长和曲率。对于平面曲线的画出,通过利用参数方程和对曲线划分以直代曲的定积分思想来计算弧长。
平面曲线的弧长设$C = \stackrel\frown{AB}$ 是一条没有自交点的非闭的平面曲线。在$C$上从$A$到$B$依次取分点:$$A=P_0, P_1, P_2, \cdots, P_{n-1}, P_n = B,$$它们成为对曲线$C$的一个分割,记为$T$。然后用线段联结$T$中每个相邻的两点,得到$C$的$n$条弦$\overline{P_{i-1}P_i} (i=1,2,\cdots,n)$,这$n$条弦又成为$C$的一条内接折线。记$$|T| = \max_{1\leq i \leq n} |P_{i-1}P_i|, s_T = \sum^n_{i=1}|P_{i-1}P_i|,$$分别表示最长弦的长度和折线的总长度。
定义 1 如果存在有限极限$$\lim_{|T|\to 0}s_T = s,$$即任给$\varepsilon > 0$,恒存 ...
Mac 电脑设置 shell 脚本开机自启
苹果电脑 Mac 无论是运行流畅度,还是界面都给用户一种非常完美的感受。在 Linux 系统上设置开机自启脚本有很多教程,在 Mac 上如何开机自启 shell 脚本呢,这里介绍一种方法。
编写脚本这里以脚本 test.sh 为例,该脚本具体如下,即在开机时在用户桌面创建 success 空文件。
12cd ~/Desktoptouch success
写入上面内容后,保存为 test.sh,把脚本文件放在用户桌面。
设置权限1sudo chmod 777 test.sh
修改文件打开方式在桌面找到 test.sh 文件,右键找到‘显示简介’, 将打开方式修改为‘终端’,共享和权限将所有权限打开,即设置 staff 和 everyone 的权限为读与写。
配置开机启动进入系统偏好设置,找到用户与群组,打开小锁,找到当前用户的登录项,将 test.sh 添加到登录项,并把隐藏选型卡勾选。重启系统即可。
参考链接mac设置shell脚本开机自启动
在 Linux 上设置不同的语言和时区
Linux 系统语言的设置至关重要,当设置不匹配的语言时,严重影响使用的效率。如在系统上没有设置中文时,大多出现乱码、数字等情况,使得使用的体验感大幅下降。下面介绍在 Debian, CentOS 等系统上设置中文或其他语言的方法。本篇命令以 root 身份运行。
Debian 类12345678910111213apt updateapt install localedpkg-reconfigure locales# 使用空格选择相应的语言,使用上下键移动光标# 选择好需要安装的语言后,使用 TAB 键切换到 ok# 使用上下键选择默认的使用的语言# 安装成功后,需重启系统shutdown -r now# 使用下面命令查看是否生效locale# 使用下面命令查看安装的语言locale -a
设置时区
1dpkg-reconfigure tzdata
CentOS123456789101112131415yum update# 查看目前系统语言localectl status# 或者通过如下命令也可以查看cat /etc/locale.conf# 查看系统中安装了哪些语言l ...
Linux 系统下 usr 目录由来
在 Linux(或Unix) 系统下,存放二进制文件的目录一般用 bin 表示,如 /bin, /usr/bin, /usr/local/bin, /opt/bin 等等,它们有什么区别?
在文章: Understanding the bin, sbin, usr/bin , usr/sbin split 中可以知道,Linux 目录结构是历史造成的。
1969年,Ken Thompson 和 Dennis Ritchie 在小型机 PDP-7上发明了 Unix。1971年,他们将主机升级到 PDP-11。当时使用的存储盘 RK05 容量大约是1.5MB,随着使用,根目录(/)下的操作系统越来越大,无法装下。于是增加了第二张盘 RK05,专门储存用户(user)程序,取名挂载点为 /usr,两张盘的结构完全一样,如在第一张盘或根目录下的 /bin, /sbin, /lib, /tmp… 在第二张盘 /usr 目录下 ...
流形
流形(Manifolds)是可以局部欧几里得空间的一个拓扑空间,是欧几里得空间中的曲线、曲面等概念的推广。欧几里得空间就是最简单的流形的实例。地球表面这样的球面则是一个稍微复杂的例子。一般的流形可以通过把许多平直的片折弯并粘连而成。
一般可以把几何形体的拓扑结构看作是完全“柔软”的,因为所有变形(同胚)会保持拓扑结构不变;而把解析几何结构看作是“硬”的,因为整体的结构都是固定的。例如,当一个多项式在 $(0, 1)$ 区间的取值确定了,则其在整个实数范围的值都被固定,可见局部的变动会导致全局的变化。光滑流形可以看作是介于两者之间的模型:其无穷小的结构是“硬”的,而整体结构则是“柔软”的。这也许是中文译名“流形”的原因(整体的形态可以流动)。该译名由著名数学家和数学教育学家江泽涵引入。这样,流形的硬度使它能够容纳微分结构,而它的软度使得它可以作为很多需要独立的局部扰动的数学和物理的模型。
流形流形可以视为近看起来像欧几里得空间或其他相对简单的空间的物体。例如,人们曾经以为地球是平的。这是因为相对于地球来说人类实在太小,平常看到的地面是地球表面微小的一部分。所以,尽管知道地球实际上差不 ...
Python 加速计算介绍
Python 编写程序简单高效,但运行效率相比 C 等较慢,不太适合处理计算密集型任务(对 IO 较适用)。如果想要适用 Python 进行密集计算,可以采用某些手段加速计算,一定程度上缓解这种矛盾。
Numba 模块Numba is an open source JIT compiler that translates a subset of Python and NumPy code into fast machine code.
Numba 是开源的 JIT 编译器,它通过 llvmlite Python 包,使用 LLVM 将 Python 的子集和 NumPy 翻译成快速的机器码。它为在 CPU 和 GPU 上并行化 Python 代码提供了大量选项,而经常只需要微小的代码变更。下面给出一个实例介绍 Numba 模块加速计算效果。
123456789101112131415161718192021222324252627282930import timeitimport numpy as npfrom numba import jit, njitdef my_sum1( ...
在 markdown 中书写矩阵
使用 markdown 写文章非常方便,简洁。对于数学符号书写也是非常的高效,本篇主要介绍如何在 markdown 中书写矩阵。
不带括号的矩阵代码之后的 tag 实现了后标
1234567$$\begin{matrix} 1 & 2 & 3 \\\\ 4 & 5 & 6 \\\\ 7 & 8 & 9\end{matrix} \tag{1}$$
效果如下:$$\begin{matrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9\end{matrix} \tag{1}$$
带括号 { } 的矩阵1234567$$\begin{Bmatrix} 1 & 2 & 3 \\\\ 4 & 5 & 6 \\\\ 7 & 8 & 9\end{Bmatrix} \tag ...
几个聚类算法
本节介绍一些典型的聚类算法,如 K-Means,DBSCAN,谱聚类,层次聚类,optics,birch 等。聚类就是对大量未知标注的数据,按照内在相似性将其划分为多个类别,使类别内的数据相似度较大而类别间的数据相似度较小。通过计算每个类的代表点可以获得整个数据集的少量代表点,从而获得整个数据集的结构、形状信息。聚类算法通常处理无标签的数据集,因此常使用相似度或距离来处理。有衡量两个点(向量)之间的距离的,有衡量两个子集合之间的距离的,也有衡量点到子集合之间距离的。
首先先给出一个图,来直观看一下各个聚类算法的效果图。
数学上,什么是距离?非空集合 $X$ 上的度量为一个函数(称之为“距离函数”或简称为“距离”)$$d: X \times X \to \mathbb{R}$$这里的 $\mathbb{R}$ 是实数集合,且对于所有 $X$ 内的 $x, y, z$,均满足如下条件:
非负性,或分离公理$$d(x, y) \geq 0$$
同一性,或同时公理$$d(x,y) = 0 \Longleftrightarrow x = y$$
对称性$$d(x, ...
使用 filebrowser 和 Nginx 在 VPS 搭建云盘
个人云盘能够方便存储个人文档,特别是没有上传下载速度限制,可以灵活扩展容量,具有更好的私密性。当具有远程服务器(如VPS)时,可以使用 filebrowser 搭建个人云盘。结合 Nginx 实现个性化网页快速访问。下面分别介绍如何在远程服务器上安装 Nginx, filebrowser, 以及他们的配置。本篇以 Debian 10 为例,Ubuntu 系统类似, CentOS 系统需要切换相应命令,但一般是将 apt 更改为 yum.
安装 Nginx12sudo apt updatesudo apt install nginx
安装 filebrowser1curl -fsSL https://filebrowser.org/get.sh | bash
配置 filebrowser1234567891011121314# 创建配置数据库filebrowser -d .filebrowser.db config init# 设置监听地址filebrowser -d .filebrowser.db config set --address 0.0.0.0# 设置监听端口,需要打 ...
利用 nginx 反向代理为 jupyterlab 配置二级网址页面
当服务器配置好 Python, Jupyterlab 后,访问总是通过 8888 端口,出于某些原因,想要为其配置二级页面,这样当想要更改端口时只需要修改一下配置,而不需要再次记忆到底是打开了哪个端口,只需要记住二级页面 web 地址就可以。本篇不介绍如何配置 Jupyterlab,而是假设已经配置好了 Jupyterlab,且申请了域名,直接说如何通过 nginx 配置 Jupyterlab.
安装 nginx12345sudo apt updatesudo apt install nginxsudo systemctl status nginx.servicesudo systemctl start nginx.servicesudo systemctl enable nginx.service
配置 Jupyterlab12345678910# 生成 jupyterlab 配置文件jupyter notebook --generate-config# 修改配置vim .jupyter/jupyter_notebook_config.py# 修改如下内容c.NotebookA ...
TensorFlow 分布式简单介绍
TensorFlow 能够方便的进行深度学习实践,特别是拥有多GPU的服务器或拥有多台GPU服务器时,如何使用 TensorFlow 进行快速训练,节约宝贵时间呢,下面介绍 TensorFlow 给出的分布式训练方法。
单台服务器多GPU情况下对于单台服务器下有多个GPU,TensorFlow 给出了镜像分布式策略 tensorflow.distribute.MirroredStrategy ,具体的使用是只需要实例化一个 MirroredStrategy 策略 (strategy = tensorflow.distribute.MirroredStrategy()),并把模型构建代码放置在 strategy.scope() 下就可以。
注意,在该策略下,可以指定参与计算的GPU,方法如下:
12# 指定计算的GPU为0,1strategy = tensorflow.distribute.MirroredStrategy(devices=["/gpu:0", "/gpu:1"])
使用该策略进行模型 MobileNetV2 训练 ...