如何 用matlab编写最小二乘法的问题,有些地方总不对,我想拟合方程:y=ax+b

对初始数据集X中所有点应用最小二乘法拟合直线y(m)=f(x),m=1,其中x为一列数,拟合方程:y=ax+b

可以用polyfit(x,y,n) n表示拟合最高的次数
例如拟合方程:y=ax+ b 就可先输入x,y、两组数据,然后polyfit(x,y,1) 即可
或者MATLAB自带曲线拟合工具箱,可以在命令窗口输入 cftool
另外拟合曲面,如z=f(x,y)则用sftool追问

我想问下,那个最小二乘法拟合直线y=ax+b,如果只有x的值的话怎么拟合?我看到的方法都是知道x和y的值然后用polyfit(x,y,1)来做的

追答

只知道x,那就必须知道函数了啊,不然你一组数据肯定是拟合不出来的啊
想想都知道啊

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-04
最小二乘法可以最终化归成解一个矩阵方程的问题,你可以看看这方面的数学书。
另外我想说的是,MATLAB自带曲线拟合工具箱,可以在命令窗口输入 cftool 打开,可以学着使用,很简单的,都是图形界面,很方便。追问

我想问下,那个最小二乘法拟合直线y=ax+b,如果只有x的值的话怎么拟合?我看到的方法都是知道x和y的值然后用polyfit(x,y,1)来做的

追答

只有x值那怎么拟合,函数至少有一个自变量和一个因变量对吧~

如何 用matlab编写最小二乘法的问题,有些地方总不对,我想拟合方程:y=ax...
可以用polyfit(x,y,n) n表示拟合最高的次数 例如拟合方程:y=ax+ b 就可先输入x,y、两组数据,然后polyfit(x,y,1) 即可 或者MATLAB自带曲线拟合工具箱,可以在命令窗口输入 cftool 另外拟合曲面,如z=f(x,y)则用sftool

Matlab用最小二乘法直线拟合此题(要写出完整的程序过程,急用,求高手...
设F=ax+b-y 那么对于模型上的点(注意是模型上的点,也就是理论值),F=ax+b-y=0 但是对于实际值来说,F=axi+b-yi 一定不等于0。那么我们就要找到一对a和b,使得F尽可能接近于0。也就是说,“偏离量总和最小”这个概念,在数学上实际上就是要求F的方差最小。即 Σ F^2→0 (F的平方...

关于matlab最小二乘法的问题?
第一步,将含碳量数据和合金的抗拉强度数据分别赋值给x、y,即 x=【。。。】y=【。。。】第二步,求总数,即 n=length(x)第三步,求x(i)和y(i)的和,即 S_x=sum(x);S_y=sum(y);第四步,求x(i)和y(i)的平均值,即 Ave_x=mean(x);Ave_y=mean(y);第五步,求x(i)^2...

如何用matlab实现非线性最小二乘拟合
最后再命令行窗口处输入solvexy,并敲入键盘上的enter建。t=29.45  0.5,即说明了a=29.45 ,b=0.5时,取得最好拟合。命令说明通过上面的例子知道,matlab实现非线性最小二乘拟合的关键命令是 lsqnonlin。该命令的格式如下 x=lsqnonlin('f',x0) 功能:作为非线性最小二乘拟合,其中f是...

matlab 最小二乘法拟合
主要的问题是inline函数写法不对,matlab不能识别下面的写法:f = inline('R * exp(-a * x)','[R a]','x');像这种有多个待辨识参数的情况,应该写成一个向量,如 f = inline('c(1) * exp(-c(2) * x)','c','x');参考代码:生成测试数据t=linspace(0,2*pi,50);x=1.5*...

如何用MATLAB求最小二乘法拟合曲线与原数据的最大偏差量
n是你选择拟合的多项式阶数。如n=1,就是y=a+bx.n=2,就是y=a+bx+cx^2. p是最小二乘意义下的系数结果的数组,即[a,b,c]。然后把求得的p带回多项式计算曲线的y坐标y1, 让y1的数组元素对应减去原数据数组元素,得到误差数组e, 然后求绝对值再求最大值。你检查一下有没有错误。

怎么用autocad自带的VBA程序实现数据的最小二乘法拟合直线?
这个程序可以为Excel所用,解决具体的曲线拟合问题;所以我的解决方法是:用Matlab的最小二乘法解决这个问题——Matlab的数学功能很强大,这种代码一搜一大把 把Matlab打包为DLL,用VBA调用 ——综上,我的想法是:与其把精力花在研究VBA的算法上(用VBA实现的算法,效率低,安全性差,并且今后几乎没有...

如何用matlab最小二乘法求解两个含参变量
令A=acos(a),B=sin(b),Y=y\/x,则Y=A+Bx,再套用线性回归公式就可以求得A、B,最后再解两个简单三角方程即可得到a、b。当然,对于任意给定的{x}和{y},A、B一定有解,但a、b不一定有解,比方求得的B=5的情况下b在实数范围内无解。

求一matlab程序(最小二乘法)
clear >> x=[19 ,25 ,31 , 38, 44];>> f=[19.0,32.3,49.0,73.3,97.8];>> xx=x.^2;>> A=[xx;ones(size(x))]';>> c=A\\f';>> a=c(2);>> b=c(1);>> y=a+b*xx;>> plot(x,f,'.',x,y,'r')做出的图,点表示原始数值。红线为拟合的直线。

怎样用matlab作数据的最小二乘拟合?
用polyfit()语句可以,polyfit(x,y,拟合次数n);x,y是你的数据,n是你要进行几次拟合,填1的话为一次也就是最小二乘法拟合 你可以这样写 x=[0.250.50.7511.522.533.544.55678910111213141516];y=[3068758282776868585150413835282518151210774];p=polyfit(x,y,1);plot(x,y,'b',x,polyval(p,x...

相似回答