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