![]()  | 
	
		
 [求助]关于MATLAB中lsqcurvefit、polyfit用法的探讨 
		
		
		各位,小弟在这请安了。最近遇到一个数据拟合问题。 
	已知:x=[1500 2000 2500 3000 3500 4000 4500 5000 5500]; y=[78.59 83.04 84.11 86.63 87.61 84.87 84.67 82.50 80.54];求解系数a,使得函数f(x)=a(1)*x+a(2)*x^2+a(3)*x^3+a(4)*x^4+a(5)*x^5+a(6)是x,y的最佳拟合曲线。 这个问题我想就是利用多项式数据拟合 是不是直接应用polyval polyfit,得出的系数即为a? 还是需要最小二乘法数据拟合函数lsqcurvefit?如果将目标函数设置为多项式f(x)=a(1)*x+a(2)*x^2+a(3)*x^3+a(4)*x^4+a(5)*x^5+a(6),效果是不是和polyfit一样,可结果得出的系数是不一样的,不知道这道题大家用第一种还是第二种,抑或其它?请解疑。  | 
		
 回复: [求助]关于MATLAB中lsqcurvefit、polyfit用法的探讨 
		
		
		polyfit函数拟合出来的就是一个多项式,而多项式的系数都是用最小二乘法得出的。 
	可以用help polyfit来看帮助,会发现有这么一句话: P = POLYFIT(X,Y,N) finds the coefficients of a polynomial P(X) of degree N that fits the data Y best in a least-squares sense. 既然Polyfit是用最小二乘法拟合多项式曲线,按说应该两个函数求出的系数矩阵相同,可是总是会存在偏差。  | 
		
 回复: [求助]关于MATLAB中lsqcurvefit、polyfit用法的探讨 
		
		
		多项式拟合是按x的降幂排列的,相应系数也是,而用lsqcurvefit给出的系数是你定义函数时怎么定义,顺序还是怎么排,你看看是不是这个地方出问题了。 
	 | 
		
 回复: [求助]关于MATLAB中lsqcurvefit、polyfit用法的探讨 
		
		
		lsqcurvefit在有些情况下与所给的初值(a的初值)有关。若给的初值适当,两者的结果应该完全相同(注意系数序列的差别),因为他们都是根据最小平方法(最小二乘法)得到相应的结果。当然,对于多项式问题,用polyfit更为简单方便。 
	 | 
		
 回复: [求助]关于MATLAB中lsqcurvefit、polyfit用法的探讨 
		
		
		您讲的很对  起始向量对结果有很大影响 如果取不好 经常会发生警告 奇异阵 什么的 POLYfit 确实更为方便 而且拟合精度也较好 
	 | 
| 所有时间均为北京时间。现在的时间是 22:34。 | 
	Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.