Matlab編程計算任意階精度的離散格式係數
離散格式的任意階導數,只要精度和點數確定後。對應各點的係數可以通過Taylor展開待定係數法計算得到。個人構造一些格式時,常常手動展開,計算係數的程序也已經寫過很多次。這裏乾脆掛在網上,避免每次使用的時候都得找半天甚至重寫。
目前實現的功能
當前格式我們只實現了最一般情形下的離散係數計算,緊緻格式係數的計算和重構係數的計算這裏均不考慮。另外,也不考慮給定超過精度所需的點,然後進行譜性質優化的情形。
程序構造考慮任意階精度,構造任意階導數的離散逼近,以及可以使用任意的點。
程序部分
%計算任意階導數的離散係數
clc;
clear;
format rat;
%給定計算使用的點,其中0代表我們所需要構造導數點的位置
point = [0 1 2 3];
n = length(point);
%要模擬幾階導數
order = 1;
%計算Taylor展開的係數
A = zeros(n);
for i = 1:n
for j = 1:n
A(i,j) = (point(j))^(i-1);
end
end
b = zeros(n,1);
b(order+1) = 1;
%求解係數並輸出
coefficient = A\b;
%輸出
[point; coefficient']
當前是使用i,i+1,i+2,i+3
一共四個點離散逼近i點處的一階導數,輸出結果如下:
ans =
0 1 2 3
-11/6 3 -3/2 1/3