Matlab編程計算任意階精度的離散格式係數

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章