我想将二阶方程拟合到如图所示的图形上。
我已经有“来自工作空间”块和“范围”块 。
现在,我的问题是如何拟合二级图。我已经有“汽车”矩阵的“常量”块。然后,我有了“斜坡”块,它在1-365之间创建了斜率,如所示。
然后,我具有“最小二乘多项式拟合”和“多项式求值”块。因为它不起作用,我在做什么错了?
这是我的matlab代码:
n = importdata('n.txt',';')
cars = n(:,2)
trucks = n(:,3)
bus = n(:,4)
t = linspace(1,365,365)
t = transpose(t)
它给我错误“端口宽度或尺寸错误。..的输出端口1是[32x3]矩阵。”和“输入A的行数必须与输入B的行数匹配。”
答案 0 :(得分:0)
鉴于您显示的模型,我假设您已经看过Least Square Polynomial Fit块的示例,并且完全误解了它的作用。
它显示了一个示例,其中多项式的系数作为时间的函数是已知的,然后使用Polynomial Evaluation块来评估多项式,然后使用Least Square Polynomial Fit获得该多项式的系数。多项式又回来了。也就是说,这表明当数据“往返”时,尽管两个块都返回到开始的位置,应该使您确信这些块“在做正确的事”。
但是他们显示的不是您想要做的,因此您需要一个不同的模型。
如果您查看Polynomial Evaluation块的文档,则有几个示例说明了预期的输入内容。
第一个输入是自变量,在您的情况下,它看起来应该是模拟时间。您可以为此使用Ramp
,但为什么不只使用Clock块。 (如果您确实使用Ramp
,那么您希望它的Initial Value
为0
,而不是问题图像中显示的365
。)
第二个输入是作为矢量的多项式系数。这些可以预先生成(例如使用MATLAB的polyfit)函数,也可以使用Least Square Polynomial Fit块动态生成。
也就是说,您似乎确实需要以下模型: