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

差分算法

发布时间: 2022-01-08 05:49:17

‘壹’ 差分进化算法能不能解决多目标问题

当然是可以的,这种典型EAs(演化计算算法)或者称population-based算法对于任何优化问题,总能搜索出一个解。
如果把多目标优化问题看成目标函数的给定问题,就可以了。

‘贰’ 差分法的计算原理

其实形象一点理解,我们可以作图,选取A(1,2)和点B(2,5)我们可以看到这时线段AO和线段BO(O为原点)的斜率都是一个分数,AO对应小分数(分子分母都比BO的小),BO对应大分数,且5/2>2/1我们将这两个点的坐标对应做差C(1,2),这不太形象,我们可以将AB连起来,这时,AB的斜率就是另外的一个分数,在坐标系中我们可以很容易看出,AB的斜率要比小值也就是AO斜率要大,这时,我们就能看出,
1。如果若差分数比小分数大,则大分数比小分数大;
再举其他的例子同理可以得到
2。若差分数比小分数小,则大分数比小分数小;
3。若差分数与小分数相等,则大分数与小分数相等。
现在对于3/4和1/2进行差分比较
差分后得(3-1)/(4-2)=2/2=1>1/2
故由上我们可知,3/4>1/2

‘叁’ 显式差分算法

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

质量守恒定律要求一个网格块中地下水的流入或流出净流量等于存储于网格块的地下水的变化量。图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+)

‘肆’ 差分进化算法比遗传算法好在哪

遗传算法 ,差分进化,粒子群,蚁群,模拟退火,人工鱼群,蜂群,果蝇优化等都可以优化svm参数

‘伍’ 差分GPS的算法

GPS定位是利用一组卫星的伪距、星历、卫星发射时间等观测量和用户钟差来实现的。要获得地面的三维坐标,必须对至少4颗卫星进行测量。在这一定位过程中,存在3部分误差:
第一部分误差是由卫星钟误差、星历误差、电离层误差、对流层误差等引起的;
第二部分是由传播延迟导致的误差;
第三部分为各用户接收机固有的误差,由内部噪声、通道延迟、多路径效应等原因造成。
利用差分技术,第一部分误差可以完全消除;第二部分误差大部分可以消除,消除程度主要取决于基准接收机和用户接收机的距离;第三部分误差则无法消除。
下面,我们主要介绍消除由于电离层延迟和对流层延迟引起的误差的算法。在算法中使用的时间系统为GPS时,坐标系统为WGS-84坐标系。
1.消除电离层误差的算法
我们主要通过电离层网格延迟算法来获得实际的电离层延迟值,以消除电离层误差。具体过程如下:解算星历,得出卫星位置→求电离层穿透点位置→求对应网格点→求网格4个顶点的电离层延迟改正数→内插获得穿透点垂直延迟改正数→求穿透点的实际延迟值。
2.卫星位置的计算
解算出星历数据后,加入星历修正和差分信息,便可计算出卫星位置。
从GPS OEM板接收到的是二进制编码的星历数据流,必须按照本文前面部分列出的数据结构解算星历数据,再依据IEEE-754标准将其转换为十进制编码的数据。在这里,需要解算的参数有:轨道长半轴的平方根(sqrta)、平近点角改正(dn)、星历表基准时间(toe)、toe时的平近点角(m0)、偏心率(e)、近地点角距(w)、卫星轨道摄动修正参数(cus cuc cis cic crs crc)、轨道倾角(i0)、升交点赤经(omg0)、升交点赤经变化率(odot)。

‘陆’ 怎么用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();
}

‘柒’ 求基于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()函数中调用这些函数,初始化函数参数以及各种变量。

热点内容
循迹小车算法 发布:2024-12-22 22:28:41 浏览:82
scss一次编译一直生成随机数 发布:2024-12-22 22:04:24 浏览:956
嫁接睫毛加密 发布:2024-12-22 21:50:12 浏览:975
linuxbin文件的安装 发布:2024-12-22 21:46:07 浏览:798
vlcforandroid下载 发布:2024-12-22 21:45:26 浏览:664
电脑做网关把数据发送至服务器 发布:2024-12-22 21:44:50 浏览:432
新华三代理什么牌子的服务器 发布:2024-12-22 21:33:21 浏览:342
欢太会员密码是什么 发布:2024-12-22 20:57:28 浏览:74
sqllocaldb 发布:2024-12-22 20:07:08 浏览:126
如何找到我的服务器 发布:2024-12-22 19:52:14 浏览:301