Questions on the linear algebra functionality of Mathematica.
23
votes
2answers
1k views
How can I improve the speed of eigenvalue decompositions for large matrices?
I often need to compute the eigenvalues of large matrices, and I invariably resort to MATLAB for these, simply because it is much faster. I'd like to change that, so that I can work entirely inside my ...
21
votes
3answers
373 views
Computing polynomial eigenvalues in Mathematica
MATLAB offers a function polyeig for computing polynomial eigenvalues, which appear, for instance in quadratic eigenvalue problems (see here for some applications) such as:
\begin{equation}
...
20
votes
3answers
1k views
Can Mathematica do symbolic linear algebra?
For instance, is there some way I can say "let A and B be arbitrary real $m\times n$ and $k\times m$ matrices, Simplify[Transpose[Transpose[A].Transpose[B]]]" and ...
16
votes
3answers
1k views
How to symbolically do matrix “Block Inversion”?
Consider a block (partitioned) matrix
matrix = ArrayFlatten[{{a, b}, {c, d}}]
where, a, ...
14
votes
3answers
648 views
Mathematica for linear algebra course?
I'm taking a linear algebra / matrix theory course and we are free to use any software we want, and will be "expected to use MATLAB or an equivalent" for homework. The professor and textbook (Applied ...
14
votes
2answers
990 views
How to enter matrices in block matrix format?
Example:
I have a matrix $R = \left( \begin{array}{cc}
A & \mathbf{t} \\
0 & 1 \end{array} \right) $ where $A$ is 3-by-3 and $\mathbf{t}$ is 3 by 1. Or in Mathematica
...
13
votes
3answers
437 views
Constructing a symbolic Hermitian matrix
I need to construct a symbolic Hermitian matrix like
m = {
{ n, a, b, b},
{Conjugate[a], n, b, b},
...
}
but I am not able to set ...
12
votes
4answers
308 views
How do you decompose a polynomial matrix into its matrix coefficients?
Let's say I have a matrix, $\mathbf{M}$, that is polynomially dependent on a single variable, such as
M = {{15 + a^2, a + 5 a^2}, {a - 5 a^2, 2}}
and I want to ...
12
votes
1answer
317 views
Is there a clean way to extract the subspaces invariant under a list of matrices?
Let's say I have some $n \times n$ square matrices $A_1, A_2, \ldots, A_m$ with exact numbers for entries, and I want to find the subspaces of $V = \mathbb{C}^n$ invariant under these matrices. Is ...
11
votes
1answer
433 views
Eigenvalues and Determinant of a large matrix
Can anybody kindly explain to me what is going wrong regarding a simple problem I have? I can find the eigenvalues of a large matrix using Eigenvalues[], but when I ...
11
votes
1answer
315 views
Space-efficient null space of sparse array
I have a roughly 100,000 × 3,000 matrix (as a SparseArray) that I'd like to find the kernel (null space) of.
It has about 500,000 nonzero entries, all -1 or 1.
...
11
votes
2answers
310 views
What's the most “functional” way to do Cholesky decomposition?
I can do Cholesky in a procedural style, such as:
...
11
votes
1answer
331 views
What is the fastest way to find an integer-valued row echelon form for a matrix with integer entries?
Let me begin by saying that this is my first post on StackExchange. I apologize in advance if I unwittingly break any of its unwritten rules of etiquette.
Recently, I've been trying to understand an ...
10
votes
2answers
183 views
Compiling LinearSolve[] or creating a compilable procedural version of it
Earlier today I had a discussion with a representative at Premier Support about the 2 questions I've asked here over the past couple of days:
Seeking strategies to deploy a function securely ...
10
votes
2answers
264 views
Is there any way to obtain an approximate inverse for very large sparse matrices?
I have a very large sparse matrix and I need to obtain its approximate inverse and save it as an sparse matrix too. Any of my efforts as could be seen in what follows fail for large n
...
10
votes
2answers
189 views
How can I compute the representation matrices of a point group under given basis functions?
Take the $C_{3v}$ point group for example:
...
10
votes
1answer
215 views
Memory Leak in RowReduce?
Recently I tried to do what I thought was a fairly small (relative to the 6 GB of RAM that I have on my machine) row reduction calculation on a matrix representing an undetermined linear system and ...
9
votes
3answers
516 views
Correcting a correlation matrix to be positive semidefinite
Does Mathematica have a way to "fix" a correlation matrix that is not positive semi-definite?
I looked through the documentation and search the internet but could not find anything.
9
votes
3answers
205 views
Toggle visibility of elements in a plot
I have three simple graphs in one Plot. Now I am trying to make a button for each graph so you can hide or show it in the plot. Until now I was just able to make a checkbox with the Manipulate ...
9
votes
3answers
435 views
Can Eigenvalues[] and Eigenvectors[] be assumed to return the same ordering?
If I do back to back calls of Eigenvalues[] and Eigenvectors[] can these be assumed to order the values and vectors the same, or ...
9
votes
4answers
353 views
Dual-Grid Graph Paper With Mathematica?
Is there a slick way to generate the dual-grid graphs such as you can see on pages 7, 9, and 10 of this article, or this one?
I've searched, but found nothing. Thanks in advance...
9
votes
2answers
594 views
Find Determinant/or Row Reduce parameter dependent matrix
I'm trying to find the determinant of a band diagonal matrix that has a parameter, $\kappa$, in some of the entries. Some entries are just numerical ones, others ($\kappa$ X number), while others are ...
9
votes
2answers
215 views
How to extract and compute on the diagonal entities of a sparse matrix very fast?
As could be seen in the following code:
...
9
votes
2answers
203 views
Speed up 4D matrix/array generation
I have to fill a 4D array, whose entries are $\mathrm{sinc}\left[j(a-b)^2+j(c-d)^2-\phi\right]$ for a fixed value of $\phi$ (normally -15) and a fixed value of $j$ (normally about 0.00005). The way ...
8
votes
1answer
233 views
Why is MainEvaluate being used when LinearSolve can be compiled?
According to this question LinearSolve can be Compiled. However, CompilePrint shows a MainEvaluate but no-warning is generated. It appears that LinearSolve is not ...
8
votes
1answer
158 views
Verifying and deriving basic (block) matrix identities
How can I use the new symbolic matrix/tensor capabilities to verify matrix identities, such as
(1)
or
(2)
Even better, how can I ask Mathematica to derive expressions for X, Y, Z, and U like ...
8
votes
0answers
178 views
More efficient matrix-vector product
Dear mathematica users,
In my present research I am faced with a real dense $n\times n$ matrix $A$ where $n \geq 3000$ (hopefully even more). The coefficients of this matrix are fixed, but I will ...
7
votes
3answers
281 views
Composition of TransformationFunctions
I have a number of rotations computed by rot = RotationTransform[theta, point], and I would like to compose them to produce one function that is the composition of ...
7
votes
2answers
156 views
Why does my matrix lose rank?
I want to check the rank of a matrix for observability, but Mathematica loses a rank if the matrix contains very large numbers.
Let's say my matrix is
...
7
votes
3answers
324 views
Determine if solution to linear system exists
I'm trying to determine only if a solution to a linear system of equations exists. I have been using LinearSolve, which works fine, but it solves the system as ...
7
votes
1answer
105 views
How to create a large sparse block matrix
I need to generate a very large sparse block matrix, with blocks consisting only of ones along the diagonal. I have tried several ways of doing this, but I seem to always run out of memory.
The ...
7
votes
1answer
251 views
Very fast way to do a coordinate frame transform
I need a function that rotates and translates a huge amount of line segments.
For example, I have a set of line segments in the form {{x0,y0,z0},{x1,y1,z1}}
...
7
votes
1answer
224 views
Efficiently Constructing Rank One Approximations for a Matrix using SVD
Suppose I have a $m\times n$ matrix $A$ (real for simplicity). Then SingularValueDecomposition[A] yields 3 matrices $U$, $\Sigma$ and $V$ such that
$A = U\Sigma ...
7
votes
0answers
169 views
How to produce the ILU0 or ILUT as stand-alone procedures on sparse matrices?
Mathematica uses the ILU0 procedures automatically to precondition large sparse linear systems; e.g.
...
6
votes
2answers
373 views
Entering block matrices for an arbitrary matrix size
Background: How to enter matrices in block matrix format? and the following:
I want to create
$$
f(A,t) = \left [
\begin{matrix}
A & t \\
0 & 1
\end{matrix} \right ]
$$
where $A$ ...
6
votes
1answer
344 views
Finding the characteristic polynomial of a matrix modulus n
Given a square matrix, is it possible to calculate its characteristic polynomial modulo n?
Unfortunately, this function ...
6
votes
1answer
279 views
Tridiagonal symmetric matrix eigenvalue using bisection
I know that Eigenvalues is already quite well implemented in Mathematica, nor am I foolishly trying to improve on it. In order to improve my programming skills, I ...
6
votes
1answer
109 views
LinearSolveFunction unusable if stored to disk?
I encounter a problem when saving a LinearSolveFunction to disk, where the LinearSolveFunction is obtained with LinearSolve for ...
6
votes
1answer
342 views
Higher order SVD
Does anyone know how to do a higher order SVD in Mathematica ? A good reference seems to be here http://csmr.ca.sandia.gov/~tgkolda/pubs/bibtgkfiles/TensorReview.pdf but I don't understand their ...
6
votes
0answers
103 views
Calculating the rank of a huge sparse array
By virtue of the suggestion in my previous question, I constructed the sparse matrix whose size is $518400 \times 86400$, mostly filled with $0$ and $\pm 1$. Now I want to calculate its rank.
Since ...
6
votes
0answers
228 views
Inverse of a large sparse Hermitian block matrix
I am looking for a method (if it exists) for the inverse of a large sparse Hermitian block matrix.
The off diagonal sparse matrices, named δ are 4x4, and they have ...
5
votes
3answers
612 views
Discrete Convolution
Ask to compute the convolution of 2 lists, I managed to do so, with what I feel is rather heavy :
Let my 2 lists be :
a = {1,2,3,4}
b = {1,1,1,1,1,1};
The below function adds 0s on each part of ...
5
votes
4answers
259 views
How to find the index of a square matrix in Mathematica quickly?
Let $A$ be an $n\times n$ complex matrix. The smallest nonnegative integer $k$ such that $\mathrm{rank}(A^{k+1})=\mathrm{rank}(A^{k})$, is the index fo $A$ and denoted by $\mathrm{Ind}(A)$. I would ...
5
votes
2answers
244 views
Gram Schmidt Process for Polynomials
I want to implement the Gram Schimdt procedure to the vector space of polynomials of degree up to 5, i.e. I want to find an orthogonal basis from the set of vectors $v=(1,x,x^2,x^3,x^4,x^5)$. The ...
5
votes
2answers
798 views
Eigenvalue / Eigenvector Calculation
I'm currently trying to compute the three smallest eigenvectors for a 34 by 34 matrix. While I was expecting this to take some time, Mathematica has been running for the past 3 hours, which seems ...
5
votes
2answers
644 views
Solving a tridiagonal system of linear equations using the Thomas algorithm
I'm trying to write a function that can solve a tridiagonal system of linear equations using the Thomas algorithm. It basically solves the following equation. (Details can be found at the Wiki page ...
5
votes
1answer
795 views
Simpler way of performing Gaussian Elimination?
Is there a simpler way of performing Gaussian Elimination other than using RowReduce? Such as a single built in function?
Edit: Look at the example from our simulation class. Not too difficult, but ...
5
votes
4answers
1k views
Computing eigenvectors and eigenvalues
I have a (non-sparse) $9 \times 9$ matrix and I wish to obtain its eigenvalues and eigenvectors. Of course, the eigenvalues can be quite a pain as we will probably not be able to find the zeros of its ...
5
votes
1answer
334 views
Octonions in Mathematica
Is there a package or Notebook for Mathematica that can enable me to do some numerical calculations with octonions? Maybe a way to plug-in the octonion multiplication table?
5
votes
3answers
480 views
Solution for equation system with piece-wise defined functions
As I could swear this worked just yesterday, I am probably just doing something stupid here and I am sorry to bother you :)
I am trying to find the point where a curve crosses a line. In this case, ...



