當前位置:首頁 » 操作系統 » 差分演算法

差分演算法

發布時間: 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 瀏覽:431
新華三代理什麼牌子的伺服器 發布: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