利用matlab求已知曲线的包络线和包络线解析式

若现在有一个excel表格,表格内容有两列。这个表格数据是通过设备采集出来的,没有函数解析式。

现在对这个表格数据导入matlab以后生成曲线并要求画出这个曲线的包络线(可以分段画,包络线可为直线),1.如何将包络线和已知曲线画在同一个图中?
2.怎么显示或求出每一段包络线的解析式?

万分感谢!

您好

    包络线和已知曲线画在同一个图中可以用,hold on 实现,例如:

    figure(1); plot(y1); hold on; plot(y2);       %这样就可以将y1和 y2两条曲线同时在一个坐标系显示

    求包络线的解析式

    2.1 如果已知是平滑的曲线,可以用polyfit函数拟合出它解析表达式:

    p = polyfit(x,y,n);

    %x为输入,y为输出,n为要拟合表达式的最高次幂,一般来说n越高越好,但是如过比较简单的拟合不需要设置太高的n,如果设置的太高没有必要matlab会提醒你降低n,函数的输出p则为每一次数的系数,例如我拟合n=5;输出p为-1,2,-3,4,-5,6六个数,则我要拟合的表达式为 y = -x^5 +2x^4 -3X^3 + 4x^2 - 5x +6

    2.2如果要拟合的数据并不是特别光滑,甚至有很明显的折点,那么有两种解决办法

    a.尝试增大poltfit函数中的n(效果不会特别理想,因为有明显折点不会拟合特别好,误差会比较大)

    b.分段使用polyfit函数进行拟合(可行性比较高,就是比较麻烦,先对已有数据进行分析,对数据人工手动分段,分段后再用polyfit,得到的结果会比较精确)

追问

您好,感谢您的回答。问题是现在第一个要解决的问题就是如何基于试验数据画出包络线,有了包络线我才能利用您提供的方法求解析式。所以包络线的生成如果解决呢?谢谢

追答

假设要求函数f(x)的包络线,可以先对f(x)求导,找到f(x)的极点,然后对函数的极点进行函数拟合。

温馨提示:答案为网友推荐,仅供参考
相似回答