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

Matrix Division
How to represent a bus ride in linear programming?
Matlab : How do I ensure that the covariance matrix is positive definite when using Kalman Filter
Computing singular values vs eigenvalues when you have the choice
Solving of a linear system with parameters
Upper Division Linear Algebra
positive solutions to a homogeneous linear system
Use LispLab within AutoCAD
Eigenvalues of large symmetric matrices
Eigen - directly compute log determinant of huge sparse matrix
Calculating the coefficients of a separable state
When to use eigen and when to use Blas
Numerical Economic Computability Algorithm
Index of a maximum element in TensorFlow tensor
Efficiently multiplying matrix with transpose using cuBlas
Linear Algebra Derivation in Gertler-Karadi (2015) AEJ

Categories

HOME
google-app-engine
wakanda
ecmascript-6
css3
components
fftw
error-handling
alarm
newrelic
carousel
google-apps
web-hosting
limit
x264
performancepoint
qpython
fabric.io
minecraft-forge
siddhi
mod-security
naivebayes
google-form
favicon
onedrive-api
linear-algebra
symfony-2.8
wolframalpha
ckfinder
windows-server-2003
beautifier
underscore.js
genexus-sd
errbot
livelink
sql-server-2000
kodi
quickfixj
reactjs.net
batching
health-monitoring
google-data-api
p4merge
c9.io
knime
flask-login
snapchat
httr
x++
httrack
openresty
dotnet-httpclient
launchctl
mongotemplate
magic-draw
pair-programming
context-sensitive-grammar
type-theory
flyout
cmp
flex-monkey
hadoop-2.7.2
async.js
gogs
avspeechsynthesizer
observablecollection
spreadjs
lz77
invoke-sqlcmd
httpruntime.cache
contentcontrol
user-management
avisynth
fiware-monitoring
page.js
text-search
zxspectrum
infosphere-spl
primitive-types
rickshaw
strawberry-perl
with-statement
synapse
joomla-template
windows-98
stacky
paginator
convention
role
htdocs
catransform3d
w3c-geolocation
openfaces
burndowncharts
lxr
cuda.net
xpsdocument
scrubyt
contentpresenter
movieplayer

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App