如何使用Matlab进行数值微分?

时间:2017-03-03 19:03:10

标签: matlab differential-equations

任何人都可以帮助我使用matlab进行数值分析,以获得此图像的功能:

使用差异化的部分分数

在下图中,函数F(gamma)由eq(11)给出: F(伽马)

我从来没有在Matlab上做过类似的事情,所以如果你能给我一个例子,或者试着给我这个等式的初步步骤,我很感激。

1 个答案:

答案 0 :(得分:0)

可以计算出以两点为中心的导数,如下图所示的第一个等式所示:https://en.wikipedia.org/wiki/Numerical_differentiation#Finite_difference_formulas

如果你想要一个五点居中的导数,可以使用的等式是:https://en.wikipedia.org/wiki/Numerical_differentiation#Higher-order_methods

在这两种情况下,h是步长,使用的典型值低于10 ^ -2。

系数的完整表格如下表所示:https://en.wikipedia.org/wiki/Finite_difference_coefficient

在matlab中,您应该编写一个函数,以便在独立变量x的兴趣点对其进行评估,并为h选择合适的值。如果你使用的是外部文件,那么对于两个以点为中心的派生,它应该是这样的:

derivative=(lambda(x+h)-lambda(x-h))/(2*h)

和外部功能:

function[]=lambda(x,h)
    %Your function goes here: 
    %
    lambda=...
    %
end