x=1、1.1、1.2、1.3、1.4;f(x)=0.25、0.2268、0.2066、0.189、0.1736利用三点公式计算在x=1、1.2、1.4处的导数值。
你好!代码供参考
定义一个函数
function dydx = threePiontDerivative(x,y)
x = x(:); y = y(:);
n = length(x); m = length(y);
if(n~=m)
error('x和y长度不一致')
end
if(n<3)
error('x和y长度不够,长度至少要有3')
end
dx = diff(x);
h = mean(dx);
if(max(abs(h-dx))>1e-12)
error('x不是等间距的')
end
dydx = zeros(size(y));
dydx(2:end-1) = (y(3:end)-y(1:end-2))/(2*h);%首端点
dydx(1) = (-3*y(1)+4*y(2)-y(3))/(2*h);%中间点
dydx(n) = (y(n-2)-4*y(n-1)+3*y(n))/(2*h);%末端点
end
然后调用函数:
x=1.0:0.1:1.4;
y=[0.25,0.2268,0.2066,0.189,0.1736];
dydx = threePiontDerivative(x,y)
得到结果如下:
dydx =
-0.247000000000000
-0.217000000000000
-0.189000000000000
-0.165000000000000
-0.143000000000000
可见在x=1、1.2、1.4处的导数值分别为:-0.247、-0.189、-0.143
有帮助望采纳哟,谢谢啦
自己的作业自己做