作业帮 > 综合 > 作业

matlab的函数的拟合和求二次导

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/13 12:15:43
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啊
多项式拟合:
经验证,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个拐点
 
 
 

 
 
再问: 其实这是一条滴定曲线,我想找到其中的等当量点,也就是其中斜率最大的点,这7个点,我选哪个啊?大神,再帮我筛一下吧,最可能的一个是谁?
再答: 将一阶导数画出来综合判断呗 h=diff(f,1); x=9:0.1:10.5; y2=subs(h,x); 用: plot(x,y2,'b'); 自己画一阶导数图形来观察