26 lines
		
	
	
		
			353 B
		
	
	
	
		
			Matlab
		
	
	
		
		
			
		
	
	
			26 lines
		
	
	
		
			353 B
		
	
	
	
		
			Matlab
		
	
	
| 
								 | 
							
								scale = 1e-10;
							 | 
						||
| 
								 | 
							
								length = 10000;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								A = spalloc(length, length, 2*length);
							 | 
						||
| 
								 | 
							
								b = zeros(length, 1);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								A(1,1) = 1;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								for i = 2:length
							 | 
						||
| 
								 | 
							
								    A(i, i-1) = 1e2*scale;
							 | 
						||
| 
								 | 
							
								    A(i, i) = -scale;
							 | 
						||
| 
								 | 
							
								end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								L = A'*A;
							 | 
						||
| 
								 | 
							
								eta = A'*b;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								R = choleskyNaive(L);
							 | 
						||
| 
								 | 
							
								clear opts
							 | 
						||
| 
								 | 
							
								opts.LT = true;
							 | 
						||
| 
								 | 
							
								d = R' \ eta; %linsolve(R', eta, opts);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								clear opts
							 | 
						||
| 
								 | 
							
								opts.UT = true;
							 | 
						||
| 
								 | 
							
								x = R \ d; %linsolve(R, d, opts);
							 | 
						||
| 
								 | 
							
								
							 |