You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							51 lines
						
					
					
						
							1.0 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							51 lines
						
					
					
						
							1.0 KiB
						
					
					
				| /*Curve fitting problem by Least Squares | |
|   Nigel_Galloway@operamail.com | |
|   October 1st., 2007 | |
| */ | |
| set Sample; | |
| param Sx {z in Sample}; | |
| param Sy {z in Sample}; | |
| 
 | |
| var X; | |
| var Y; | |
| var Ex{z in Sample}; | |
| var Ey{z in Sample}; | |
| 
 | |
| /* sum of variances is zero for Sx*/ | |
| variencesX{z in Sample}: X + Ex[z] = Sx[z]; | |
| zumVariancesX: sum{z in Sample} Ex[z] = 0; | |
| /* sum of variances is zero for Sy*/ | |
| variencesY{z in Sample}: Y + Ey[z] = Sy[z]; | |
| zumVariancesY: sum{z in Sample} Ey[z] = 0; | |
| 
 | |
| solve; | |
| 
 | |
| param b1 := (sum{z in Sample} Ex[z]*Ey[z])/(sum{z in Sample} Ex[z]*Ex[z]); | |
| printf "\nbest linear fit is:\n\ty = %f %s %fx\n\n", Y-b1*X, if b1 < 0 then "-" else "+", abs(b1); | |
| 
 | |
| data; | |
| 
 | |
| param: | |
| Sample:   Sx    Sy := | |
|   1         0    1 | |
|   2       0.5  0.9 | |
|   3         1  0.7 | |
|   4       1.5  1.5 | |
|   5       1.9    2 | |
|   6       2.5  2.4 | |
|   7         3  3.2 | |
|   8       3.5    2 | |
|   9         4  2.7 | |
|  10       4.5  3.5 | |
|  11         5    1 | |
|  12       5.5    4 | |
|  13         6  3.6 | |
|  14       6.6  2.7 | |
|  15         7  5.7 | |
|  16       7.6  4.6 | |
|  17       8.5    6 | |
|  18         9  6.8 | |
|  19        10  7.3 | |
| ; | |
| 
 | |
| end;
 |