Matlab求助(求助画出曲线的二阶导数)
随便举个例子吧x=0:1:6y=【0589850】用程序实现y的二阶导数求回答,会追加!!!...
随便举个例子吧
x=0:1:6
y=【0 5 8 9 8 5 0 】
用程序实现y的二阶导数
求回答,会追加!!! 展开
x=0:1:6
y=【0 5 8 9 8 5 0 】
用程序实现y的二阶导数
求回答,会追加!!! 展开
3个回答
展开全部
x=0:1:6;
y=[0 5 8 9 8 5 0];
plot(x,y,x(1:6),diff(y),x(1:5),diff(diff(y)))
legend('原函数','一阶导数','二阶导数')
这样得到的结果每求一次导数就会少一个数。
你也可以先进行拟合然后求导数,这样得到的图较好
x=0:1:6;
y=[0 5 8 9 8 5 0];
p=polyfit(x,y,2);
yx=poly2sym(p);
plot(x,y,x,polyval(sym2poly(diff(yx)),x),x,polyval(sym2poly(diff(yx,2)),x))
legend('原函数','一阶导数','二阶导数')
y=[0 5 8 9 8 5 0];
plot(x,y,x(1:6),diff(y),x(1:5),diff(diff(y)))
legend('原函数','一阶导数','二阶导数')
这样得到的结果每求一次导数就会少一个数。
你也可以先进行拟合然后求导数,这样得到的图较好
x=0:1:6;
y=[0 5 8 9 8 5 0];
p=polyfit(x,y,2);
yx=poly2sym(p);
plot(x,y,x,polyval(sym2poly(diff(yx)),x),x,polyval(sym2poly(diff(yx,2)),x))
legend('原函数','一阶导数','二阶导数')
展开全部
diff计算相邻元素之差,即差分,对矩阵X计算差分如下:
[X(2)-X(1) X(3)-X(2) ... X(n)-X(n-1)],比原矩阵长度小1;
当采样间隔足够小时,可以利用diff计算函数的数值导数,假设对y=f(x)
等间隔采样,采样间隔为h,得到一系列数据点(xi,yi),则函数的n阶导数为
diff(y,n)/h^n.近似的程度取决于采样间隔的大小和函数在该点处的性质,曲线
越光滑,采样间隔越小,则近似程度越高。
下面给一个例子,仅供参考
h=0.01;
x=0:h:1;
y=x.^2;
ED1=diff(y)/h;
ED2=diff(y,2)/h^2;
D1=2*x;
D2=2*ones(size(ED2));
figure(1)
plot(x(2:end),ED1,'r+')%ED1长度比x小1
hold on
plot(x,D1)%理论值
figure(2)
plot(x(3:end),ED2,'r+')
hold on
plot(x(3:end),D2)
[X(2)-X(1) X(3)-X(2) ... X(n)-X(n-1)],比原矩阵长度小1;
当采样间隔足够小时,可以利用diff计算函数的数值导数,假设对y=f(x)
等间隔采样,采样间隔为h,得到一系列数据点(xi,yi),则函数的n阶导数为
diff(y,n)/h^n.近似的程度取决于采样间隔的大小和函数在该点处的性质,曲线
越光滑,采样间隔越小,则近似程度越高。
下面给一个例子,仅供参考
h=0.01;
x=0:h:1;
y=x.^2;
ED1=diff(y)/h;
ED2=diff(y,2)/h^2;
D1=2*x;
D2=2*ones(size(ED2));
figure(1)
plot(x(2:end),ED1,'r+')%ED1长度比x小1
hold on
plot(x,D1)%理论值
figure(2)
plot(x(3:end),ED2,'r+')
hold on
plot(x(3:end),D2)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
参考diff函数
追问
能给点具体的吗,谢谢了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询