Showing posts with label Cross Sections. Show all posts
Showing posts with label Cross Sections. Show all posts

Tuesday, September 27, 2011

Neural Network Representation of Cross Sections

I learned about radial basis neural networks which utilize an activation function, and since the activation function are mostly Gaussian I wanted to see if they could be applied to the simulation of cross section data.  (Resonance structures in most cross sections are modeled with the Briet-Wigner formula, which is essentially a modified Gaussian).  I asked to do it in place of my homework, but wasn't allowed.

Neural Network Cross Sections

Cross section data from http://www.nndc.bnl.gov/sigma/index.jsp, U238 total. Can download a text file, and than just import it in. First column is energy (eV), second is cross section (b).
load('CrossSectionData.mat');

Creating the network

net = newrb(data(:,1),data(:,2));
% Viewing the created network
net.view
NEWRB, neurons = 0, MSE = 0
Sorry this is transparent

Looking at the performance

loglog(data(:,1),data(:,2));
hold all;
loglog(data(:,1),sim(net,data(:,1)));
hold off;
legend('ENDF','Neural Network');
title('(n,total) of U^{238}');
xlabel('Energy (eV)');
ylabel('Cross Section (b)');
ENDF data not visible because the neural network lies over top


Looking at the error

figure;
loglog(data(:,1),abs(data(:,2)-sim(net,data(:,1))));
title('Error of Simulated Network');
xlabel('Energy (eV)');
ylabel('abs(\sigma_{NNDC} - \sigma_{net}');
% No Error - Might be bad at extrapolation
sum(abs(data(:,2)-sim(net,data(:,1))))
ans =

     0

Zero error, so plot is empty on a log scale (can't take logarithm of zero)

There are games that could be played.  The number of neurons could be reduced, and the activation functions could be changed to resemble more of the form of the Briet-Wigner.