| Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) | 
![]()  | 
	
| 
	 | 
| 		
			
			 | 
		#1 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2009-05-25 
				
				年龄: 41 
				
					帖子: 5
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			利用x=[12,14,16,18];y=[132.291,113.019,90.259,70.757];这些数据建立二次函数图,本人写的函数程序: 
		
		
		
		
		
		
		
	polyfit[x,y,n]; x=[12,14,16,18]; y=[132.291,113.019,90.259,70.757]; n=[a*x^2+b*x+c];(此为二次函数式) 按上面的程序不能运行,恳请高手帮助。 另,有高手写如下程序: x=[12,14,16,18]; y=[0.000630,0.000538,0.000430,0.000341]; p=polyfit(x,y,2) x1=12:0.5:18; y1=polyval(p,x1); plot(x,y,'*b',x1,y1,'-r'); %legend('拟合前','拟合后图像') 可出来的二次函数图近乎于一条直线,想请哪位高手帮助,出来的图形像二次曲线!谢谢  
		 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#2 | 
| 
			
			 普通会员 
			
			
			
			注册日期: 2009-03-25 
				
				年龄: 37 
				
					帖子: 52
				 
				
				
				声望力: 18 ![]()  | 
	
	
	
		
		
			
			 
			
			呵呵,问题在于你根本就没有进行拟合, 还有原始数据太少,只有四个,如果在一个小范围内的话,就是直线,换个大范围看看,我编代码如下,你看看 
		
		
		
		
		
		
			x=[12,14,16,18]; y=[0.000630,0.000538,0.000430,0.000341]; p=polyfit(x,y,2); a=p(1); b=p(2); c=p(3); x1=linspace(1,200); y1=a*(x1.^2)+b*x1+c; plot(x,y,'*',x1,y1); legend('拟合前','拟合后图像') ; 
				__________________ 
		
		
		
		
	:水榭焚香听琴事,浪荡江湖不系舟: ![]() 感谢请点thanks  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 |