热门文章
最新发布
-
Win10配置Python环境及安装apexpy包 0 前言 之前一直使用Mac办公,今天因为工作需求需要在Windows上运行之前写的代码,在安装apexpy包时,遇到了不少问题,经过一番折腾,发现是gfortran和Python版本问题导致的,在此记录下。 1 安装Python 目前(2024-05)最新的Python版本为3.12.3,由于apexpy包还没有完全支持最新版本,所以需要使用相对落后的版本,经测试发现3.10.11版本可正常使用 前往Python官网下载3.10.11版本: 64位:Windows installer (64-bit) 32位:Windows installer (32 -bit) 下载完成后,双击安装包,勾选安装界面的两个复选框,点击安装(建议安装在默认路径) 使用win+R快捷键,输入cmd,点击【确定】进入终端 输入python --version,打印Python 3.10.11则安装成功。如果版本号不对,可能是之前安装过python,可选择卸载其他版本或创建新的运行环境(网上自行搜索教程,建议使用必应搜索,非常不推荐使用百度) 输入pip list查看当前已安装的包 2 安装apexpy包 apexpy包需要有gcc和gfortran的运行环境,可参考Win10安装mingw64配置最新版gcc与gfortran环境博客 使用win+R快捷键,输入cmd,点击【确定】进入终端 输入pip install apexpy,等待安装结束即可 该包安装完成后,会顺带安装numpy包 现在的程序还需要使用netCDF4、scipy、matplotlib 同样在终端中使用pip install <package>进行安装,将<package>改为对应包的名称即可 3 安装编辑器 此处推荐使用Visual Studio Code,可前往官网进行下载安装 安装完成后,点击左侧【扩展】图标 搜索Chinese (Simplified) (简体中文) ,安装第一个搜索结果 搜索python,安装第一个搜索结果 搜索Jupyter,安装第一个搜索结果 一般来说安装上面三个扩展就能够正常运行代码了,如有其他需求也可自行搜索安装 4 后记 涉及到fortran的东西,总是存在一堆奇怪的问题,害我折腾了这么久。
-
Win10安装mingw64配置最新版gcc与gfortran环境 0 前言 最近因为多件事情的需求,需要在Windows电脑上配置Fortran环境,由于网上大多数的博客介绍的方法安装的Fortran版本较低,使用过程中会出现各种问题,最终找到了解决办法,在此处记录下。 1 安装MinGW-w64 在线安装版本无法获取最新版本,只能到8.x,最新版本需要从GitHub上获取,链接如下: https://github.com/niXman/mingw-builds-binaries/releases 当前(2024-05)最新版本为13.2,如下图所示。其中i686为32位,x86_64为64位,对于win10电脑,下载图中红框压缩包 将下载好的x86_64-13.2.0-release-win32-seh-ucrt-rt_v11-rev1.7z压缩包解压至C盘根目录,此时路径为C:\mingw64 将C:\mingw64\bin添加至系统环境变量 进入【此电脑】,空白处右键,选择【属性】,点击左侧【高级系统设置】,点击右下角【环境变量】 双击系统变量中的【Path】,点击【新建】,写入C:\mingw64\bin,然后确定即可 使用win+R快捷键,输入cmd,点击【确定】进入终端 在终端中输入gcc --version,正常打印版本号则安装成功 在终端中输入gfortran --version,正常打印版本号则安装成功 如果以上操作都没问题,但版本号不对,可进行如下排查 在终端输入where gfortran,查看打印出来的路径是否存在其他的路径 若存在,可选择删除其他版本的gcc/gfortran,或者将环境变量中其他版本的路径删除,或者将环境变量中新安装的版本路径移动至最上方 注意:gcc与gfortran的版本号必须一致 参考: MinGW-W64 下载、安装与配置(支持最新版的GCC,目前 GCC 13.2.0) 2 后记 这件事也是反复折腾很多次了,每次都会遇到不同的问题。不过这次算是彻底搞明白了,以后直接参考这次结果就行。
-
Savitzky-Golay滤波器原理-01 0 前言 最近在看文章时,发现有人使用Savitzky-Golay滤波器对数据进行预处理,提取背景值,尝试之后发现效果显著。因此,简单研究下Savitzky-Golay滤波器的原理。 1 Savitzky-Golay滤波器原理 1.1 简介 Savitzky-Golay滤波器(通常简称为S-G滤波器)最初由Savitzky和Golay于1964年提出,发表于Analytical Chemistry 杂志。之后被广泛地运用于数据流平滑除噪,是一种在时域内基于局域多项式最小二乘法拟合的滤波方法。这种滤波器最大的特点在于在滤除噪声的同时可以确保信号的形状、宽度不变$^{[1]}$。 Savitzy-Golay 卷积平滑算法是移动平滑算法的改进。用 Savitzky-Golay 方法进行平滑滤波,可以提高光谱的平滑性,并降低噪音的干扰。Savitzy-Golay 平滑滤波的效果,随着选取窗宽不同而不同,可以满足不同场合的需求$^{[1]}$。 1.2 推导 思想:使用一定长度窗口的数据对窗口中心的数据进行平滑处理。设窗口的宽度为$2m + 1$,窗口内的数据值为$y_i$, $i = -m,-m+1,\dots,-1,0,1,\dots,m-1,m$,使用$n$阶多项式对其进行拟合,有 $$ f_i = f(i) = \sum_{k=0}^{n} b_k i^k $$那么拟合数据与原始数据的残差平方和为 $$ R = \sum_{i=-m}^{m} (f_i - y_i)^2 = \sum_{i=-m}^{m} \left( \sum_{k=0}^{n} b_k i^k - y_i \right)^2 $$使用最小二乘的思想,为了使拟合效果最好,需要使残差的平方和最小,则需要使得所有拟合系数的一阶偏导为零。对于第$l$个系数$b_l$有 $$ \frac{\partial R}{\partial b_l} = 2 \sum_{i=-m}^{m} \left( \sum_{k=0}^{n} b_k i^k - y_i \right)i^l = 0 $$整理后可得 $$ \sum_{i=-m}^{m} y_i i^l = \sum_{k=0}^{n} b_k \sum_{i=-m}^{m} i^{k+l} $$对于$l \in [0,n]$可以得到$n+1$个方程,联立后可以解得所有系数$b_l$。写成矩阵形式,有 $$ \begin{bmatrix} (-m)^0 & \dots & 0^0 & \dots & m^0 \\ \vdots & & \vdots & & \vdots \\ (-m)^l & \dots & 0^l & \dots & m^l \\ \vdots & & \vdots & & \vdots \\ (-m)^n & \dots & 0^n & \dots & m^n \\ \end{bmatrix} \begin{bmatrix} (-m)^0 & \dots & (-m)^k & \dots & (-m)^n \\ \vdots & & \vdots & & \vdots \\ 0^0 & \dots & 0^k & \dots & m^n \\ \vdots & & \vdots & & \vdots \\ m^0 & \dots & m^k & \dots & m^n \\ \end{bmatrix} \begin{bmatrix} b_0 \\ \vdots \\ b_k \\ \vdots \\ b_n \\ \end{bmatrix} = \begin{bmatrix} (-m)^0 & \dots & 0^0 & \dots & m^0 \\ \vdots & & \vdots & & \vdots \\ (-m)^l & \dots & 0^l & \dots & m^l \\ \vdots & & \vdots & & \vdots \\ (-m)^n & \dots & 0^n & \dots & m^n \\ \end{bmatrix} \begin{bmatrix} y_{-m} \\ \vdots \\ y_0 \\ \vdots \\ y_m \\ \end{bmatrix} $$得到所有系数后,将其代回拟合方程,并计算中心点处的拟合值 $$ f_0 = f(0) = b_0 $$此时,我们就得到了Savitzky-Golay滤波器平滑后的中心点的数值大小。 1.3 一阶形式 当使用一阶多项式进行拟合时,代入上一节矩阵形式,很容易可以得到 $$ \begin{bmatrix} 1 & \dots & 1 & \dots & 1 \\ -m & \dots & 0 & \dots & m \\ \end{bmatrix} \begin{bmatrix} 1 & -m \\ \vdots & \vdots \\ 1 & 0 \\ \vdots & \vdots \\ 1 & m \\ \end{bmatrix} \begin{bmatrix} b_0 \\ b_1 \\ \end{bmatrix} = \begin{bmatrix} 1 & \dots & 1 & \dots & 1 \\ -m & \dots & 0 & \dots & m \\ \end{bmatrix} \begin{bmatrix} y_{-m} \\ \vdots \\ y_0 \\ \vdots \\ y_m \\ \end{bmatrix} $$整理后可得 $$ \left\{ \begin{split} &b_0 = \sum_{i=-m}^m y_i / \sum_{i=-m}^{m} 1 \\ &b_1 = \sum_{i=-m}^m y_i i / \sum_{i=-m}^{m} i^2 \\ \end{split} \right. $$从而可以得到中心点处的拟合值为 $$ f_0 = b_0 = \sum_{i=-m}^m y_i / (2m+1) $$此即为滑窗平均的表达式。 参考: 【UWB】Savitzky Golay filter SG滤波器原理讲解 Savitzky-Golay滤波器原理阐述
-
Pai Day 0 前言 在物理学中,我们经常会定义一些物理常数,如光速$c$、万有引力常数$G$、普朗克常数$h$等。物理常数的大小往往与量纲紧密相关,科学家们为了统一数值,也才有了国际单位制的诞生。相对物理常数来说,有意义的数学常数要少得多,比较知名的有圆周率$\pi$、自然指数$e$等。虽然数学常数少得多,但它们都不会受到单位“1”的定义而改变大小(只考虑十进制),比如不管一个圆有多大,它的周长永远都是直径的$\pi$倍。今天作为国际数学日($\pi$ day),自然要好好聊一聊圆周率的故事。 1 符号 $\pi$是第十六个的希腊字母小写,亦是希腊语περιφρεια(表示周边、地域、圆周等意思)的首字母。 1706年,英国数学家威廉·琼斯(William Jones,1675—1749)最先使用$\pi$来表示圆周率。 1736年,瑞士数学家莱昂哈德·欧拉(Leonhard Euler,1707—1783)也开始用$\pi$表示圆周率。 从此,$\pi$便成了圆周率的代名词。 2 计算 古希腊数学家阿基米德从单位圆出发,先用内接正六边形求出圆周率的下界为3,再用外接正六边形并借助勾股定理求出圆周率的上界小于4。接着,他对内接正六边形和外接正六边形的边数分别加倍,将它们分别变成内接正12边形和外接正12边形,再借助勾股定理改进圆周率的下界和上界。他逐步对内接正多边形和外接正多边形的边数加倍,直到内接正96边形和外接正96边形为止。最后,他求出圆周率的下界和上界分别为223/71和22/7,并取它们的平均值3.141851为圆周率的近似值。 公元263年,中国数学家刘徽用“割圆术”计算圆周率,他先从圆内接正六边形,逐次分割一直算到圆内接正192边形,给出3.141024的圆周率近似值。他将3.14和晋武库中汉王莽时代制造的铜制体积度量衡标准嘉量斛的直径和容积检验,发现3.14这个数值还是偏小。于是继续割圆到1536边形,求出3072边形的面积,得到令自己满意的圆周率3927/1250=3.1416。 公元480年左右,南北朝时期的数学家祖冲之进一步得出精确到小数点后7位的结果,给出不足近似值3.1415926和过剩近似值3.1415927。 阿拉伯数学家卡西在15世纪初求得圆周率17位精确小数值,打破祖冲之保持近千年的纪录。 德国数学家鲁道夫·范·科伊伦(Ludolph van Ceulen)于1596年将π值算到20位小数值,后投入毕生精力,于1610年算到小数后35位数,该数值被用他的名字称为鲁道夫数。 现代科技领域使用的圆周率值,有十几位已经足够了。如果以39位精度的圆周率值,来计算可观测宇宙(observable universe)的大小,误差还不到一个原子的体积。 3 化圆为方 公元前5世纪,古希腊哲学家阿那克萨哥拉因为发现太阳是个大火球,而不是阿波罗神,犯有“亵渎神灵罪”而被判处死刑。在监狱等待执行期间,圆圆的月亮透过正方形的铁窗照进牢房,让他对方铁窗和圆月亮产生了兴趣。他不断变换观察的位置,一会儿看见圆比正方形大,一会儿看见正方形比圆大,便提出了一个尺规作图问题“求作一个正方形,使它的面积等于已知的圆面积”。起初他认为这个问题很容易解决,但直至他的好朋友经过多方营救,将其获释出狱,也一无所获。出狱后,他将该问题公布出来,数学家对这个问题很感兴趣,都想解决,可是一个也没有成功。 直至1882年,林德曼(Ferdinand von Lindemann)证明了π是超越数,即π不可能是任何整系数多项式的根。圆周率的超越性彻底否定了“化圆为方”问题的可能性,因所有尺规作图只能得出代数数。 4 拉马努金圆周率公式 印度数学家拉马努金在20世纪初发现可以将圆周率的计算转化为一个无穷级数的求和,通过逐项计算这些级数项的值,可以逐渐逼近圆周率的真实值,该公式的原理基于复分析和模形式的理论。他给出的圆周率公式为 $$ \frac{1}{\pi} = \frac{2\sqrt{2}}{99^2} \sum_{k=0}^{+\infty} \frac{(4k)!}{k!^4} \frac{26390k+1103}{396^{4k}} $$这个公式的收敛速度非常快,只要第一步计算就可以达到祖冲之所达到的精度,而且每增加一项就可以获得8位有效数字。如果采用此公式来计算的话,只需要计算几天时间,就可以得到鲁道夫花费一生时间才得出的结果。正因为该公式惊人的收敛速度,所以现代计算机均采用拉马努金公式及其改进公式来计算$\pi$值。 5 后记 出差回来的途中,在高铁上仔细思考了下自己的现状以及未来的发展计划,总是有些许不如意。现实与理想之间的差距,还需要对自己的性格进行慢慢的打磨。只是希望,渐渐融入生活中的我,依然可以体会到科学研究所带来的乐趣。
-
PTCG-5.5-武汉城市赛参赛记录 0 前言 前段时间报名了1月20号举行的武汉城市赛,入坑一个多月来参加的第一次大型赛事。为了提前适应每场对局限制25分钟的规定,我们在19号晚上打了好几个小时的训练赛,并帮其中一个队友优化了下卡组。我们一共三个人参赛,分别使用三神动物园、水轴连击熊和水轴白马。 1 比赛当天 20号的比赛,上午10点开始核销参赛码,11点45左右开始比赛。本次比赛一共有181人参加,需要先进行7轮的瑞士轮决出8强,再进行3轮淘汰赛。带着进入8强的梦想,开始了今日的比赛。 第一轮:后手对战从未见过的乌贼王VMAX卡组。前期卡奖两只变涩蜥,导致亏了一个轮次。然后一直被乌贼王VMAX的技能削减手牌,最终遗憾输了比赛。比分0-1。 第二轮:后手对战水轴连击熊卡组。平时经常跟连击熊对战,有一定的对战经验,虽然白马卡组面对连击熊卡组稍有劣势,但我相信自己可以好好应对。开局战斗场白马蕾冠王V,备战区两只泪眼蜥,手牌也非常好。后一回合,神抽等级球,只要检索到梦幻,我这把就稳了。然而,牌库里没有检索到梦幻,梦幻居然又在面对连击熊卡组时卡奖。没有梦幻的保护,后二回合被对手穿掉两只泪眼蜥,然后全程卡手无法操作,最终输掉了比赛。比分0-2。 第三轮:后手对战三神卡组。连输两局后,心态已经发生了一些变化,而且这局又是后手,非常的难受。本局的对战过程没有太大的印象了,就记得非常的卡手,轮次落后很严重,然后就输了。比分0-3。 第四轮:先手对战巨金怪VMAX卡组。再次遇到不熟悉的卡组,而且是刚属性的宝可梦,刚好克制白马,不过是先手,还有一战的可能。先一回合,没有摸到白马V底座,先二回合没有能量,先三回合虽然做出两能的白马VMAX,但已经晚了很多。最终遗憾输了比赛。比分0-4。 接下来的三轮瑞士轮,对手都离场了,三轮轮空。 2 赛后感想 首先,组卡组时有些贪心,加入了不少用途不大的卡牌,导致卡手率增加;其次,运气属实不太好,连续三局后手,而且两局关键牌卡奖;最后,实战经验不足,部分对局操作上有些瑕疵,而且有些对手在扔骰子或硬币时,手法不太规范。 对于以后的对战,开局前一定要狠狠地插洗对手牌库五次以上,以最大程度避免对手做牌;然后一定要使用“赛博骰子”(官方微信小程序的扔硬币),以避免手法作弊;最后,白马卡组还是纯粹一些更好,尽可能的保证卡组的流畅度,以打出卡组的上限。
-
PTCG-5.0-白马卡组分享 0 前言 刚入坑PTCG时,开包开出了很多水系宝可梦,随手组了一套水box卡组,但强度很低。去店里打牌的时候,店员推荐可以试一试白马蕾冠王卡组。经过这段时间的磨合,对这套卡组的熟练度稍有提升,分享一下经验。 1 卡组介绍 简介:这是一套纯粹的水轴白马 为了应对连击熊,带了一张梦幻 为了降低成本,没有带咚咚鼠GX、叉字蝠V等工具人 美蓉往往会占据支援者的使用次数,因此加入了两张宝可梦捕捉器代替老大的指令,关键时刻有奇效 修改:目前为5.0版本,几天后将开启5.5版本 必要:5.5版本去掉一张博士的研究,两张无人发电厂,然后加入三张通顶雪道 参考:5.5版本泪眼蜥换为连击泪眼蜥,千面可换一张为连击千面 思路:无脑抢先手,玛俐和竞技场最好一个回合同时拍出 多多练习水轴过牌,时刻控制好手牌数量 把握好填能节奏,避免出现能量不足开不出大招,或者因为用了美蓉而没法使用老大的情况 2 后记 打牌和收集都给我带来了不少快乐,后续也将继续探索新的卡组。需要吐槽的是,3公里以内的道馆居然差不多都倒闭了,每次只能打车去8公里以外的牌店玩。
-
宝可梦集换式卡牌游戏(PTCG)集卡入门介绍 0 前言 最近接触到了宝可梦集换式卡牌游戏(Pokemon Trading Card Game,PTCG),尝试了两把发现上手很容易,竞技性和娱乐性也挺不错。卡牌游戏的竞技和收集我都很喜欢,开始入坑。 1 卡标、编号与稀有度 PTCG由稀有度决定卡牌的获取难度,不同的大版本具有不同的卡标, 不同的卡牌获取方式具有不同组的编号,具体如下: 稀有度:C、U、R(RR、RRR)、S、PR、A、CHR、SR、SSR、HR、UR C、U、R(RR、RRR)包含了本系列所有效果的卡牌,牌佬使用这些稀有度的卡牌最具有性价比 卡标:简体中文版目前已有A、B、C、D、E五个标准的卡牌 2023/11/06 A标和B标退环境,当前可用卡标为C、D、E 编号:同一版本的扩充包、预组、推广卡、礼盒等具有不同的编号组 扩充包一般具有本版本推出的所有卡牌,其他包有时会加一些额外的卡牌 以5.0版本“激”扩充包的第一张卡牌为例,该卡的编号为CS3bC 001/122 CS3bC 表示5.0版本的“激”扩充包 001 表示该卡牌在本系列的编号位置,如果该数字超过了后面的数字,则表示C、U、R(RR、RRR)以外的稀有卡牌 122 表示本系列卡牌的总数量 因此,出于竞技、收集以及性价比,只收集扩充包的C、U、R(RR、RRR)卡牌最为划算。 2 相关小程序或软件 集换社:卡牌收购或卖出市场,也有卡组分享。微信小程序直接搜索即可,也有独立的App 通顶雪道:具有丰富的卡组分享以及查找卡牌判例。微信小程序直接搜索即可。 对战派对:对战配对、扔硬币等功能。微信小程序直接搜索即可。
-
108第一届中国象棋比赛 通讯稿——由AI生成 2023年10月27日,北京时间18点30分,象棋界掀起了一场激烈的风暴,108棋协在108成功举办了第一届中国象棋比赛。这场比赛汇聚了象棋领域的佼佼者,包括红岸、Washy、Ivan、231YU、邓春雨、weyhey、Suzaku和派大星,共计8名选手,他们为观众奉献了一场智力与策略的盛宴。 比赛首先进行了三轮积分赛,Washy、邓春雨、weyhey和派大星凭借出色的表现成功晋级,进入了下一轮的淘汰赛,竞逐着更高的荣誉。 随后,淘汰赛通过抽签决定了比赛顺序。在第一轮中,邓春雨迎战Washy,Washy最终获胜,而派大星与weyhey的对决中,weyhey表现出色,成功晋级。来到第二轮,weyhey迎战Washy,weyhey再度展现出强大的象棋技艺,夺得胜利,成为比赛的冠军,而Washy获得亚军。与此同时,派大星对阵邓春雨,派大星也表现出色,获得季军的殊荣。 比赛完美收官,weyhey荣获冠军,不仅有了荣誉的加冕,还获得了一枚珍贵的3D打印奖牌。这场比赛不仅激发了选手们的激情,也展现了象棋智慧的辉煌,将象棋推向了新的高度。我们期待未来更多象棋盛事的举办,以及象棋在108的蓬勃发展。 赛事简报 积分赛 淘汰赛 冠军奖牌