|||
之前的得到一列离散数据的时候,求该离散数据每一点处的导数值,我是采用徐萃薇《计算方法引论(第四版)》Page 42中的三点公式求得每一点处的导数值,是利用过三个点做二次插值多项式求得。
% 此程序采用三点法来计算一维序列导数值
% 其中h为数据(等距)间隔,y为一维序列
function dy = Sandianfa(y,h)
dy = y;
for i = 1:length(y)-2
dy(i) = (-3*y(i)+4*y(i+1)-y(i+2))/(2*h);
dy(i+1) = (y(i+2)-y(i))/(2*h);
dy(i+2) = (y(i)-4*y(i+1)+3*y(i+2))/(2*h);
end
end
数值积分可以采用Matlab中Cumtrapz函数,具体参见https://ww2.mathworks.cn/help/matlab/ref/cumtrapz.html
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2025-1-8 14:16
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社