%% 6.581 Problem set 2
%% Question 2. Large-range electrostatic interactions
%% estatic.m
%% Note: you need to fill in the section indicated below
numCharges = 50;
sepX = logspace(-5,5);
separation = zeros(size(sepX,2),3);
separation(:,1) = sepX';
pointCharges = zeros(2 * numCharges, 3);
for iter=1:length(sepX)
% produce a list of source charge points and destination charge
% points--students don't need to modify this
for i=1:numCharges
srcCharges(i,:) = rand(1,3);
destCharges(i,:) = reflect(srcCharges(i,:), sepX(iter));
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% a) Students fill in the interaction matrix %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:numCharges
for j=1:numCharges
A(i,j) = ;
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% b) Decompose A into eigenvalues and eigenvectors using the eig command %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% c) Create rank one, two, k approximations to A. Use sort command to %
% extract eigenvalues with largest magnitudes and corresponding %
% eigenvectors %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
r1A = ;
r2A = ;
r8A = ;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% d) take a random charge vector and see how good the low rank approximation is %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
q = rand(numCharges,1);
r1error(iter) = ;
r2error(iter) = ;
r8error(iter) = ;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% e) plot errors as a function of separation distance %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%