| Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) | 
![]()  | 
	
| 		
			
			 | 
		#1 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2008-12-26 
				
				年龄: 41 
				
					帖子: 4
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			刚入MATLAB,最近想根据测量离散点和高阶偶次方程进行拟合,麻烦哪大侠指点! 
		
		
		
		
		
		
		
	方程为:z=(C1*x^2)/(1+(1-(K+1)*C1^2*x^2)^(1/2))+a*x^2+b*x^4+c*x^6+d*x^8+e*x^10+f*x^12+g*x^14+h*x^16; 请问有X,Z离散点值,怎样拟合得出最佳系数?感谢!!!  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#2 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2009-03-20 
				
				年龄: 43 
				
					帖子: 26
				 
				
				
				声望力: 17 ![]()  | 
	
	
	
		
		
			
			 
			
			我看了一下,你这个最低有2次幂,最高有16次幂 
		
		
		
		
		
		
		
	可能用ployfit命令有些慢和浪费,但可能准确度要高些 如果你的x,z的值能够有8组或者比8组多的话,那就自己来编吧! 将系数当做是未知数,解一个8元方程,这个8元方程的解就是系数的值。 设系数为a1,a2,....a8. 已知的8组值为(x1,z1),(x2,z2)....(x8,z8) 那么可以得到如下方程 a1*(x1).^2+a2*(x1).^4+a3*(x1).^6+...+a8*(x1).^16=z1 a1*(x2).^2+a2*(x2).^4+a3*(x2).^6+...+a8*(x2).^16=z2 ... a1*(x8).^2+a2*(x8).^4+a3*(x8).^6+...+a8*(x8).^16=z8 用矩阵表示就是 A*B=C 其中A=[a1 a2 a3 a4 a5 a6 a7 a8] C=[z1,z2,z3,z4,z5,z6,z7,z8] 关于矩阵B,是一个8*8阶的矩阵,其对应的行列式是一个范德蒙行列式,有现成的计算公式,你上网就可以查到了。 我相信你对matlab求解矩阵方程的命令应该不陌生吧!由于matlab中关于基于不同方法的矩阵求解的命令有太多的,你自己可以找合适的来用。 提示:有可能出现矩阵无解的情况,这个时候,就看自己选值了。  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#3 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2008-12-26 
				
				年龄: 41 
				
					帖子: 4
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#4 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2009-03-20 
				
				年龄: 43 
				
					帖子: 26
				 
				
				
				声望力: 17 ![]()  | 
	
	
	
		
		
			
			 
			
			不好意思,我大致看了一下,ployfit命令是连续的。我初步想了一下,是不是可以这样来用 
		
		
		
		
		
		
			设偶次多项式为 f(x)=a0+a2*x^2+a4*x^4+...+a(2n)*X^(2*n),那么f(x)是偶函数,也就是说f(-x)=f(x). 根据这一性质我们可以得到如下方法 设有一组数据x,y对应的是偶次多项式 那么我们拟合两次 第一次拟合 ployfit(x,y,16) %前提是x向量的长度要大于16,16为阶数 那么,我们得到的系数是 f(x)=a0+a1*x+a2*x^2+...+a15*x^15+a16*x^16; (1) 第二次拟合 ployfit(-x,y,16) 那么我们得到的系数是 f(-x)=a0'-a1’*x+a2'*x^2+...-a15'*x^15+a16'*x^16; (2) 那么(f(x)+f(-x))/2 就得到了偶数项的系数 (f(x)-f(-x))/2 就得到了奇数项的系数 不知道这样是不是可以,我没上机实践过,如果你上机试过了,请告知我结果,谢谢! 
				__________________ 
		
		
		
		
	不到马里亚纳,不知道大海的深度 不到珠穆朗玛,不知道大山的高度 不到Labfans,不知道自己的无知  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#5 | 
| 
			
			 高级会员 
			
			
			
			注册日期: 2007-06-24 
				
				年龄: 70 
				
					帖子: 188
				 
				
				
				声望力: 22 ![]()  | 
	
	
	
		
		
			
			 
			
			可将数据置上,代为拟合。
		 
		
		
		
		
		
		
		
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#7 | 
| 
			
			 高级会员 
			
			
			
			注册日期: 2007-06-24 
				
				年龄: 70 
				
					帖子: 188
				 
				
				
				声望力: 22 ![]()  | 
	
	
	
		
		
			
			 
			
			该文件在打开时遇到问题,共有27200组数据,不知对否? 
		
		
		
		
		
		
		
	我用你的模型试了一下,可能模型不是很恰当,结果不太理想(运算时间较长,目前尚未完全出来)。 若按模型: y=b1*x^2+b2*x^4+b3*x^6+b4*x^8+b5*x^10+b6*x^12+b7*x^14+b8*x^16+b9 则过程就简单多了,效果也可能更好些: b=[-0.00043548209, 0.00034795208, 0.00020752636, -0.0006411563, 0.00047641925, -0.0001559222, 0.000022385353, -0.000001017432,0.00012507198] 离回归平方和:RSS=2.5114e-006 决定系数:R^2=0.98201  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#8 | 
| 
			
			 高级会员 
			
			
			
			注册日期: 2007-06-24 
				
				年龄: 70 
				
					帖子: 188
				 
				
				
				声望力: 22 ![]()  | 
	
	
	
		
		
			
			 
			
			可以肯定,你所提供的模型是不恰当的,不可能得到好的拟合。 
		
		
		
		
		
		
		
	若用下列模型: y=(b(9)+b(10)*x.^2)./(1+b(11)*x.^2).^.5+b(1)*x.^2+b(2)*x.^4+b(3)*x.^6+b(4)*x.^8+b(5)*x.^10+b(6)*x.^12+b(7)*x.^14+b(8)*x.^16; 则:b= [-0.0012991399, 0.001264971, -0.00060826645, -0.00021489955, 0.0003667798, -0.00015156441, 0.000026028774, -0.0000015517482, 0.00013735908, 0.0068776143, 153.72281] RSS =0.000001177982182 MSe = 4.3327e-011 R^2 = 0.99156 要比前述模型好一些。  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#9 | |
| 
			
			 初级会员 
			
			
			
			注册日期: 2008-12-26 
				
				年龄: 41 
				
					帖子: 4
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 引用: 
	
 若我非得用这模型来拟合的话 请告诉我具体的方法一下(不管拟合效果怎样),能否把M文件转给我一下呢?供我参考学习一下好不? 我的mail:[email protected] 谢谢  | 
|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#10 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2011-11-13 
				住址: 天津 
				年龄: 34 
				
					帖子: 3
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			你好。我这里有一组三维空间点想通过MATLAB拟合成非球面,然后得出该非球面的具体方程。请问可以帮我做一下吗?我没有接触过MATLAB```谢谢!
		 
		
		
		
		
		
		
		
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 |