matlab的函数的拟合和求二次导x=9:0.1:10.5y=[3.52 3.68 3.98 4.21 4.72 5.13 5.40 5.57 5.70 5.80 5.89 5.96 6.02 6.07 6.14 6.19];想拟合并求出其二阶导数的曲线以找出拐点后面的代码怎么写啊?最好能用diff啊
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/24 00:01:21
matlab的函数的拟合和求二次导x=9:0.1:10.5y=[3.52 3.68 3.98 4.21 4.72 5.13 5.40 5.57 5.70 5.80 5.89 5.96 6.02 6.07 6.14 6.19];想拟合并求出其二阶导数的曲线以找出拐点后面的代码怎么写啊?最好能用diff啊
matlab的函数的拟合和求二次导
x=9:0.1:10.5
y=[3.52 3.68 3.98 4.21 4.72 5.13 5.40 5.57 5.70 5.80 5.89 5.96 6.02 6.07 6.14 6.19];
想拟合并求出其二阶导数的曲线以找出拐点
后面的代码怎么写啊?最好能用diff啊
matlab的函数的拟合和求二次导x=9:0.1:10.5y=[3.52 3.68 3.98 4.21 4.72 5.13 5.40 5.57 5.70 5.80 5.89 5.96 6.02 6.07 6.14 6.19];想拟合并求出其二阶导数的曲线以找出拐点后面的代码怎么写啊?最好能用diff啊
多项式拟合:
经验证,9次多项式能够很好的拟合
x=9:0.1:10.5;
y=[3.52 3.68 3.98 4.21 4.72 5.13 5.40 5.57 5.70 5.80 5.89 5.96 6.02 6.07 6.14 6.19];
[p,s,mu]=polyfit(x,y,9);
y1=polyval(p,x);
plot(x,y,'b',x,y1,'r');
legend('原始曲线','拟合曲线');
得:
获取拟合表达式:
f=poly2sym(p);
求二阶导数:
g=diff(f,2);
求二阶导数为0的点
result=eval(solve(g));
输出:
result =
10.4060
9.3815
9.0444
9.9794
9.8306
10.2321
9.0211
有7个拐点