2014-05-20 63 views
1

我有这样在Matlab中找到线性系统的解决方案?

y = a*x+b; 

我有套yx

y = [1 2 3 4 5] 
x = [6 7 8 9 10] 

我想找到ab,但不是一个解决方案的方程;所有解决方案我想,我必须使用polyfit,但我不知道如何做到这一点,我不明白为什么我必须使用polyfit?你能解释一下吗?

+0

这个问题只有一种解决方法: a = 1 b = -5 – onewhaleid

+0

@onewhaleid这可能是一个例子。 – Lumen

+0

是的,这只是我需要解决方案集的例子。为和为b。 –

回答

-1

polyfit documentation

p = polyfit(x,y,n)发现的 度n适合的数据,p(x(i))y(i)的多项式p(x)的系数,在最小二乘 感。结果p是含有降权力 多项式系数长度n+1的行向量:

所以,你有数据y在x坐标x,并且要适应一次多项式它。因此,使用

p=polyfit(x,y,1); 

然后p(1)=ap(2)=b,或y=p(1)*x+p(2)

还有其他方法可以做到这一点,但polyfit非常简单。

+0

但'polyfit'返回“所有的解决方案?因为它基于最小二乘法,我猜它只是返回一个解决方案 – horchler

+0

我认为OP有多组x和y解决因为它基于最小二乘,它应该返回错误率最低的解决方案,我不认为可能有多个解决方案具有相同的错误? – David