Matlab 分段拟合

来源:百度知道 编辑:UC知道 时间:2024/06/05 10:52:21
哪位大哥帮帮忙,小弟刚刚接触Matlab 不是很懂
实验中需要分三段线性拟合一组数据
x={-11.8 -11.6 -11.4 -11.2 -11.0 -10.8 -10.6 -10.4 -10.2 -10.0 -9.8 -9.6 -9.4 -9.2 -9.0
-8.8 -8.6 -8.4 -8.2 -8.0 -7.8 -7.6 -7.4 -7.2 -7.0 -6.8 -6.6 -6.4 -6.2 -6.0
-5.8 -5.6 -5.4 -5.2 -5.0 -4.8 -4.6 -4.4 -4.2 -4.0 -3.8 -3.6 -3.4 -3.2 -3.0
-2.8 -2.6 -2.4 -2.2 -2.0 -1.8 -1.6 -1.4 -1.2 -1.0 -0.8 -0.6 -0.4 -0.2 0.0

}
y={0.581 0.957 1.348 1.769 2.170 2.304 2.993 3.396 3.819 4.232 4.638 4.566 4.485 4.402 4.321
4.239 4.158 4.076 3.994 3.913 3.830 3.749 3.668 3.586 3.504 3.423 3.341 3.260 3.178 3.096
3.015 2.933 2.852 2.770 2.668 2.607 2.526 2.444 2.362 2.281 2.199 2.118 2.036 1.955 1.873
1.791 1.711 1.629 1.551 1.469 1.389 1.248 1.096 0.944 0.793 0.641 0.489 0.337 0.186 0.000
}拐点分别是第十一个,第51个
帮忙把代码和图都贴给我,不胜感激~

clear;clc;
x=[-11.8 -11.6 -11.4 -11.2 -11.0 -10.8 -10.6 -10.4 -10.2 -10.0 -9.8 -9.6 -9.4 -9.2 -9.0...
-8.8 -8.6 -8.4 -8.2 -8.0 -7.8 -7.6 -7.4 -7.2 -7.0 -6.8 -6.6 -6.4 -6.2 -6.0...
-5.8 -5.6 -5.4 -5.2 -5.0 -4.8 -4.6 -4.4 -4.2 -4.0 -3.8 -3.6 -3.4 -3.2 -3.0 ...
-2.8 -2.6 -2.4 -2.2 -2.0 -1.8 -1.6 -1.4 -1.2 -1.0 -0.8 -0.6 -0.4 -0.2 0.0];
y=[0.581 0.957 1.348 1.769 2.170 2.304 2.993 3.396 3.819 4.232 4.638 4.566 4.485 4.402 4.321...
4.239 4.158 4.076 3.994 3.913 3.830 3.749 3.668 3.586 3.504 3.423 3.341 3.260 3.178 3.096 ...
3.015 2.933 2.852 2.770 2.668 2.607 2.526 2.444 2.362 2.281 2.199 2.118 2.036 1.955 1.873 ...
1.791 1.711 1.629 1.551 1.469 1.389 1.248 1.096 0.944 0.793 0.641 0.489 0.337 0.186 0.000];
p1=polyfit(x(1:11),y(1:11),1);
p2=polyfit(x(11:51),y(11:51),1);
p3=polyfit(x(51:end),y(51:end),1);
Y1=vpa(poly2sym(p1,'x'),6)
Y2=vpa(poly2sym(p2,'x'),6)
Y3=vpa(poly2sym(p3,'x'),6)
x1=m