如何分段线性逼近x和y点?

41视图(30天)
我有x和y点如下:
x = (20 60 240 480 1440 2880);
y = (0.0278 0.1626 1.8126 4.006 18.2491 - 44.4084)
我想做分段线性近似直线的方程。我怎么继续?我用polyfit功能和线的斜率和拦截。但是,我不确定它是否正确?例如,如果x的值是< 60岁,我得到一个负值的y从polyfit定义功能。

接受的答案

约翰D 'Errico
约翰D 'Errico 2022年11月23日
编辑:约翰D 'Errico 2022年11月23日
x = (20 60 240 480 1440 2880);
y = (0.0278 0.1626 1.8126 4.006 18.2491 - 44.4084);
情节(x, y,“啊——”)
你只有6个数据点。希望任何合理的分段线性近似这是非常希望在一个明星。
多项式(直线)适合当然会produuce亚都负截距。
polyfit (x, y, 1)
ans = 1×2
0.0156 - -1.8417
所以在x = = 0,将预测-1.8417。
但这只是意味着一条直线模型可能有一些缺乏配合。由于数据确实有一定的曲率,一个线性将没有意义。甚至二次匹配失败预测正值x = = 0。
格式长g
polyfit (x, y, 2)
ans = 1×3
1.98278909699252 e-06 0.0099272840717487 - -0.549621036882257
你没有足够的数据来预测价值。但我要指出的正曲率数据将使任何线性适合在x - y轴截距= = 0。
你可能做的是符合二次多项式,没有一个常数项。这样的模型形式
y = a1 * x ^ 2 + a2 * x
显然,当x = = 0时,该模型将永远完全穿过零。它会有适合您的有限的数据正曲率。
%我可以使用反斜杠来估计模型,但也许曲线拟合
%工具箱可能是一个更好的主意,因为它是更容易使用。
% P2 = [x '。^ 2,x '] \ y ';%这将符合二次模型,没有常数项
mdl2 = fittype (“a2 * x。^ 2 + a1 * x ',“它”,“x”)
mdl2 =
通用模型:mdl2 (a1, a2, x) = a2 * x。^ 2 + a1 * x
P2 =适合(x, y, mdl2)
警告:起点不提供,选择随机起始点。
P2 =
通用模型:P2 (x) = a2 * x。^ 2 + a1 * xCoefficients (with 95% confidence bounds): a1 = 0.008991 (0.006946, 0.01104) a2 = 2.248e-06 (1.468e-06, 3.029e-06)
xpred = linspace(最小(x)最大(x));
ypred2 = P2 (xpred);
情节(x, y,“波”xpred ypred2,“- r”)
我不知道噪音是多少您的数据。但另一个想法是尝试一立方模型,再没有常数项。
mdl3 = fittype (“a3 * x。^ 3 + a2 * x。^ 2 + a1 * x ',“它”,“x”)
mdl3 =
通用模型:mdl3 (a1, a2, a3, x) = a3 * x。^ 3 + a2 * x。^ 2 + a1 * x
P3 =适合(x, y, mdl3)
警告:起点不提供,选择随机起始点。
P3 =
通用模型:P3 (x) = a3 * x。^ 3 + a2 * x。^ 2 + a1 * xCoefficients (with 95% confidence bounds): a1 = 0.005566 (0.004167, 0.006964) a2 = 6.449e-06 (4.854e-06, 8.043e-06) a3 = -1.051e-09 (-1.447e-09, -6.555e-10)
ypred3 = P3 (xpred);
情节(x, y,“波”xpred ypred3,“- r”)
我甚至不认为你的数据证明,曲线拟合,但它似乎适合您的数据。

更多的答案(2)

沃尔特·罗伯森
沃尔特·罗伯森 2022年11月23日
编辑:沃尔特·罗伯森 2022年11月23日
一个分段线性近似分段休息或在任何一对点,因此不是独一无二的。你必须约束近似有希望。
例如你可能需要休息一半两点之间如果前一段长度2个或更多的和额外的点的投影估计会超过10%不同的观点。
(注意,这个规则有潜在的问题,比如如果这将使一个孤立点;请注意,因为这取决于 价值 点的差异的影响取决于你有多接近轴。的差异可能是物质的,如果y坐标一百万——但另一方面,如果你翻译坐标下降一百万轴附近的和有相同的相对价值,是10突然相关的差异?)

图像分析
图像分析 2022年11月23日
我真的不明白在数据拟合两行只有6分。有这么几点基本上没有信心行将像他们会如果你有几百个点。所以,为什么要找麻烦呢?你打算如何处理这些信息?
尽管如此,你可以试试我的分段拟合的演示,附呈。

s manbetx 845


释放

R2022b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!