发布网友 发布时间:2022-04-23 20:00
共5个回答
热心网友 时间:2023-10-07 13:35
MATLAB中没有直接提供求数值导数的函数,只能通过差分估算。
DX=diff(X) 计算向量X的向前差分,DX(i)=X(i+1)-X(i),0<i<n。
t=[0:0.04:1.48];
y=[7.86 7.84 7.82 7.77 7.72 7.68 7.61 7.51 7.42 7.33 7.21 7.07 6.94 6.79 6.64 6.48 6.29 6.11
5.92 5.72 5.50 5.27 5.03 4.78 4.53 4.25 3.98 3.69 3.40 3.10 2.78 2.43 2.09 1.77 1.42 1.09 0.68
0.30];
Dy=diff(y)/.04;
Dt=[0.04:0.04:1.48];
p=polyfit(t,y,2);
Y=polyval(p,t);
DY=diff(Y)/.04;
plot(t,y,'b*',t,Y,'r-',Dt,Dy,'bs',Dt,DY,'g-')
xlabel('t')
ylabel('y&y''')
legend('y值','y拟合2阶多项式','y''差分值','y''拟合值')
扩展资料
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('x','Interpreter','latex','color','r','fontsize',28);
ylabel('y','Interpreter','latex','color','r','fontsize',28);
参考资料:百度百科 差分法
百度百科 MATLAB
热心网友 时间:2023-10-07 13:35
分析如下:
MATLAB中没有直接提供求数值导数的函数,只能通过差分估算。
DX=diff(X) 计算向量X的向前差分,DX(i)=X(i+1)-X(i),0<i<n。
t=[0:0.04:1.48];
y=[7.86 7.84 7.82 7.77 7.72 7.68 7.61 7.51 7.42 7.33 7.21 7.07 6.94 6.79 6.64 6.48 6.29 6.11 5.92 5.72 5.50 5.27 5.03 4.78 4.53 4.25 3.98 3.69 3.40 3.10 2.78 2.43 2.09 1.77 1.42 1.09 0.68 0.30];
Dy=diff(y)/.04;
Dt=[0.04:0.04:1.48];
p=polyfit(t,y,2);
Y=polyval(p,t);
DY=diff(Y)/.04;
plot(t,y,'b*',t,Y,'r-',Dt,Dy,'bs',Dt,DY,'g-')
xlabel('t')
ylabel('y&y''')
legend('y值','y拟合2阶多项式','y''差分值','y''拟合值')
资料拓展:
1、MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
2、MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案。
资料来源:百度词条matlab
热心网友 时间:2023-10-07 13:36
MATLAB中没有直接提供求数值导数的函数,只能通过差分估算。热心网友 时间:2023-10-07 13:36
使用gradient函数,这个函数应该具有二阶精度。同时二维函数应该也可以使用这个函数求导(梯度)热心网友 时间:2023-10-07 13:37
用函数gradient()可以求离散点的导数