TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Tensors, the geometric tool that solved Einstein's relativity problem

86 pointsby Luc9 months ago

9 comments

senderista9 months ago
If you have any linear algebra background, then the definition of a tensor is straightforward: given a vector space <i>V</i> over a field <i>K</i> (in physics, <i>K</i> = <i>R</i> or <i>C</i>), a tensor <i>T</i> is a multilinear (i.e. linear in each argument) function from vectors and dual vectors in <i>V</i> to numbers in <i>K</i>. That&#x27;s it! A type <i>(p, q)</i> tensor <i>T</i> takes <i>p</i> vectors and <i>q</i> dual vectors as arguments (<i>p+q</i> is often called the <i>rank</i> of <i>T</i> but is ambiguous compared to the type).<p>(If you&#x27;re unfamiliar with the definition of dual vector, it&#x27;s even simpler: it&#x27;s just a linear function from <i>V</i> to <i>K</i>.)
评论 #41228793 未加载
评论 #41227512 未加载
评论 #41226407 未加载
评论 #41229952 未加载
评论 #41228951 未加载
评论 #41229355 未加载
评论 #41240107 未加载
评论 #41229015 未加载
评论 #41226717 未加载
openrisk9 months ago
&gt; Talk to a computer scientist, and they might tell you that a tensor is an array of numbers that stores important data<p>The conflicting definitions of tensors have precedent in lower dimensions: <i>vectors</i> were already being used in computer science to mean something different than in mathematics &#x2F; physics, long before the current tensormania.<p>Its not clear if that ambiguity will ever be a practical problem though. For as long as such structures are containers of numerical data with no implied transformation properties we are really talking about two different universes.<p>Things might get interesting though in the overlap between information technology and geometry [1] :-)<p>[1] <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Information_geometry" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Information_geometry</a>
max_likelihood9 months ago
I&#x27;ve always thought the use of &quot;Tensor&quot; in the &quot;TensorFlow&quot; library is a misnomer. I&#x27;m not too familiar with ML&#x2F;theory, is there a deeper geometric meaning to the multi-dimensional array of numbers we are multiplying or is &quot;MatrixFlow&quot; a more appropriate name?
评论 #41229803 未加载
评论 #41229477 未加载
评论 #41227016 未加载
评论 #41226657 未加载
评论 #41226932 未加载
评论 #41227040 未加载
评论 #41227070 未加载
nyrikki9 months ago
I would argue that today, geometric algebra&#x2F;Clifford calculus and space time algebra are more intuitive and useful.<p>Gibbs&#x2F;Heavysides vectors were more popular at the time.<p>At least for me.
评论 #41229848 未加载
评论 #41240524 未加载
mvaliente20019 months ago
The idea of tensors as &quot;a matrix of numbers&quot; or the example of a cube with vectors on every face never clicked for me. It was this (NASA paper)[<a href="https:&#x2F;&#x2F;www.grc.nasa.gov&#x2F;www&#x2F;k-12&#x2F;Numbers&#x2F;Math&#x2F;documents&#x2F;Tensors_TM2002211716.pd" rel="nofollow">https:&#x2F;&#x2F;www.grc.nasa.gov&#x2F;www&#x2F;k-12&#x2F;Numbers&#x2F;Math&#x2F;documents&#x2F;Ten...</a>] what finally brought me clarity. The main idea, as others already commented, is that a tensor or rank n is a function that can be applied up to n vector, reducing its rank by one for each vector it consumes.
评论 #41230084 未加载
评论 #41230068 未加载
评论 #41240504 未加载
ijidak9 months ago
Here is a video series on tensors I&#x27;ve enjoyed: <a href="https:&#x2F;&#x2F;youtube.com&#x2F;playlist?list=PLJHszsWbB6hrkmmq57lX8BV-o-YIOFsiG&amp;feature=shared" rel="nofollow">https:&#x2F;&#x2F;youtube.com&#x2F;playlist?list=PLJHszsWbB6hrkmmq57lX8BV-o...</a><p>And this series by Dialect: <a href="https:&#x2F;&#x2F;youtube.com&#x2F;playlist?list=PL__fY7tXwodmfntSAAyBDxZ4_eE3ZwbFE&amp;feature=shared" rel="nofollow">https:&#x2F;&#x2F;youtube.com&#x2F;playlist?list=PL__fY7tXwodmfntSAAyBDxZ4_...</a>
评论 #41231895 未加载
Koshkin9 months ago
One better resource to learn about tensors:<p><a href="https:&#x2F;&#x2F;grinfeld.org&#x2F;books&#x2F;An-Introduction-To-Tensor-Calculus&#x2F;" rel="nofollow">https:&#x2F;&#x2F;grinfeld.org&#x2F;books&#x2F;An-Introduction-To-Tensor-Calculu...</a>
wrycoder9 months ago
This is a surprisingly low quality article for Quanta. The discussion here is far beyond it.
bollu9 months ago
I&#x27;ve written about [this explanation of tensors](<a href="https:&#x2F;&#x2F;pixel-druid.com&#x2F;articles&#x2F;tensor-is-a-thing-that-transforms-like-a-tensor.html" rel="nofollow">https:&#x2F;&#x2F;pixel-druid.com&#x2F;articles&#x2F;tensor-is-a-thing-that-tran...</a>) before, and it seems worthwhile to write it down again:<p>There are two ways of using linear maps in the context of physics. One is as a thing that acts on the space . The other is a thing that acts on the coordinates . So when we talk about transformations in tensor analysis, we&#x27;re talking about coordinate transformatios , not space transformations . Suppose I implement a double ended queue using two pointers:<p>``` struct Queue {int <i>memory, </i>start, <i>end; } void queue_init(int size) { memory = malloc(sizeof(int) </i> size); start = end = memory + (size - 1) &#x2F; 2; } void queue_push_start(int x) { <i>start = x; start--; } void queue_push_end(int x) { end++; </i>end = x; } int queue_head() { return <i>start; } int queue_tail() { return </i>end; } void queue_deque_head() { start++; } void queue_deque_tail() { tail--; } ```<p>See that the state of the queue is technically three numbers, { memory, start, end } (Pointers are just numbers after all). But this is coordinate dependent , as start and end are relative to the location of memory. Now suppose I have a procedure to reallocate the queue size:<p>``` void queue_realloc(Queue <i>q, int new_size) { int start_offset = q-&gt;memory - q-&gt;start; int end_offset = q-&gt;memory - q-&gt;end; int </i>oldmem = q-&gt;memory; q-&gt;memory = realloc(q-&gt;memory, new_size); memcpy(q-&gt;memory, oldmem + q-&gt;start, sizeof(int) * (end_offset - start_offset); q-&gt;start = q-&gt;memory + start_offset; q-&gt;end = q-&gt;memory - end_offset; }<p>```<p>Notice that when I do this, the values of start and end can be completely different! However, see that the length of the queue, given by (end - start) is invariant : It hasn&#x27;t changed!<p>---<p>In the exact same way, a &quot;tensor&quot; is a collection of numbers that describes something physical with respect to a particular coordinate system (the pointers start and end with respect to the memory coordinate system). &quot;tensor calculus&quot; is a bunch of rules that tell you how the numbers change when one changes coordinate systems (ie, how the pointers start and end change when the pointer memory changes). Some quantities that are computed from tensors are &quot;physical&quot;, like the length of the queue, as they are invariant under transformations. Tensor calculus gives a principled way to make sure that the final answers we calculate are &quot;invariant&quot; &#x2F; &quot;physical&quot; &#x2F; &quot;real&quot;. The actual locations of start and end don&#x27;t matter, as (end - start) will always be the length of the list!<p>---<p>Physicists (and people who write memory allocators) need such elaborate tracking, to keep track of what is &quot;real&quot; and what is &quot;coordinate dependent&quot;, since a lot of physics involves crazy coordinate systems , and having ways to know what things are real and what are artefacts of one&#x27;s coordinate system is invaluable. For a real example, consider the case of singularities of the Schwarzschild solution to GR, where we initially thought there were two singularities, but it later turned out there was only one &quot;real&quot; singularity, and the other singularity was due to a poor choice of coordinate system:<p>Although there was general consensus that the singularity at r = 0 was a &#x27;genuine&#x27; physical singularity, the nature of the singularity at r = rs remained unclear. In 1921 Paul Painlevé and in 1922 Allvar Gullstrand independently produced a metric, a spherically symmetric solution of Einstein&#x27;s equations, which we now know is coordinate transformation of the Schwarzschild metric, Gullstrand–Painlevé coordinates, in which there was no singularity at r = rs. They, however, did not recognize that their solutions were just coordinate transform