上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 75 下一页
摘要: 上一篇实现了一维波动方程数值解,这一篇实现二维波动方程数值解。 二维波动方程如下: 写成差分形式: 整理一下就能得到u(i+1,j,k)。 matlab代码如下: clear all;close all;clc; t = 3; %时间范围,计算到3秒 x = 1;y = 1; %空间范围,0-1米 阅读全文
posted @ 2021-02-16 20:16 Dsp Tian 阅读(5655) 评论(2) 推荐(0) 编辑
摘要: 上一篇实现了二维热传导方程数值解,这里我们计算波动方程数值解。 波动方程是一种双曲型偏微分方程。 这里依然用差分法计算。 一维波动方程如下: 写成差分形式: 整理一下就能得到u(i+1,j)。 matlab代码如下: clear all;close all;clc; t = 2; %时间范围,计算到 阅读全文
posted @ 2021-02-16 19:47 Dsp Tian 阅读(6641) 评论(0) 推荐(1) 编辑
摘要: 上一篇实现了一维热传导方程数值解,这一篇实现二维热传导方程数值解。 套路是一样的,先列微分方程,再改为差分方程,然后递推求解,不同的是一维热传导需要三维显示,而二维热传导需要四维,因此最后做了个三维动态图。 二维热传导方程如下: 另外四条边界都是0。 写成差分方程为: 整理一下就能得到u(i+1,j 阅读全文
posted @ 2021-02-16 13:55 Dsp Tian 阅读(16228) 评论(1) 推荐(1) 编辑
摘要: 差分法计算一维热传导方程是计算偏微分方程数值解的一个经典例子。 热传导方程也是一种抛物型偏微分方程。 一维热传导方程如下: 该方程的解析解为: 通过对比解析解和数值解,我们能够知道数值解的是否正确。 下面根据微分写出差分形式: 整理得: 已知网格平面三条边的边界条件,根据上面递推公式,不断递推就能计 阅读全文
posted @ 2021-02-15 20:18 Dsp Tian 阅读(19898) 评论(2) 推荐(4) 编辑
摘要: 过去有画过常微分方程的向量场,通过向量场能够很形象的看出方程解的状态。 最近过节在家刷视频刷到了3Blue1Brown介绍微分方程的视频。 视频中对钟摆建立的微分方程组通过向量场的形式也很形象的表达了系统状态。 这里用matlab也实现一下,同时对三维情况也做了一个实现。 绘制的方法就是计算方程在二 阅读全文
posted @ 2021-02-14 16:43 Dsp Tian 阅读(2623) 评论(1) 推荐(0) 编辑
摘要: 和线性常微分方程组参数拟合类似,我们要用差分代替微分,然后进行插值处理,然后构造最小化函数。 最后用最优化方法处理该函数即可。 这里举个例子,先随便设一个非线性微分方程组,并给定初值: 然后定义最小化函数: 最后用之前介绍的非线性最优化方法解决。 matlab代码如下: clear all;clos 阅读全文
posted @ 2021-02-11 13:30 Dsp Tian 阅读(3807) 评论(1) 推荐(2) 编辑
摘要: BFGS和DFP都是拟牛顿法,和高斯牛顿法不同的地方是不用直接求J'*J矩阵了,而BFGS又比DFP算法有更好的数值稳定性。 算法步骤如下: 1. 给一个待求参数的初始值x(1)。 2. 给定H(1)矩阵为单位阵,并且计算出待优化函数在x(k)处的梯度g(k)。 3. 令d(k) = -H(k)*g 阅读全文
posted @ 2021-02-10 21:05 Dsp Tian 阅读(3326) 评论(0) 推荐(0) 编辑
摘要: 比如我们已经有了微分方程模型和相关数据,如何求模型的参数。 这里以SEIR模型为例子,SEIR模型可以参考之前的文章。 一般的线性方程我们可以用最小二乘来解,一般的非线性方程我们可以用LM来解。 这里是线性微分方程组,所以我们采用最小二乘来解。 关键是构造出最小二乘形式,微分可以通过前后数据差分的方 阅读全文
posted @ 2021-02-09 17:36 Dsp Tian 阅读(8530) 评论(9) 推荐(0) 编辑
摘要: python没有原生goto语句,需要安装第三方库。 安装: pip3 install goto-statement 示例: @with_goto def get_response(i): label .begin print(i) site = "XXX" r = urllib.request.R 阅读全文
posted @ 2021-02-09 12:41 Dsp Tian 阅读(4713) 评论(0) 推荐(0) 编辑
摘要: 方法就是先对图像按照cellsize设置网格,一般是16*16或32*32。 然后对每个网格做投影变换,最后把所有格子拼起来就行了。 单个格子类似下图: 在实际编程的时候这里没有采用常见的反变换采样法,而是采用了正向变换的方式直接处理,投影公式见这里。 正向变换后得到待采样点集,再对点集重新进行一次 阅读全文
posted @ 2021-02-08 17:13 Dsp Tian 阅读(2137) 评论(0) 推荐(0) 编辑
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 75 下一页