threepoint.m

来自「Matlab语言常用算法程序集.rar 里面有很多有用的Matlab数值运」· M 代码 · 共 27 行

M
27
字号
function df=ThreePoint(func,x0,type,h)
if nargin == 3 
    h = 0.1;
else if (nargin == 4 && h == 0.0)
        disp('h不能为0!');
        return;
    end
end

y0 = subs(sym(func), findsym(sym(func)),x0);  
y1 = subs(sym(func), findsym(sym(func)),x0+h);
y2 = subs(sym(func), findsym(sym(func)),x0+2*h);
y_1 = subs(sym(func), findsym(sym(func)),x0-h);
y_2 = subs(sym(func), findsym(sym(func)),x0-2*h);

switch type
    case 1,
        df = (-3*y0+4*y1-y2)/(2*h);     %用第一个公式求导数
       
    case 2,
        df = (3*y0-4*y_1+y_2)/(2*h);   %用第二个公式求导数
      
    case 3,
        df = (y1-y_1)/(2*h);             %用第三个公式求导数
      
end
        

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?