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);
差分法求一阶导数二阶导数,matlab
最新推荐文章于 2023-09-11 14:38:16 发布