⑴ 怎麼用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;
⑵ 怎麼用matlab求差分
調用filter函數解差分方程。
1)yn=filter(B,A,xn)是計算輸入向量xn的零狀態響應輸出信號yn,yn與xn長度相等,
其中B=[b0,b1,……bn], A=[a0,a1,……an]。其中a0=1。
2)yn=filter(B,A,xn,xi)是計算全響應的函數。xi是等效初始條件的輸入序列,xi能由初始條件確定。此時需要調用filtic函數。xi=filtic(B,A,ys,xs)。其中ys,xs是初始條件向量。
其中ys=[y(-1),y(-2)……y(-N)],xs=[x(-1),x(-2),……x(-M)]
另外若xn為因果序列xs=0可預設。
舉個例子若y(n)-0.8y(n-1)=x(n),初始條件y(-1)=1。
a=0.8,ys=1;
xn=[1,zeros(1,30)];
B=1, A=[1,-a];
xi=filtic(B,A,ys);
yn=filter(B,A,xn,xi);
%以下是解出來的yn圖像
n=0:length(yn)-1;
stem(n,yn,'.');
⑶ 差分進化演算法matlab的小例子
差分進化演算法matlab的小例子
在內存管理方案中放置的第三種類型是類型引用,引用通常就是一個指針。我們不會顯示的使用指針,它們由公共語言運行時(CLR)來管理。