作业帮 > 综合 > 作业

matlab中如何求spline的微分

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/27 19:50:33
matlab中如何求spline的微分
比如 p = spline(x,y)
我知道用p.coefs和p.breaks可以看系数和节点,但是要如何利用这些系数和节点再画出p的微分的曲线?
clear;clc
rand('seed',2);
x=1:20;
y=rand(1,20);
p=spline(x,y);
plot(x,y,'ko')
x=linspace(0,20,1000);
y=ppval(p,x);
hold on
plot(x,y,'b',x(1:end-1),diff(y)./diff(x),'r')
legend('sample','f(x)','f''(x)') 
再问: 谢谢!!想再问一下如果是微分两次 diff(y)./diff(x)应该变成什么?
再答: 记得加分哦,这个可是必杀技哦clear;clc
rand('seed',2);
x=1:20;
y=rand(1,20);
p=spline(x,y);
plot(x,y,'ko')
hold on
x=linspace(0,20,1000);
c='crgb';
while p.order
plot(x,ppval(p,x),c(p.order))
p.coefs=cell2mat(arrayfun(@(x)polyder(p.coefs(x,:)),1:size(p.coefs,1),'uniformoutput',0)');
p.order=p.order-1;
end
legend('sample','f(x)','Df(x)','D2f(x)','D3f(x)')