当前位置:首页 » 操作系统 » 前推差分算法

前推差分算法

发布时间: 2022-03-05 08:25:49

❶ 显式差分算法

问题求解期望能找出一个静态解,然而在有限差分公式中包含有动力方程。这样,可以保证在被模拟的物理系统本身是非稳定的情况下,有限差分数值计算仍有稳定解。对于非线性材料,物理不稳定的可能性总是存在的。

质量守恒定律要求一个网格块中地下水的流入或流出净流量等于存储于网格块的地下水的变化量。图2-2表示了一个具有Δx,Δy和Δz维的网格块。图中也表示了网格块的6个相邻块中心处的节点,分别表示为x,x+,y,y+,z和z+。通过该块的面流到中心节点的流量为正,且分别表示为Q(x-),Q(x+),Q(y-),Q(y+),Q(z-)和Q(z+)

图2-2 网格块示意图

在该网格块中的地下水源汇项包括抽水井、排水,或者补给量。排泄到块的流量满足下列方程:

典型煤矿地下水运动及污染数值模拟:Feflow及Modflow应用

式中:h为中心节点的水头;S为中心块体的储水系数。

在有限差分中,偏导数可近似用有限差分形式表示,因此,方程可变为

典型煤矿地下水运动及污染数值模拟:Feflow及Modflow应用

式中:t为当前时刻;t-Δt为上一时间步长的时刻;h为中心节点的水头。

注意上述公式中所有的Q为在t时间步长处的流量。

现在考虑从临近节点来的典型流Q(x+)。该流量与处在中心节点和x+节点之间的水头差值有关,即

典型煤矿地下水运动及污染数值模拟:Feflow及Modflow应用

式中:h(x+)为x+节点处的水头;h为中心节点处的水头;C(x+)为导水系数,其值取决于中心节点和x+节点处的维数及Kx值。从其他方向的流量可简单定义为

典型煤矿地下水运动及污染数值模拟:Feflow及Modflow应用

式中:C(x-),C(y+),…为其他导水系数,h(x-),h(y+),…,为其他相邻节点的水头。将方程(2-20)和方程(221)代入到方程(219)中,则某节点的有限差分方程变为

典型煤矿地下水运动及污染数值模拟:Feflow及Modflow应用

该方程可概化为

典型煤矿地下水运动及污染数值模拟:Feflow及Modflow应用

其中D1~D8可用以下方法量化:

(1)中心网格块体和其6个直接相邻的块体的物理性质;

(2)中心网格块体的内在源项QS;

(3)在中心阶段h(t-Δt)上一个时间步长的水头;

(4)上一个时间步长的大小。

对于稳定流模型,h(t)-h(t-Δt)=0,且在每个节点方程中的储存项可以忽略不计。

假定中心块体和x+块体在3个方向中具有同一方向,大多数有限差分软件诸如modf-low允许这些方向因不同块体的不同而不同,且当块体中水位在块体中变化时,Δz方向的水头也随之变化。

假定在x方向上为一维流,利用达西定律计算流量Q(x+)为:

典型煤矿地下水运动及污染数值模拟:Feflow及Modflow应用

式中:Kx(→x+)为中心节点和x+节点之间的水力传导系数。和公式(2-20)对比,显然导水系数为

典型煤矿地下水运动及污染数值模拟:Feflow及Modflow应用

当中心节点和x+节点具有同样的Kx值,中心节点和x+节点之间的水力传导系数可简化为Kx(→x+)=Kx=Kx(x+)

❷ 差分进化算法的主要操作算子有哪些

进化算法EA(evolutionary algorithms)是一个“算法簇”,尽管它有很多的变化,有不同的遗传基因表达方式,不同的交叉和变异算子,特殊算子的引用,以及不同的再生和选择方法,但它们产生的灵感都来自于大自然的生物进化。

❸ 求基于OpenCV的三帧差分算法代码

Detector虚类):实现前景检测,
2.团块检测模块(CvBlobDetector虚类):实现运动物体(团块)的的检测
3.团块跟踪模块(CvBlobTracker虚类):实现运动物体跟踪
4.团块运动轨迹产生模块(CvBlobTrackGen虚类):实现的功能与模块名字同(下同)
5.团块轨迹后处理模块(CvBlobTrackPostProc虚类)
6.团块轨迹分析模块(CvBlobTrackAnalysis虚类)
7.以及处理流程模块(cvBlobTrackerAuto虚类):此模块可看成胶水,集成上面的模块。

除了处理流程模块(因为它只控制流程呀~),每一个模块可以用多种算法实现,在程序中,这些算法就是函数。如(15-16行):
CvFGDetector* cvCreateFGDetector0()
CvFGDetector* cvCreateFGDetector0Simple()
CvFGDetector* cvCreateFGDetector1()
也就是说这三个函数都是能完成前景检测,具体用哪个,由你在main()函数中调用。
其他模块也是这样。
实现这些模块的类以及完成这些算法的函数都由OPENCV帮你实现了,blobtrack要做的就是在main()函数中调用这些函数,初始化函数参数以及各种变量。

❹ 怎么用C语言实现向前向后差分算法

没有初始化low,就会报运行时错误,初始化一下low就好了
#include "stdio.h"
#define List_Size 20
struct RecordType
{
int key; //简单查找
char otherkey;
};
struct RecordList
{
RecordType r[List_Size+1];
int length;
}list1,*p;
void init_list()
{

int i; //初始化数据
p=&list1;
for(i=0;i<List_Size+1;i++)
{
p->r[i].key =i;
p->r[i].otherkey =i+1;
}
p->length =List_Size+1;

for(i=0;i<List_Size+1;i++) //确认初始化数据
{
printf("list.r[%d].key=%d,list.r[%d].otherkey=%d\n",i,p->r[i].key,i,p->r[i].otherkey);
}
printf("list.length=%d\n",p->length);
}
int BinSrch(RecordList L,int k) //二分差算法
{
int low,high,mid;
int i=0;
low = 0; //初始化low
high=L.length-1;
while(low<=high)
{
mid=(low+high)/2;
if(k==L.r[mid].key)
{
i=mid;break;
}
else
{
if(k < L.r[mid].key)
{
high=mid-1;
}
else
low=mid+1;
}
}
// if((low==high)&&(k!=L.r[mid].key))
// {
// return (0);
// }
return (i);
}
void main()
{
int result=0;
p=&list1;
init_list();
result=BinSrch(list1,7);
printf("the reslut=%d",result);
getchar();
}

❺ 进化算法的差分算法

差分进化算法(Differential Evolution, DE)是一种新兴的进化计算技术,或称为差分演化算法、微分进化算法、微分演化算法、差异演化算法。它是由Storn等人于1995年提出的,最初的设想是用于解决切比雪夫多项式问题,后来发现DE也是解决复杂优化问题的有效技术。DE与人工生命,特别是进化算法有着极为特殊的联系。
差分进化算法是基于群体智能理论的优化算法,通过群体内个体间的合作与竞争产生的群体智能指导优化搜索。但相比于进化算法,DE保留了基于种群的全局搜索策略,采用实数编码基于差分的简单变异操作和一对一的竞争生存策略,降低了遗传操作的复杂性。同时,DE特有的记忆能力使其可以动态跟踪当前的搜索情况,以调整其搜索策略,具有较强的全局收敛能力和鲁棒性,且不需要借助问题的特征信息,适于求解一些利用常规的数学规划方法所无法求解的复杂环境中的优化问题。
差分进化算法是一种基于群体进化的算法,具有记忆个体最优解和种群内信息共享的特点,即通过种群内个体间的合作与竞争来实现对优化问题的求解,其本质是一种基于实数编码的具有保优思想的贪婪遗传算法。
DE是一种用于优化问题的启发式算法。本质上说,它是一种基于实数编码的具有保优思想的贪婪遗传算法 。同遗传算法一样,DE包含变异和交叉操作,但同时相较于遗传算法的选择操作,DE采用一对一的淘汰机制来更新种群。由于DE在连续域优化问题的优势已获得广泛应用,并引发进化算法研究领域的热潮。
DE由Storn 以及Price提出,算法的原理采用对个体进行方向扰动,以达到对个体的函数值进行下降的目的,同其他进化算法一样,DE不利用目标函数的梯度信息,因此对目标的可导性甚至连续性没有要求,适用性很强。同时,算法与粒子群优化有相通之处 ,但因为DE在一定程度上考虑了多变量间的相关性,因此相较于粒子群优化在变量耦合问题上有很大的优势。算法的实现参考实现代码部分。

❻ 差分运放计算方法

电路只有两个输入,并且R1=R3,R2=R4(说明了该运放运算电路参数对称)

证明了这是一个差分比例运算电路

差分比例运算电路计算公式为:Vout=R2/R1*(V+—V-)=100/3*(V+—V-)

一个放大器的输入信号源和这个放大器的输出电压,都可以用图中虚线框起的部分来等效,即一个电压源和一个内阻的串联;而图中的电阻R可以是这个放大器的输入电阻或放大器所要接的等效负载。

若输入信号源的电压和内阻是不变的,则放大器的输入电阻越大(即高输入阻抗),从信号源取得的电流就越小,而在信号源内阻上的压降也就越小,信号电压就能以尽可能小的损失加到放大器的输入端。当输入电阻很小时,情况正好相反。当然,一般情况下我们需要前者。

相同的分析思路,若放大器的输出电阻越小,信号源电压(放大器的输出电压)在内阻上的损失也越小,负载就会获得尽可能高的输出电压,常称之为“负载能力强”。这里不包括负载需要获得最大功率的情况。

因此在需要电压放大的场合,需要输入电阻高而输出电阻低的放大器。

理想的电压放大器输入电阻无穷大输出电阻0

即使是实际中用的也有好几百兆欧,具体计算就要看运放里面的Ri了,对于本题是无法求解了!!!

❼ 泰勒级数展开式保留二阶导数项,推导前差分,后差分,中心差分计算一阶导数的公式

中心思想是泰勒级数
构造五项 ui+1 ui-1这两个偶数项可消
奇数在构造ui+2 ui-2来消除
最后可得 偏u比偏x= 8(ui+1-ui-1)-(ui+2-ui-2)/12得塔x

❽ 前向差分法,双线性变换 后向差分法的优缺点比较

一、前向差分法(即有限差分法)的优缺点:

前向差分法(即有限差分法)比较简洁方便的解决了多个变量的复杂问题。实际问题常会遇到多个自变量,非线性的方程或方程组;它们还可能是混合型的偏微分方程(如机翼的跨声速绕流),其解包含着各种间断(如激波间断、接触间断等)。

非线性问题的差分法求解是十分困难的。随着电子计算机的发展,在解决各种非线性问题中,差分法得到了很快的发展,并且出现了许多新的思想和方法,如守恒差分格式,时间相关法,分步法等。

二、双线性变换的优缺点:

有稳定性且将连续时间滤波器的频率响应中每一点映射到离散时间滤波器的频率响应中所对应的点,虽然频率会有点不同,这部分会在之后的频率扭曲中解释。

对于模拟滤波器的频率响应中所看到的特征,在数字滤波器的频率响应中都有相同增益和相位平移的对应特征,虽然频率可能会有点不同,在低频时很难观察到但在频率接近奈奎斯特频率时就相当明显。

三、后向差分法的优缺点:

许多物理现象随着时间而发生变化、如热传导过程、气体扩散过程和波的传播过程都与时间有关。描述这些过程的偏微分方程具有这样的性质;

若初始时刻t=t0的解已给定,则t>t0时刻的解完全取决于初始条件和某些边界条件。利用差分法解这类问题,就是从初始值出发,通过差分格式沿时间增加的方向,逐步求出微分方程的近似解。

(8)前推差分算法扩展阅读:

一、双线性变换的相关介绍:

双线性变换常被用来将线性非时变系统滤波器在连续时域的传递函数转换成线性且平移不变滤波器在离散时域的传递函数。

将S平面中位置在轴的点映射到复数平面上的单位圆。其他的应用还有扭曲任何的离散时间线性系统的频率响应(例如用来估计人类听觉系统的非线性频率清晰度)或是被用在离散域以取代一个系统经过一阶全通滤波器的单位延迟。

二、前向差分法的相关应用:

数学物理偏微分方程通常代表某种物理、力学中的守恒律(如质量守恒、动量守恒、能量守恒、粒子守恒等)。原始问题的差分格式,若能保持同样的守恒性质,就称为守恒差分格式。

守恒性反映出物理问题的整体性质,用它来检验差分格式的好坏是合理的。对于间断的问题,守恒格式特别重要。从积分守恒关系式出发,利用积分插值方法容易得到守恒格式。这时对于复杂的求解区域、各种类型边界条件、间断系数等复杂情况都可以处理。

三、后向差分的运用:

如果有一个连续时间且有因果性的滤波器,其传递函数的极点落在复数S平面的左半边,此滤波器则为稳定的。

如果有一个离散时间且有因果性的滤波器,其传递函数的极点落在复数Z平面的单位圆内,此滤波器则为稳定的。双线性变换将复数S平面的左半边映射到复数Z平面的单位圆内,因此稳定的连续时间滤波器被转变成离散时间滤波器后也保有稳定性。

❾ 如何用matlab推到向前差分和向后差分

一些关于差分的知识可以看看
一阶差分:gradient命令
二阶差分:del2命令
用法help一下.
如:
[f(x+h) – 2f(x) + f(x – h)]/h^2 (1)
这里h是步长.这个公式是一元函数二阶导用差分公式近似的表达,在matlab里可以用del2命令实现.
del2命令用来对函数的laplacian离散近似,方法如下:
给定函数u,它的laplacian为 2×N×del2(u,h),其中N是问题的维数,比方说二元函数u(x,y),此时N=2,对三元 函 数,四元函数依次类推;
注意,对于一元函数,此时N必须依然取2(matlab中并未给出明确的对这个特例的说明),所以函数f(x)的laplacian是2×2×del2(f,h).
公式(1)实际上是一元函数f(x)的二阶导,而对于一元函数来说,它的laplacian就是它的二阶导,即:
f’’(x) = laplacian(f) = [f(x+h) – 2f(x) + f(x – h)]/h^2 = 2*2*del2(f,h)
楼主可以试试如下例子:
x = 0:0.01:1
y = x.^3;
ythe = 6*x %理论二阶导
yapp = 2*2*del2(y,0.01);%matlab数值近似
plot(x,ythe,'*');
hold on;
plot(x,yapp,'r');
hold off;

热点内容
在同一路由器下如何访问服务器 发布:2024-09-23 20:55:41 浏览:556
天逸哪个配置带电子挡杆 发布:2024-09-23 19:51:22 浏览:547
sqrt在c语言中什么意思 发布:2024-09-23 19:50:04 浏览:507
京东羊毛服务器搭建 发布:2024-09-23 19:33:39 浏览:9
服务器的远程端口被关了如何打开 发布:2024-09-23 18:33:22 浏览:229
phpjs注入 发布:2024-09-23 18:31:51 浏览:596
高性能php应用开发 发布:2024-09-23 18:23:56 浏览:209
广东云存储空间开发 发布:2024-09-23 18:21:47 浏览:384
易语言怎么架服务器 发布:2024-09-23 18:21:46 浏览:790
hibernate缓存清除缓存 发布:2024-09-23 18:11:01 浏览:365