| Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) | 
![]()  | 
	
| 
	 | 
| 		
			
			 | 
		#1 | 
| 
			
			 普通会员 
			
			
			
			注册日期: 2008-01-27 
				
				年龄: 39 
				
					帖子: 31
				 
				
				
				声望力: 18 ![]()  | 
	
	
	
		
		
			
			 
			
			各位,小弟在这请安了。最近遇到一个数据拟合问题。 
		
		
		
		
		
		
		
	已知: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一样,可结果得出的系数是不一样的,不知道这道题大家用第一种还是第二种,抑或其它?请解疑。  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#2 | 
| 
			
			 普通会员 
			
			
			
			注册日期: 2008-01-27 
				
				年龄: 39 
				
					帖子: 31
				 
				
				
				声望力: 18 ![]()  | 
	
	
	
		
		
			
			 
			
			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是用最小二乘法拟合多项式曲线,按说应该两个函数求出的系数矩阵相同,可是总是会存在偏差。  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#3 | 
| 
			
			 高级会员 
			
			
			
			注册日期: 2008-05-31 
				
				年龄: 38 
				
					帖子: 104
				 
				
				
				声望力: 20 ![]()  | 
	
	
	
		
		
			
			 
			
			多项式拟合是按x的降幂排列的,相应系数也是,而用lsqcurvefit给出的系数是你定义函数时怎么定义,顺序还是怎么排,你看看是不是这个地方出问题了。
		 
		
		
		
		
		
		
		
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#4 | 
| 
			
			 游客 
			
			
			
			
					帖子: n/a
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 
			
			lsqcurvefit在有些情况下与所给的初值(a的初值)有关。若给的初值适当,两者的结果应该完全相同(注意系数序列的差别),因为他们都是根据最小平方法(最小二乘法)得到相应的结果。当然,对于多项式问题,用polyfit更为简单方便。
		 
		
		
		
		
		
		
		
	 | 
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#5 | 
| 
			
			 普通会员 
			
			
			
			注册日期: 2008-01-27 
				
				年龄: 39 
				
					帖子: 31
				 
				
				
				声望力: 18 ![]()  | 
	
	
	
		
		
			
			 
			
			您讲的很对  起始向量对结果有很大影响 如果取不好 经常会发生警告 奇异阵 什么的 POLYfit 确实更为方便 而且拟合精度也较好
		 
		
		
		
		
		
		
		
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
![]()  | 
	
	
		
  | 
	
		 | 
			 
			相似的主题
		 | 
	||||
| 主题 | 主题作者 | 版面 | 回复 | 最后发表 | 
| [求助]VC中怎么传递参数给imread('fliename') | TT | MATLAB论坛 | 2 | 2009-02-07 11:36 | 
| 如何实现gui窗口嵌套 | beulah | MATLAB论坛 | 1 | 2008-12-28 17:57 | 
| [求助]如下的用语音信号里面的专业术语该怎样翻译 | beyondsyq | MATLAB论坛 | 2 | 2008-12-18 14:41 | 
| [求助]如何取一段高频信号的包络啊 | xiangrufeia | MATLAB论坛 | 0 | 2008-12-14 19:59 | 
| [求助]怎么改变控件的背景颜色 | sjuie_192 | MATLAB论坛 | 0 | 2008-12-13 11:34 |