求助一个matlab的问题

来源:百度知道 编辑:UC知道 时间:2024/06/02 12:17:04
已知一系列坐标,怎样用matlab编程求出一条直线,使所有点到这条直线的平方和最小。我需要的是直线,而不是多次自变量的曲线。
怎么写内连函数?

对于直线形式y=ax+b,只要求出a,b两未知数你的直线也就确定了。
matlab中有最小二乘的函数lsqcurve(),能帮你求出a,b的值。
具体过程是这样的:
(1)写一个内连函数fun=inline(c(1)*x+c(2)),'c','x');
(2)利用c=lsqcurvefit(fun,c0,x,y)求出c的值,c是包含两个元素的向量,即为对应a,b的值。其中,c0是给定的初值,你可以自己设一个,比如[0,0],
x,y为你的一系列坐标值了。
这个说得够清楚了吧。如果还有什么问题,可以给我发消息。

你需要一条直线,是一个常数 y = a,还是y = a*x + b?

如果是y = a*x + b可以用线性拟合的方法。

如果是y = a, 那么 a 就是这一系列坐标的均值

简单的拟合问题啊

polyfit(x,y,1)就可以了啊