自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 问答 (1)
  • 收藏
  • 关注

原创 python plt.fill_between

N = 21x = np.linspace(0, 10, 11)y = [3.9, 4.4, 10.8, 10.3, 11.2, 13.1, 14.1, 9.9, 13.9, 15.1, 12.5]# fit a linear curve an estimate its y-values and their error.a, b = np.polyfit(x, y, deg=1)y_est = a * x + by_err = x.std() * np.sqrt(1/len(x) + .

2022-05-09 22:14:26 1171

原创 python 纵坐标 log 网格

import numpy as npfrom matplotlib import pyplot as pltx = np.arange(0, 100, 0.5)y = 2 * x ** 3plt.loglog(x, y)plt.grid(True, which='both', ls='--')plt.figure()plt.plot(x, y)plt.yscale('log')plt.grid(True, which='both', ls='--')plt.figure()plt.p.

2022-04-06 22:26:44 2404

原创 python torch.gather函数

以下为看到的gather最通俗易懂的解释https://medium.com/analytics-vidhya/understanding-torch-gather-function-in-pytorch-f90db58b3c51

2021-12-25 09:58:37 590

原创 python从离散的分布中采样

假设我们现在要从一个分布$p(x)$ 中采样, 但我们只知道 $p$ 的数值解(比如 $p$ 是某个非线性 fokker-planck 方程的数值解), 我们可以利用python 的numpy 来从中采样import numpy as npelements = [1.1, 2.2, 3.3]probabilities = [0.2, 0.5, 0.3]np.random.choice(elements, num, p=probabilities)其中 elements 是离散分布的空间坐标,

2021-12-01 23:08:01 2397

原创 Python 画 L-shape 区域的热图

from matplotlib import pyplot as pltfrom mpl_toolkits.axes_grid1 import make_axes_locatableimport numpy as npx1 = np.arange(-1, 0, 0.01)x2 = np.arange(-1, 1, 0.01)x3 = np.arange(0, 1, 0.01)xs1, ys1 = np.meshgrid(x1, x2)xs2, ys2 = np.meshgrid(x3, x1

2021-01-05 10:52:32 712

原创 传统的不确定性量化数值方法

本节首先介绍了随机系统参数独立化的内容, 之后为了处理无穷多的随机变量, 引入了 Karhunen-Loeve 展开来处理模型降维问题, 最后介绍了三中基本的数值方法:MonteCarlo Sampling , Moment equation method 和 Perturbation Method。

2020-12-16 20:52:35 2634 2

原创 latex大斜杠, 除号

在 Latex 中, 我们不满足于这样的除号解决此问题便是要设置任意大的定界符(除号是定界符的一种)最简单的方式为\bigg/结果为复杂的方式便是在 /begin{document} 之间加入\makeatletter\newcommand{\biggg}{\bBigg@{1.2}} \def\bigggl{\mathopen\biggg}\def\bigggm{\mathrel\biggg}\def\bigggr{\mathclose\biggg}\m

2020-11-21 22:33:48 21277

原创 不确定性量化(Uncertainty Quantification):前言

生活中有很多不确定的事情, 如何用一个有效的模型和有效的算法来量化这些不确定性, 便是我们要考虑的问题。 大体上来说, 我们可以将不确定性分为两类:Aleatory uncertainty 和 epistemic uncertainty。 前者指的便是自然界中的某些随机性, 比方说 x∼U(0,1)x\sim U(0,1)x∼U(0,1) 是一个随机变量, 每次取值都不一样, 又称为偶然不确定性; 后者指的是模型的不确定性, 比方说我们假设 x∼U(0,1)x\sim U(0,1)x∼U(0,1), 但事实

2020-10-27 20:29:54 10273 1

原创 (七)、Fealpy 中的 PDE接口与实例

这一节, 我们来介绍一下 Fealpy 中的PDE接口。 打开 fealpy/fealpy/pde, 你可以看到大量的pde接口:fealpy/example 中有很多求解的例子, 基本涵盖了 pde solver 等的东西,如下图:因为作者的文档写的很清楚了, 故我这里只举一个例子来简单介绍一下:混合边界条件的poisson 方程求解混合边界条件的方程如下:# 构造一个二维有真解的例子,用 p 次有限元来求解, 画出误差阶, 输出误差表格# -\Delta u + 3 u = f, in

2020-10-25 20:06:37 797

原创 (六)、Fealpy 组装刚度(质量)矩阵和载荷向量

给定一个单纯形网格 T\mathcal{T}T, 其有 NNNNNN 个节点, NCNCNC 个单元。 定义在 T\mathcal{T}T 的分片 ppp 次连续有限元空间 VhV_hVh​ 有 gdofgdofgdof 个基函数, 其组成的函数的行向量为:ϕ=[ϕ0,ϕ1,⋯ ,ϕgdof−1],\phi=[\phi_0,\phi_1,\cdots,\phi_{gdof-1}],ϕ=[ϕ0​,ϕ1​,⋯,ϕgdof−1​],限制在每个网格单元 τ\tauτ 上, 共有 ldofldofldof 个基函

2020-10-25 18:01:28 1996

原创 (五)、Fealpy 矩阵的组装2

这一节, 我们来介绍一下有限元相关的知识。我们以 Poisson 方程为例:注意我们的测试函数 uuu 在 ΓD\Gamma_DΓD​ 上是 0。于是我们可以给出离散的代数系统接下来我们来分析边界条件, 若只有 Dirichlet 边界条件, 则有离散代数系统中的形式知 R=0,bN=bR=0,Au=b.R=0, b_N=b_R=0, Au=b.R=0,bN​=bR​=0,Au=b. 将 uuu 进行向量分解u=uI(内部自由度)+uD(边界自由度),u=u_I(内部自由度)+u_D(边界自

2020-10-25 15:34:58 464

原创 (三)、Fealpy 创建有限元空间

这一讲,我们来介绍 Fealpy 中的有限元空间。 Fealpy 中实现了几种常用的有限元空间, 比如拉格朗日有限元空间, 缩放多项式空间等。首先我们从 Functionspace 中引入 LagrangeFiniteElementSpace, 当然也要引入之前异界介绍的网格工厂(Meshfactory):import numpy as npfrom fealpy.mesh import MeshFactoryfrom fealpy.functionspace import LagrangeFini

2020-10-25 12:11:34 1137

原创 (二)、 Fealpy 重心坐标导数的计算

我们先给出三角形单元的中心坐标公式对应的代码为:import numpy as npfrom fealpy.mesh import MeshFactorymf = MeshFactory()box = [0, 1, 0, 1]mesh = mf.boxmesh2d(box, nx=1, ny=1, meshtype='tri')NC = mesh.number_of_cells()node = mesh.entity('node')cell = mesh.entity('cell')

2020-10-24 19:48:36 512

原创 (四)、Fealpy 矩阵组装细节1

在介绍具体的细节之前, 我们先来介绍 numpy 的两个函数 以及稀疏矩阵的存储np.add.atindices = np.array([0, 0, 1, 5, 3], dtype=np.int_)a = np.zeros(6, dtype=np.float64)data = np.array([4.5, 3.5, 2.0, 1.0, 1.5])np.add.at(a, indices, data)print('a:' , a)add at 的命令是将data放在指定indices的位置上。

2020-10-24 17:45:55 565 1

原创 (一)、Fealpy 创建各种各样的网格

Fealpy 库中实现了一个类 mesh 用于网格生成, 我们先介绍规则的网格(默认大家已经完成 fealpy 的安装, 见前言)首先引入一些库:import numpy as npimport matplotlib.pyplot as pltfrom fealpy.mesh import QuadrangleMeshfrom fealpy.mesh import HalfEdgeMesh2d, PolygonMeshfrom fealpy.mesh import TriangleMeshfr

2020-10-23 15:00:56 1540 1

原创 Python 调用 fealpy 来求解常见有限元程序(前言)

Fealpy 是湘潭大学魏华祎老师开发的用来求解有限元的库,其中设置了多种网格(三角网格,矩形网格,多边形网格),多种有限元空间(Lagrange有限元空间,缩放多项式空间等),自适应方法等。本系列是笔者听完魏老师在天元数学东北中心开设的暑期短课,以及自身对有限元程序的需求之下写的一些回忆总结性片段,一来用于记录,二来方便与各位朋友交流。相关的参考链接有:Fealpy的安装教程(魏老师主页)Fealpy2020暑期课程...

2020-10-22 08:45:56 1530

原创 Python 作图之横纵坐标刻度

import numpy as npfrom matplotlib import pyplot as pltx = np.arange(0, 10)fig = plt.figure()plt.plot(x, color='black', linestyle='dashed', label='x', marker='*')plt.legend()# 更改横坐标刻度# plt.xticks([0,1,2,3,4,5,6,7,8,9], [0, 10, 20, 30, 40, 50, 60, 70,

2020-10-10 22:40:48 5010

原创 Multi-fidelity DNNs : 多精度深度神经网络

这篇文章介绍一种用来拟合多精度数据的神经网络。 在科学计算中,低精度的数据往往是廉价的、大量的;高精度数据则不同,他们是昂贵的、少量的,所以如何充分利用不同精度的数据来得到更加 precise 的结果便是一个需要解决的问题。这里我们利用神经网络给出了一个回答。基本思想想法很简单。假定 {xi,yi}i=1Nl\{x_i,y_i\}_{i=1}^{N_l}{xi​,yi​}i=1Nl​​ 是我们有的低精度数据,其中 xix_ixi​ 是输入变量, yiy_iyi​ 是预测变量; {xi,yi}i=Nl+1

2020-09-09 15:53:45 5532 10

原创 RKHS:再生希尔伯特空间简介

RKHS的定义Def1(Evaluation function) 令 H\mathcal{H}H 是一个 Hilbert 空间,X\mathcal{X}X 是一个非空集合, f:X→Rf:\mathcal{X}\to \mathbb{R}f:X→R 是定义在 H\mathcal{H}H 上的线性泛函。 对于任意的 x∈X,x\in \mathcal{X},x∈X, 定义映射 δx:H→R,\delta_x: \mathcal{H}\to\mathbb{R},δx​:H→R, δx:f↦f(x)\delt

2020-08-28 23:46:09 877

原创 均匀B样条性质及证明

B-样条函数在理论和应用中均扮演重要角色. 即使从纯粹数学角度看, B-样条函数也有其自身的魅力. B-样条函数的定义有多种, 以下我们将主要介绍几种:截断幂插商定义向后差分算子为Δf(x)=f(x)−f(x−1),Δnf(x)=Δn−1Δf(x).\Delta f(x)=f(x)-f(x-1),\quad \Delta^n f(x) = \Delta^{n-1}\Delta f(x).Δf(x)=f(x)−f(x−1),Δnf(x)=Δn−1Δf(x).那么 mmm 阶 B-样条定义为Bm(x)=1

2020-08-11 11:21:59 1074

原创 用全连接神经网络解决Letter Recognition分类任务(Python)

首先,我们要下载Letter Recognition数据。 Letter Recognition 是字符识别任务,有20000个数据,每个数据17维,其中有一维是给定标签(26个英文字母)。我们首先下载Letter Recognition 数据集,见http://archive.ics.uci.edu/ml/machine-learning-databases/letter-recognition/点击data 下载。其次,我们要用python 加载数据,我们用pandas的read_csv来加载

2020-06-11 16:34:05 2762 3

原创 用PCA,LDA,KNN对MNIST数据集分类(Python)

主成分分析对于高维空间中xxx, 我们寻求线性变换,y=WTx,where  x∈Rn,W∈Rm×d,y∈Rd,d<m.y=W^Tx,\quad where \; x\in \mathbb{R}^n,W\in \mathbb{R}^{m\times d},y\in\mathbb{R}^d,d<m.y=WTx,wherex∈Rn,W∈Rm×d,y∈Rd,d<m.我们采用可重构性观点, 即样本到此超平面的距离都足够近。\假设投影变换是正交变换,设样本点 xix_ixi​ 在新坐标系下的

2020-06-11 16:15:54 4245 6

原创 Data driven governing equations approximations using DNN

本文内容源自DATA DRIVEN GOVERNING EQUATIONS APPROXIMATIONUSING DEEP NEURAL NETWORKS。他的通讯作者为 ProfDONGBIN XIU,印象中好像是 JCP 的Associate Editors。我们提供了一个使用观察数据和深度神经网络来近似未知控制方程的数值框架。特别是,我们建议使用残差网络(ResNet)作为方程式逼近的基本构建块。 我们证明,ResNet块可以被视为一种在时间积分中精确的单步方法。 然后,我们提出了两种多步...

2020-06-02 09:55:09 614 1

原创 PhaseDNN: 采用相位技术与神经网络来求解高频波问题

大概从18年开始, 许志钦老师写了一系列有关DeepLearning 与Frequency有关的文章, 里面讲述了深度学习与傅里叶变换之间的关系, 具体可以参见许志钦老师的主页(现在在交大工作) https://ins.sjtu.edu.cn/people/xuzhiqin/今天,我们介绍一篇与之相关的文章, 题目为:A PHASE SHIFT DEEP NEURAL NETWORK FOR HIGH FREQUENCY APPROXIMATION AND WAVE PROBLEMS. 文章的作者是 So

2020-05-30 20:19:21 1367

原创 半正定规划简介

本文主要内容来自 Vandenberghe, L., & Boyd, S. (1996). Semidefinite Programming. SIAM Review, 38(1), 49–95.考虑如下优化问题min⁡cTxs.t.F(x)≥0,(1)\begin{array}{ll}\min& c^Tx\\s.t.&F(x)\geq 0,\end{array}\tag{1}mins.t.​cTxF(x)≥0,​(1)其中F(x)≔F0+∑i=1mxiFi.F(x

2020-05-30 16:37:48 8887

原创 强化学习用 Sarsa 算法与 Q-learning 算法实现FrozenLake-v0

基础知识关于Q-learning 和 Sarsa 算法, 详情参见博客需要注意的细节训练时采用 ϵ\epsilonϵ 贪心算法;# 贪婪动作选择,含嗓声干扰a = np.argmax(Q_all[s, :] + np.random.randn(1, env.action_space.n) * (1. / (i + 1)))对 Q-learning 算法# 更新Q表# Q-learningQ_all[s, a] = Q_all[s, a] + alpha * (r + gamma

2020-05-23 10:18:47 4495 6

原创 有限元入门: 用变分法求解一维常微分方程(二)

承接上一篇博客https://blog.csdn.net/waitingwinter/article/details/106164350为了使结构完整,我们再次给出所求解的问题:{−U′′(t)+U(t)=(π2+1)sin⁡πt,U(0)=U(1)=0,\left\{ \begin{aligned}& -U''(t) +U(t) = (\pi^2 + 1)\sin \pi t,\\& U(0)=U(1) =0,\end{aligned}\right.{​−U′′(t)+U(t

2020-05-20 21:44:30 2512 3

原创 有限元入门: 用变分法求解一维常微分方程(一)

g

2020-05-20 20:55:01 6387 9

原创 Mathematica 入门(一): 基本的计算

很早之前就知道mathematica 有很强大的符号计算能力, 但由于懒惰的原因一直没有学习。 最近碰到了一些和符号计算有关的问题, 自己算算到怀疑人生, 比方说:∫ab(x−c)6sin⁡5(πx)+e−xcos5(πx) dx\int_a^b (x-c)^6\sin^5(\pi x) + e^{-x}cos^5(\pi x)\,\mathrm{d}x∫ab​(x−c)6sin5(πx)+e−xcos5(πx)dx这玩意怎么算?????手算是不可能手算的, 抄答案又没得抄, 只能是借用软件勉强应付得

2020-05-19 20:55:30 13507

原创 Latex中的独立符号与不独立符号

我们在写一些与概率有关的Note时, 经常会遇到随机变量之间的独立关系符, 如下图​​实现的方式两种其一: 采用MnSymbol 宏包在导言区加入 MnSymbol 宏包\usepackage{MnSymbol}然后在document部分测试$$a\upmodels b$$$$ a\nupmodels b.$$结果有这里有一个问题: 这符号也太丑了吧, 一点都不符合审美(没有大长腿), 有没有什么改进的方法呢?fdsymbol中的这个好像不错, 但是一运行就悲催了,fdsymb

2020-05-16 14:28:12 10731 1

原创 LM(Levenberg-Marquadrdt )算法在MATLAB中的实现及实例

LM算法简介考虑如下非线性最小二乘问题min⁡f(x)=12∥r(x)∥2,\min \quad f(x) = \frac{1}{2}\Vert r(x)\Vert^2, minf(x)=21​∥r(x)∥2,其中残差向量 r:Rn→Rr:\mathbb{R}^n \to \mathbb{R}r:Rn→R 为r(x)=(r1(x),r2(x),⋯ ,rm(x))T.r(x) = \big(r_1(x),r_2(x),\cdots,r_m(x)\big)^T.r(x)=(r1​(x),r2​(x),

2020-05-15 15:27:51 16100 5

原创 Deep Ritz Method

Deep Ritz Method 是鄂维南老师(Weinan E)提出来的一种用神经网络求解PDE的方法, 作为最开始的几篇探讨DeepLearning 与PDE关系的文章,他的很多思想还是很厉害的, 下面我们来介绍一下这篇文章以及我在实现时遇到的一些问题。基本思想对于给定的一个变分问题我们怎么用神经网络来求解呢?事实上, 我们把中的每个点看做训练样本, 将 看做是神...

2020-04-27 21:16:35 4745 14

原创 详解 pytorch 中的 autograd.grad() 函数

我们在用神经网络求解PDE时, 经常要用到输出值对输入变量(不是Weights和Biases)求导; 在训练WGAN-GP 时, 也会用到网络对输入变量的求导。 以上两种需求, 均可以用pytorch 中的autograd.grad() 函数实现。autograd.grad(outputs, inputs, grad_outputs=None, retain_graph=None, cr...

2020-04-26 19:59:20 49038 18

原创 python 与 pytorch(tensorflow) 的 broadcast 机制

Boardcast 是python 中很重要的一种机制,尤其是深度学习兴起之后,其被广泛运用于CNN网络结构中。 下面我们介绍一下 Boardcast 机制。Boardcast 的核心原则有三条:从最小的维度进行匹配(最后一个维度) 如果当前维数为1, 扩充至相同维数 如果当前没有维数,先增加一维,再扩充至相同维数我们通过几个具体的例子来解释上面3条准则。我们以一个BCHW(样本个数...

2020-04-18 19:30:10 588

原创 全连接神经网络(DNN)处理多分类任务

我们采用 python tensorflow1.14 来处理多分类问题.给定一个数据集,并对其可视化有import tensorflow as tfimport numpy as npimport matplotlib.pyplot as pltimport time# set seednp.random.seed(1234)tf.set_random_seed(...

2020-04-13 22:12:05 6037 6

原创 流形学习(三) LE 在 MATLAB 中的实现及实例

目录LE(Laplacian Eigenmapping )基本思想step1 最近邻确定与最佳权重step2 构造目标函数step3 求解优化问题MATLAB 程序及实例LE(Laplacian Eigenmapping )前两节我们介绍了 LLE 和 Isomap 算法以及其在瑞士卷上的降维,详见Isomap:https://blog.csdn.net/wa...

2020-04-12 17:06:24 5277 4

原创 流形学习(二) Isomap 在 MATLAB 中的实现及实例

目录Isomap(isometric feature mapping)基本思想step1 最近邻确定与最佳线性权重step2 确定点对之间的测地距离step3 MDSAlgorithm(Multiple Dimensional Scaling )算法步骤MATLAB程序实现总的MATLAB程序Isomap(isometric feature mapping)...

2020-04-12 16:10:30 6190 10

原创 流形学习(一)LLE 在 MATLAB 中的实现及实例

流形学习,全称流形学习方法(Manifold Learning),自2000年在著名的科学杂志《Science》被首次提出以来,已成为信息科学领域的研究热点。在理论和应用上,流形学习方法都具有重要的研究意义。假设数据是均匀采样于一个高维欧氏空间中的低维流形,流形学习就是从高维采样数据中恢复低维流形结构,即找到高维空间中的低维流形,并求出相应的嵌入映射,以实现维数约简或者数据可视化。它...

2020-04-12 14:33:42 7546 5

原创 Kmeans算法在MATLAB中的实现及实例

基本思想K-means 是一种基本的、经典的聚类方法,也被称为K-平均或K-均值算法,是一种广泛使用的聚类算法。K-Means算法是聚焦于相似的无监督的算法,以距离作为数据对象间相似性度量的标准,即数据对象间的距离越小,则它们的相似性越高,则它们越有可能在同一个类簇。其算法具体的步骤为其中,nnn为样本数,μi\mu_iμi​ 为聚类中心(Clustering Center), ccc 为聚类...

2020-04-05 09:25:30 9618 3

原创 基于精确线搜索的最速下降法及实例

基本思想对于给定的一个无约束优化问题min⁡x∈Rnf(x)\min \limits_{x\in\mathbb{R}^n} \quad f(x)x∈Rnmin​f(x)选择搜索方向为 pk=−∇f(xk)p_k=-\nabla f(x_k)pk​=−∇f(xk​) , 步长为 αk\alpha_kαk​ 是如下子问题min⁡αk>0f(xk+αkpk)\min \limits_{\a...

2020-04-04 16:49:55 5073

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除