
数值计算
文章平均质量分 92
数值计算(Numerical computation),记录自己博士期间的工作。
努力的老周
一个老码农,中年大叔。打过工,做过老板。
现有神兽一枚,努力培养神兽中。
展开
-
The implement of Runge Kutta (RK) Fourth Order using C++
龙格库塔法比欧拉法有更高的精度。Runge-Kutta AnsatzΔy(t)=a∗f(t,y)+b∗f(t+αh,y+βf)(a,b,α,βisfreeparameters)=af+bf+b(ftα+fyfβ)h:=hf+h22(ft+fyf)\Delta y(t)=a*f(t,y)+b*f(t+\alpha h, y+\beta f) \quad (a, b, \alpha, \beta \quad is free parameters)\\= af+bf+b(f_t\alpha+f_yf\bet原创 2021-01-19 14:42:09 · 301 阅读 · 0 评论 -
C++ Program for Euler‘s Method 欧拉方法的 C++ 实现
绪论从上面一篇手写计算逼近 ODE 文章的计算过程中,我们知道使用欧拉方法求解的时候,初始条件为以下几个:1、xxx 的初始值。即 x0x_0x0。2、f(x)f(x)f(x)。即 y0y_0y0。3、Δx\Delta xΔx。即迭代的步长。4、f′(x)f'(x)f′(x) 函数。以下几个是需要迭代计算的:1、下一个 xxx 的值。xn=xn−1+Δxx_n=x_{n-1}+\Delta xxn=xn−1+Δx。2、下一个 yyy 的值。yn=yn−1+Δx∗dydx(x0,y0)原创 2021-01-18 22:41:42 · 636 阅读 · 0 评论 -
手写欧拉方法(Euler‘s method)解常微分方程(ODE)
问题111:dydx=y\frac{dy}{dx}=ydxdy=y给定方程 dydx=y,y(0)=1\frac{dy}{dx}=y, y(0)=1dxdy=y,y(0)=1,请用 Δx=1\Delta x=1Δx=1,求 y(2)y(2)y(2) 的值。手写求解过程我们手写出整个欧拉方法逼近的过程数据表。表格的内容包括三个部分:xxx、yyy、dydx\frac{dy}{dx}dxdy。y(0)y(0)y(0) 值根据题目,我们知道 x=0x=0x=0 的时候 y(0)=1y(0)=1y(原创 2021-01-18 18:45:41 · 2856 阅读 · 0 评论 -
稀疏矩阵
C++ 矩阵操作假设我们需要操作一个 N*M 的矩阵。为了简单,我们使用 int 类型进行说明。在实际编码中,肯定是需要使用 STL template。矩阵的存储静态存储const int MAXN=1e5; //定义矩阵最大行数const int MAXM=1e5; //定义矩阵最大列数int array[MAXN][MAXM]; //定义矩阵使用指针使用指针包括两部分代码。一部分是内存申请,另外一部分是内存释放。内存申请int **array;//指向原创 2020-10-15 13:28:52 · 3414 阅读 · 1 评论 -
Win10 安装 SU2
什么是 SU2SU2 不是飞行模拟器,是美国斯坦福大学航空航天学院开发的高精度偏微分方程求解器,它是一款非结构网格求解器,并且是基于C++开发的。SU2 只是一个求解器。前处理的网格可以使用 gmesh,后处理可以是 csv 文件(excel 文件)、paraview 文件等。运行环境我使用的是 Win10,所以直接下载 Win10 Su2 可执行包。必须软件需要先安装好 Python3。MPI(并行计算)是可选的。因为压缩包分为 MPI 版和非 MPI 版。下载 SU2.原创 2020-10-14 22:23:06 · 5283 阅读 · 3 评论 -
Ubuntu18.04 安装 Lapack 库
环境Win10下 WSL2 的 Ubuntu 18.04,gcc、g++ 版本为最新的 7.5。依赖库至少需要 gfortran、cmake。其他不能确定。gfortranfortran 语言编译器。$ sudo apt install gfortrancmake$ sudo apt install cmake编译安装 lapack获取最新版本可以在官网(http://www.netlib.org/lapack/)、Github(https://github.原创 2020-09-24 14:16:36 · 9223 阅读 · 2 评论