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

前推差分演算法

發布時間: 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 18:33:22 瀏覽:228
phpjs注入 發布:2024-09-23 18:31:51 瀏覽:595
高性能php應用開發 發布:2024-09-23 18:23:56 瀏覽:208
廣東雲存儲空間開發 發布:2024-09-23 18:21:47 瀏覽:383
易語言怎麼架伺服器 發布:2024-09-23 18:21:46 瀏覽:789
hibernate緩存清除緩存 發布:2024-09-23 18:11:01 瀏覽:364
安卓導航模式在哪裡 發布:2024-09-23 18:05:22 瀏覽:55
吉利博瑞ge配置有哪些不同 發布:2024-09-23 18:05:21 瀏覽:114
紅米手機刷新密碼是多少 發布:2024-09-23 17:59:26 瀏覽:699
codeblocks帶編譯器下載 發布:2024-09-23 17:58:03 瀏覽:925