linear-algebra


Numerical Economic Computability Algorithm


I know these types of questions are discouraged as being subjective but after receiving a number of 'less than helpful' answers to my more specific version of this question, I would like to try again. My problem is an 'economic computability' problem that involves solving a massive sparse system of linear equations using a numerical/iterative approximation algorithm. Specifically, an input-output table which computes the amount of work/labor put into each individual good and service in the economy(fully disaggregated) in terms of the amount of hours of labor each one takes to produce. Since each commodity only has a few, at most hundreds of other commodities as inputs, the matrix is likely to be sparse. In a small modern economy, there is likely to be more than 10 million+ individual goods and services, for a larger one there is likely to be hundreds of millions. A better description:
The input–output table for an economy is in practice likely to be mostly blanks. In reality each product has on average only a few tens or at most hundreds of inputs to its production rather than a million. This makes it more economical to represent the system in terms of a vector of lists rather than a matrix. In consequence, there are short-cuts which can be taken to arrive at a result. We can use another approach, that of successive approximation.The idea here is that as a first approximation we ignore all inputs to the production process apart from directly expended labour. This gives us a first, approximate estimate of each product’s labour value. It will be an underestimate because it ignores the non-labour inputs to the production process. To arrive at our second approximation we add in the non-labour inputs valued on the basis of the labour values computed in the first phase. This will get us one step closer to the true labour values. Repeated application of this process will give us the answer to the desired degree of accuracy. If about half the value of an average product is derived from direct labour inputs then each iteration round our approximation process will add one binary digit of significance to our answer. An answer correct to four significant decimal digits (which is better than the market can achieve) would require about 15 iterations round our approximation process.
The time order complexity of this algorithm is proportional to the number of products times the average number of inputs per product, times the desired accuracy of the result in digits. On our previous assumptions this could be computed on a supercomputer in a few minutes, rather than the thousands of years required for Gaussian elimination(8).
(8)Hodgson (1984, p. 170) states that the best method for solving an input–output table involves n^2 calculations. While he doesn’t give any explanation for this claim, we assume that he must be recognizing the use of an iterative technique (or else the complexity would be n^3), but he fails to recognise that the technical coefficient matrix would be sparse. A better use of data structures reduces the complexity substantially, as argued above.
My questions would be:
-Is this even possible?
-Is there a better, more accurate, or more tractable algorithm than the one described above?
-What is the best language/library for doing this sort of thing?
Thanks
Your problem, as it is formulated, sounds like a whole research and development project. Unless more details of the matrix you are dealing with are provided, it is unlikely that you obtain a concrete answer: which sparse linear solver to use. Here is some information you can start from.
Yes, it is possible to solve systems of millions linear algebraic equations with sparse matrices, using just an ordinary PC. Software that can handle such problems does exist.
You will definitely need to use a program based on an iterative approach. This is because a direct algorithm (Gauss/LU-fact/Cholesky, etc.) would require enormous amounts of RAM, which is not available on an ordinary PC; and data exchange with the hard drive would be inappropriately slow.
Efficient algorithms can only be implemented using a language that allows arithmetic and memory operations "down to the core". C is the language of choice.
As an example of such program, I suggest that you consider a product described in the following webpage:
http://members.ozemail.com.au/~comecau/CMA_Sparse.htm

Related Links

Armadillo: solve with sp_mat
solve system of equations to get service demands from a mixture
Simplex Implementation in z3
For a 3x3 only symmetric and positive definite linear system, is Cholesky still faster than Householder?
Using solve and/or linsolve with the symbolic toolbox in R2010b
Discarding null space of matrix A
Solving linear equations with numeric.js
accessing only left eigenvectors in armadillo c
conjugate gradient with a positive semidefinite matrix
Most efficient way to solve SEVERAL linear systems Ax=b with SMALL A (minimum 3x3 maximum 8x8)
Assigning a sparse matrix in Eigen
The significance of the rotation matrix after computing structure from motion
Changing the LAPACK implementation used by IDL linear algebra routines?
approximate polynomial by linear inequalities
Maximization in quadratic programming using CGAL
Efficient recalculation of weighted least squares regression when weights change

Categories

HOME
twig
flex
jelastic
jwplayer
oracle-apex-5
edge
hugo
frontend
mql5
jquery-ui-sortable
drop-down-menu
siddhi
opengl-es-3.0
jxl
stellar.js
endpoint
eip
atlassian
flatpak
standards
soci
apache2.4
rubymotion
react-toolbox
tosca
roundup
onload
itunes
pic32
android-sharedpreferences
appirater
soot
winpe
autodesk-designautomation
volatile
complex-numbers
clickjacking
android-maps-extensions
gnat-gps
classcastexception
joomla2.5
dynamic-jasper
reverse
sql-delete
processwire
sql-server-ce
comparison-operators
dcmtk
postgresql-8.4
congestion-control
placeholder
show-hide
optimizely
geotiff
reindex
boxing
android-testing
quicktime
structuremap4
pocketsphinx-android
change-tracking
mapxtreme
hadoop-2.7.2
wso2developerstudio
android-dateutils
phpwebsocket
thread-sleep
blitline
spring-retry
sapi
iokit
binomial-theorem
haskell-warp
sql-server-data-tools
mirror
botan
fail2ban
cryptographichashfunction
showdialog
post-commit-hook
wcm
nsmenu
jqmodal
verold
gae-quotas
jeromq
oocss
frameworkelementfactory
floating-point-exceptions
infobright
timthumb
request-headers
mathematical-notation
java1.4
soappy
wcf-proxy

Resources

Database Users
RDBMS discuss
Database Dev&Adm
javascript
java
csharp
php
android
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App