差分法求一阶导数二阶导数,matlab

标签: Matlab教学

在这里插入图片描述

clc;clear all
h=0.01;
%x属于【a,b】
a=-5;b=5;
x=a:h:b
n=length(x);
%定义y
y=sin(0.3*x).*cos(3*x)
hold on
grid on
yx=zeros(1,n);
yxx=zeros(1,n);
for i=2:n-1
  yx(i-1)=(y(i+1)-y(i-1))/(2*h);
  yxx(i-1)=(y(i+1)+y(i-1)-2*y(i))/h^2;
end
plot(x,y,'r','linewidth',2)
plot(x(2:n-1),yx(1:n-2),'g','linewidth',2);
plot(x(2:n-1),yxx(1:n-2),'b','linewidth',2);
legend('原函数','差分一阶导数','差分二阶导数')
xlabel('xx','Interpreter','latex','color','r','fontsize',28);
ylabel('yy','Interpreter','latex','color','r','fontsize',28);

在这里插入图片描述

版权声明:本文为kangjielearning原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/kangjielearning/article/details/106292224