常系数微分方程求解

常系数微分方程的形式如下 $$ a_{n} \frac{\mathrm{d}^{n} y}{\mathrm{~d} x^{n}}+\cdots+a_{2} \frac{\mathrm{d}^{2} y}{\mathrm{~d} x^{2}}+a_{1} \frac{\mathrm{d} y}{\mathrm{~d} x}+a_{0} y=f(x) $$ 其中$a_n,\ldots,a_1,a_0$知识一些普通的常实数,左边式子中$\frac{\mathrm{d}^{n} y}{\mathrm{~d} x^{n}}$,代表的是$y$的$n$阶导数。

July 8, 2021 · 1 min · Loyio Hex

常用的泰勒级数

以下公式来源于South Caolina 1.$\frac{1}{1-x}$ $$ \begin{aligned}\frac{1}{1-x} &=\quad1+x+x^{2}+x^{3}+x^{4}+\ldots \\&=\quad\sum_{n=0}^{\infty} x^{n}\end{aligned} $$ 当为几何级数时。只需将$x$视为$r$ $x\in (-1,1)$ 2. $e^x$ $$ \begin{aligned}e^{x}\quad &=\quad 1+x+\frac{x^{2}}{2 !}+\frac{x^{3}}{3 !}+\frac{x^{4}}{4 !}+\ldots \\&=\quad\sum_{n=0}^{\infty} \frac{x^{n}}{n !}\end{aligned} $$ 3.$\cos{x}$ $$ \begin{aligned}\cos x\quad &=\quad1-\frac{x^{2}}{2 !}+\frac{x^{4}}{4 !}-\frac{x^{6}}{6 !}+\frac{x^{8}}{8 !}-\ldots \\&=\quad\sum_{n=0}^{\infty}(-1)^{n} \frac{x^{2 n}}{(2 n) !}\end{aligned} $$ 4.$\sin{x}$ $$ \begin{aligned}\sin x \quad &=\quad x-\frac{x^{3}}{3 !}+\frac{x^{5}}{5 !}-\frac{x^{7}}{7 !}+\frac{x^{9}}{9 !}-\ldots \\&=\quad \sum_{n=1}^{\infty}(-1)^{(n-1)} \frac{x^{2 n-1}}{(2 n-1) !} \stackrel{\text { or }}{=} \sum_{n=0}^{\infty}(-1)^{n} \frac{x^{2 n+1}}{(2 n+1) !}\end{aligned} $$ 5.$\ln{(1+x)}$ $$ \begin{aligned}\ln (1+x)\quad &=\quad x-\frac{x^{2}}{2}+\frac{x^{3}}{3}-\frac{x^{4}}{4}+\frac{x^{5}}{5}-\ldots \\&=\quad\sum_{n=1}^{\infty}(-1)^{(n-1)} \frac{x^{n}}{n} \stackrel{\text { or }}{=} \sum_{n=1}^{\infty}(-1)^{n+1} \frac{x^{n}}{n}\end{aligned} $$ ...

July 8, 2021 · 1 min · Loyio Hex

KaTeX(Latex)支持的TeX函数

字符与Unicode 希腊字母(Greek Letters) 小写形式 渲染字符 Katex 渲染字符 Katex 渲染字符 Katex 渲染字符 Katex $\alpha$ \alpha $\beta$ \beta $\gamma$ \gamma $\delta$ \delta $\epsilon$ \epsilon $\zeta$ \zeta $\eta$ \eta $\theta$ \theta $\iota$ \iota $\kappa$ \kappa $\lambda$ \lambda $\mu$ \mu $\nu$ \nu $\xi$ \xi $\omicron$ \omicron $\pi$ \pi $\rho$ \rho $\sigma$ \sigma $\tau$ \tau $\upsilon$ \upsilon $\phi$ \phi $\chi$ \chi $\psi$ \psi $\omega$ \omega $\varepsilon$ \varepsilon $\varkappa$ \varkappa $\vartheta$ \vartheta $\thetasym$ \thetasym $\varpi$ \varpi $\varrho$ \varrho $\varsigma$ \varsigma $\varphi$ \varphi $\digamma$ \digamma $\varGamma$ \varGamma $\varDelta$ \varDelta $\varTheta$ \varTheta $\varLambda$ \varLambda $\varXi$ \varXi $\varPi$ \varPi $\varSigma$ \varSigma $\varUpsilon$ \varUpsilon $\varPhi$ \varPhi $\varPsi$ \varPsi $\varOmega$ \varOmega 大写形式 渲染字符 Katex 渲染字符 Katex 渲染字符 Katex 渲染字符 Katex $\Alpha$ \Alpha $\Beta$ \Beta $\Gamma$ \Gamma $\Delta$ \Delta $\Epsilon$ \Epsilon $\Zeta$ \Zeta $\Eta$ \Eta $\Theta$ \Theta $\Iota$ \Iota $\Kappa$ \Kappa $\Lambda$ \Lambda $\Mu$ \Mu $\Nu$ \Nu $\Xi$ \Xi $\Omicron$ \Omicron $\Pi$ \Pi $\Rho$ \Rho $\Sigma$ \Sigma $\Tau$ \Tau $\Upsilon$ \Upsilon $\Phi$ \Phi $\Chi$ \Chi $\Psi$ \Psi $\Omega$ \Omega 其它字符 渲染字符 Katex 渲染字符 Katex 渲染字符 Katex 渲染字符 Katex $\imath$ \imath $\nabla$ \nabla $\Im$ \Im $\Reals$ \Reals $\text{\OE}$ \text{\OE} $\jmath$ \jmath $\partial$ \partial $\image$ \image $\wp$ \wp $\text{\o}$ \text{\o} $\aleph$ \aleph $\Game$ \Game $\Bbbk$ \Bbbk $\weierp$ \weierp $\text{\O}$ \text{\O} $\alef$ \alef $\Finv$ \Finv $\N$ \N $\Z$ \Z $\text{\ss}$ \text{\ss} $\alefsym$ \alefsym $\cnums$ \cnums $\natnums$ \natnums $\text{\aa}$ \text{\aa} $\text{\i}$ \text{\i} $\beth$ \beth $\Complex$ \Complex $\R$ \R $\text{\AA}$ \text{\AA} $\text{\j}$ \text{\j} $\gimel$ \gimel $\ell$ \ell $\Re$ \Re $\text{\ae}$ \text{\ae} $\daleth$ \daleth $\hbar$ \hbar $\real$ \real $\text{\AE}$ \text{\AE} $\eth$ \eth $\hslash$ \hslash $\reals$ \reals $\text{\oe}$ \text{\oe} 操作符 大操作符 渲染操作符 Katex 说明 举例 Katex函数 $\sum$ \sum 求和符号 $\displaystyle\sum_{n=1}^{6}{4n}$ \displaystyle\sum_{n=1}^{6}{4n} $\prod$ \prod 连乘、求积符号 $\displaystyle\prod_{n=1}^{\infty}{(1-\frac{1}{4n^2})}$ \displaystyle\prod_{n=1}^{\infty}{(1-\frac{1}{4n^2}) $\bigotimes$ \bigotimes $\bigvee$ \bigvee $\int$ \int 积分符号 $\int_{0}^{t}{f(t)dt}$ \int_{0}^{t}{f(t)dt}

July 8, 2021 · 2 min · Loyio Hex

图像处理第三次实验-图像预处理

一.对比度优化方法CLAHE 1.使用软件fiji优化图片序列 实验过程: 1)下载安装Fiji 2)解压30-T4N2, 24_pre_waterT1C.nii.zip 3)打开一张图片 4)在fiji中, Process -> Enhance Local Contrast(CLAHE, Contrast Limited Adaptive Histogram Equalization 直方图均衡化算法),将参数设置为如下,观察图片变化 blocksize = 64 histogram bins = 128 max slope = 2.0 图片效果如下 原图 处理后的图 可以看到部分区域对比度增强,图像中体现的信息也更为突出。 2.使用fiji脚本批量处理一组图片 1)使用fiji打开16-T2N2,33+_post_waterT1C.nii.gz 2)使用Fiji’s scripting editor,将语言更改为IJ1 Macro,运行脚本 3)最后点击菜单栏File → Save As → Image Sequence 保存为png格式,存储在文件夹中。 二.图像x-ray去噪 使用median filter算法,批处理文件/x-ray-images-enhancement-master/images/ 中值滤波器:中值滤波器是众所周知的阶数统计滤波器之一,因为它对某些特定的噪声类型(例如“高斯”,“随机”和“盐和胡椒”噪声)具有良好的性能。根据中值滤波器,将M×M邻域的中心像素替换为相应窗口的中值。注意,噪声像素被认为与中值有很大差异。使用这种思想,中值滤波器可以消除这种类型的噪声问题。 批处理代码实现如下: path='images/' file_list = [f for f in os.listdir(path) if not f.startswith('.')] file_num = len(file_list) i = 1 print("file_num", file_num) for img_dir in file_list: im = Image.open("images/"+img_dir) for sz in [3, 7, 15]: im1 = im.filter(ImageFilter.MedianFilter(size=sz)) im.save("imagesProcessed/"+"spnoise_"+str(sz)+"_"+img_dir) print(img_dir + " processed") 这里我们通过调节size来观察效果。 ...

March 26, 2021 · 1 min · Loyio Hex

图像处理第二次试验-裁剪图像

医学图像预处理 1)搭建运行环境,运行Brain Tumor Detection代码中裁剪功能 预先安装好相关模块,安装Jupyter Notebook交互式计算环境 conda install jupyter 首先导入相关包 import tensorflow as tf from tensorflow.keras.layers import Conv2D, Input, ZeroPadding2D, BatchNormalization, Activation, MaxPooling2D, Flatten, Dense from tensorflow.keras.models import Model, load_model from tensorflow.keras.callbacks import TensorBoard, ModelCheckpoint from sklearn.model_selection import train_test_split from sklearn.metrics import f1_score from sklearn.utils import shuffle import cv2 import imutils import numpy as np import matplotlib.pyplot as plt import time from os import listdir %matplotlib inline 因为这里只是进行图形预处理,对Brain Tumor图片进行裁剪,主要用到的包是cv2, imutils, numpy, matplotlib.pyplot 然后是运行定义裁剪脑轮廓(查找大脑的顶部、底部、左端、右端的极点)的函数(crop_brain_contour) def crop_brain_contour(image, plot=False): #import imutils #import cv2 #from matplotlib import pyplot as plt # Convert the image to grayscale, and blur it slightly gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) gray = cv2.GaussianBlur(gray, (5, 5), 0) # Threshold the image, then perform a series of erosions + # dilations to remove any small regions of noise thresh = cv2.threshold(gray, 45, 255, cv2.THRESH_BINARY)[1] thresh = cv2.erode(thresh, None, iterations=2) thresh = cv2.dilate(thresh, None, iterations=2) # Find contours in thresholded image, then grab the largest one cnts = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) cnts = imutils.grab_contours(cnts) c = max(cnts, key=cv2.contourArea) # Find the extreme points extLeft = tuple(c[c[:, :, 0].argmin()][0]) extRight = tuple(c[c[:, :, 0].argmax()][0]) extTop = tuple(c[c[:, :, 1].argmin()][0]) extBot = tuple(c[c[:, :, 1].argmax()][0]) # crop new image out of the original image using the four extreme points (left, right, top, bottom) new_image = image[extTop[1]:extBot[1], extLeft[0]:extRight[0]] if plot: plt.figure() plt.subplot(1, 2, 1) plt.imshow(image) plt.tick_params(axis='both', which='both', top=False, bottom=False, left=False, right=False, labelbottom=False, labeltop=False, labelleft=False, labelright=False) plt.title('Original Image') plt.subplot(1, 2, 2) plt.imshow(new_image) plt.tick_params(axis='both', which='both', top=False, bottom=False, left=False, right=False, labelbottom=False, labeltop=False, labelleft=False, labelright=False) plt.title('Cropped Image') plt.show() return new_image 下面我简单说一下我对这个函数的理解(当然函数中已有原作者的解释): ...

March 22, 2021 · 3 min · Loyio Hex

图像处理第一次实验-初识CV

1.jpg 2.jpg 1.对1.jpg 分别作灰度化, 模糊化处理. 代码如下 """ @Project: imageProcessing @Author: loyio @Date: 3/20/21 """ from PIL import Image, ImageFilter if __name__ == '__main__': # greyscale imgfileOne = "Sample/1" sample_img = Image.open(imgfileOne+".jpg").convert('L') sample_img.save(imgfileOne+"_processed_gray.jpg") # Blur # sample_img = Image.open(imgfileOne+".jpg").filter(ImageFilter.BLUR) sample_img = Image.open(imgfileOne+".jpg").filter(ImageFilter.BoxBlur(5)) sample_img.save(imgfileOne + "_processed_blur.jpg") 图片效果如下 灰度处理 模糊处理 2.对2.jpg生成手绘效果 代码如下 """ @Project: imageProcessing @Author: loyio @Date: 3/20/21 """ from PIL import Image, ImageFilter import numpy as np if __name__ == '__main__': # Paint imgfileTwo = "Sample/2" sample_img_ary = np.asarray(Image.open(imgfileTwo+".jpg").convert('L')).astype('float') depth = 10. grad_x, grad_y = np.gradient(sample_img_ary) grad_x = grad_x * depth / 100. grad_y = grad_y * depth / 100. A = np.sqrt(grad_x ** 2 + grad_y ** 2 + 1.) uni_x = grad_x / A uni_y = grad_y / A uni_z = 1. / A vec_el = np.pi / 2.2 vec_az = np.pi / 4. dx = np.cos(vec_el) * np.cos(vec_az) dy = np.cos(vec_el) * np.sin(vec_az) dz = np.sin(vec_el) sample_processed_ary = (255 * (dx*uni_x + dy*uni_y + dz*uni_z)).clip(0, 255) im = Image.fromarray(sample_processed_ary.astype('uint8')) im.save(imgfileTwo+"_processed_handpaint.jpg") 首先将图片灰度化,然后转换为float类型,存放在numpy array中 通过np.gradient求灰度图像的梯度(即灰度的变化率),将其赋值给grad_x, grad_y ,并根据深度级别计算新的梯度,同时归一化。将其控制在(0,1) 为x,y轴梯度构建三维归一化单位坐标系。 建立光源效果,可以将np.cos(vec_el)分析为单位射线在地平面上的投影长度。 dx,dy和dz是光源在x / y / z方向上的影响。 梯度与光源相互作用,最终将梯度转换为灰度。即sample_processed_ary = 255 * (dx*uni_x + dy*uni_y + dz*uni_z) 为避免越过边界,最后还要调用函数.clip(0,255) 图片效果如下 ...

March 20, 2021 · 1 min · Loyio Hex

rclone突破750G转存限制(使用gclone和Autoclone)

最近一直都在折腾GoogleDrive,有时候看到Tg群里面大佬分享的资源,都特别的大,本来一开始我是使用插件copy url to googledrive,应该是这个名称吧,不过比较鸡肋的是,这个只能转存到个人盘中,在没购买容量套餐前所有的人都默认是15G,远远不够用,虽然我买了一年的100G,但是依然不够用,随便转存点什么,就超过100G了,而且还要自己手动移动到团队盘 在之前我就讲过了用rclone挂载GoogleDrive到linux服务器上的教程,大家可以点击下面的链接查看 使用谷歌云搭建google drive离线下载服务器 在用rclone转存文件时,我们可能会遇到超过日转存限制的情况,Google每天的限制750G,这对于我们这些特别喜欢搬运的人来说是远远不够的 首先说一些解决方法原理: 谷歌开发者平台可以多个项目,每个项目下还可以创建多个服务账号(SA:Service Account),每个SA又可以创建自己单独的Api,每个Api都可以和单个用户一样拥有750GB的权限。 这里我们要用到autoclone,批量生成SA账号,还要用到gclone,自动切换SA,以突破750G的限制 我在这里不说具体的操作过程了,大佬们都有写,做重复的事情没有什么意义 gclone 搬山之术 by HE-SB-技术栈 AutoRclone配合gclone突破GoogleTeamDrive750G流量限制 by 余十一 可能是最简单的AutoRclone教程:如何突破Google Drive每日750G限制? by Great Panoan 我在这里只记录一下重要的网址和一些代码 首先要安装python3,可以源码安装,也可以直接通过yum或者apt-get安装 然后安装autoclone git clone https://github.com/xyou365/AutoRclone && cd AutoRclone && pip3 install -r requirements.txt 获取Python DriveApi 凭证 https://developers.google.com/drive/api/v3/quickstart/python 管理Google Group https://groups.google.com/ 查看ServiceAccount https://console.cloud.google.com/projectselector2/iam-admin/serviceaccounts?pli=1&supportedpurview=project 基本上就上面这些东西,如果有不明白的可以到上面的那些链接里去问大佬,当然也可以发邮件给我,我尽力解答

May 7, 2020 · 1 min · Loyio Hex

Surge-For-Mac模块 Q-Search 自定义搜索

昨天狠下心上了SurgeForMac的车,140永久,这是继Quantumult X后的又一次剁手,我也不知道自己怎么这么折腾,本来我Mac端用Clash用的好好的,没啥其它问题,可能是头脑一热吧,不过我今天就是想介绍一下,我重写的一款Surge模块,Q-Search 前言 在手机上用过Quantumult X和Surge的应该很熟悉这个插件,就是利用了重写的功能,实现自定义搜索命令,比如我想要在京东上搜索笔记本,我只需要在搜索栏输入 jd 笔记本 就可以了 然后回车,它会自动重定向至京东搜索页面,如下图所示 像这样的搜索命令还有很多,比如tb(在淘宝网搜索),db(在豆瓣搜索), 我这就不一一列举了,可以在我的源码中查询,里面都有注释 我根据大佬们的源码,自己改进了一些,并成功适配Mac端的Surge,而且做了桌面页面的匹配,Quantumult X原代码链接Github Surge配置 下面我说下如何在自己的SurgeForMac中配置Q-Search 1.打开模块设置 首先打开Surge,在左面的菜单栏中选择设置,如下图所示,然后点击模块 然后我们进入下面的页面 2.安装模块 有两种方法安装模块,直接本地加载和从URL安装模块 第一种方法就是从github把模块下载下来,然后放到Surge默认配置路径中,注意后缀名称为.sgmodule 第二种方法,就是直接点击左下角的从URL安装模块,然后将 Q-Search 链接粘贴到文本框中,最后点击完成 3.启用模块 安装模块后,记得启用模块,就是把左边的选项框勾选即可,如下图所示 4.注意事项 请确保你已经进行了Mitm配置,是否安装证书且信任证书,并进行了主机名配置 使用模块之前 请先将Safari的默认搜索改为DuckDuckGo 使用模块 一般无指令的搜索,默认是进行Google搜索 想要知道所有指令,直接点击下面链接即可,基本上都有注释说明 https://raw.githubusercontent.com/loyio/SurgeMacModule/master/Q-Search.sgmodule 下面我们在mac端试验一下京东搜索指令,指令还是jd 笔记本 回车即可返回下面的搜索页面 如果有不明白的问题,可以邮件联系我

May 6, 2020 · 1 min · Loyio Hex

pip安装模块时报错 ModuleNotFoundError:No module named '_ctypes'

最近一直在折腾GoogleDrive,用了rclone,又装AutoClone,最近又用上了gclone 在安装AutoClone依赖文件时报错 ERROR: Command errored out with exit status 1: command: /usr/local/python3/bin/python3.8 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-c6woj60b/progress/setup.py'"'"'; __file__='"'"'/tmp/pip-install-c6woj60b/progress/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base pip-egg-info cwd: /tmp/pip-install-c6woj60b/progress/ Complete output (11 lines): Traceback (most recent call last): File "<string>", line 1, in <module> File "/usr/local/python3/lib/python3.8/site-packages/setuptools/__init__.py", line 20, in <module> from setuptools.dist import Distribution, Feature File "/usr/local/python3/lib/python3.8/site-packages/setuptools/dist.py", line 35, in <module> from setuptools import windows_support File "/usr/local/python3/lib/python3.8/site-packages/setuptools/windows_support.py", line 2, in <module> import ctypes File "/usr/local/python3/lib/python3.8/ctypes/__init__.py", line 7, in <module> from _ctypes import Union, Structure, Array ModuleNotFoundError: No module named '_ctypes' ---------------------------------------- ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Google了一下,找到解决方法是安装 libffi-devel ...

May 6, 2020 · 1 min · Loyio Hex

谈谈自己为什么又开始写博客了

其实我17年刚读大一的时候,就建立了自己的博客,那时候是用的阿里云的服务器,学生机9.9,然后域名好像是在godaddy买的吧,只不过当时为了备案又把这个域名迁移到了阿里云,国内主机配国外域名真的很鸡肋啊,当时godaddy还不允许前三个月迁移,所以前面一直用的临时域名。 一开始我用的是Wordpress,主题非常多,插件也很多,对于喜欢给自己的网站添加各种功能的人简直太友好了,我当时也用了一段时间,用户管理,插件各方面,都很不错,弄的自己网站五花八门,忽视了内容,而太过在意形式,有几次配置插件把自己的网站的内容都清除掉了,然后,还有一点就是,毕竟自己的服务器是9.9学生机,所以网站的访问速率也慢了很多。 后面又陆陆续续换了好几个博客程序,最后我还是决定了用zblog,因为这个博客的自由度还是挺高的,我可以修改底层代码,也可以自己写一些插件,虽然自己一定也不会PHP,但是看着别人代码一步一步改还是可以的,可惜,当时不知道我怎么就把这个网站全给删了,包括数据库,现在什么都没有了,不过博客的大部分内容我在博客园和 CSDN都有发布,上面的网站我都好久不发布了,想想当时的自己真的有点萌新感啊,最后一篇博客的时间刚好两年前的今天,实在是妙啊。 后面我堕落了很久,一直没在技术上有过突破,每天就是上上课,完成一下老师布置的任务,其余时间也不再专心于计算机科学这一门,主要原因是因为上面呢,我想是因为当时看了创造101吧,后面就开始追星了,到现在我还完全放不下,年轻人有时候对某一件事真的太执着了。 中间发生了什么我也不太清楚,这两年也不知道自己有什么成就,一直都是把18年写过的程序炒冷饭,然后参加一些比赛,也拿一些奖品或事奖金,或许吧,这就是没有进取心的自己吧,Bilibili的《后浪》我还没看过,这个年纪的自己最反感一些鸡汤,我还是继续做一颗微小的沙粒吧。 疫情期间,我在今天2.15后申请了自己的公众号,发现尽管自己的内心是颓废了很多,但热爱创作的那双手还是诚不欺我,一写起来就有吐不尽的废话,虽然文采黯然,但就是喜欢记录,就是喜欢发泄,只不过,后面不知怎地开始做起了所谓的营销号,每天从外网搬一篇文章到国内平台发布,然后赚几块钱流量费。 人总是易变的,而我是过于如此了,不谈太多了。 想着还是用github做一个静态博客算了,写写没人看的东西,发泄一下自己的内心,也记录一下,方便以后自己查询。

May 5, 2020 · 1 min · Loyio Hex