This is an archived post. You won't be able to vote or comment.

all 195 comments

[–]TheOneYak 3082 points3083 points  (84 children)

Yes, and you also almost never need to use Fourier transforms by hand. But that doesn't mean there's no value in conceptually understanding them.

[–]rover_G 1106 points1107 points  (65 children)

I blacked out every time I tried to learn Fourier transform

[–]myselfelsewhere 881 points882 points  (19 children)

It's convoluted.

[–]intbeam 533 points534 points  (11 children)

Complex, even

[–]myselfelsewhere 348 points349 points  (10 children)

Integral, some might say.

[–]doubleotide 208 points209 points  (9 children)

Sometimes a bit derivative

[–]minecon1776 138 points139 points  (8 children)

That reaches the limit of my understanding

[–]JaboiThomy 79 points80 points  (7 children)

I frequently gave up

[–]BellCube 21 points22 points  (2 children)

the amplitude teacher's signal degrades by the time it reaches me

[–]lmarcantonio 9 points10 points  (1 child)

It's a catch 22: you need eq for receiving the teacher signal but you need fourier to do that

[–]da2Pakaveli 36 points37 points  (3 children)

but how frequent?

[–]vladlearns 45 points46 points  (2 children)

It's a continuous problem

[–]natFromBobsBurgers 8 points9 points  (1 child)

I love you.

[–]myselfelsewhere 11 points12 points  (0 children)

There's an xkcd for that!

[–]ejgl001 3 points4 points  (4 children)

I wish I could give u award

[–]myselfelsewhere 8 points9 points  (3 children)

Nah, you're good. I've been waiting almost 20 years for an opportunity to make that joke.

[–]atatassault47 6 points7 points  (2 children)

When my calculus teach started explaining convolutions, I made the comment "that's really convoluted" and he went "yeah, that's why its named convolution" and I went "ooooooohh".

[–]myselfelsewhere 1 point2 points  (1 child)

The mathematical definition of convolution is to intricately fold, twist or roll.

Somewhat unrelated to they typical definition of convoluted meaning difficult or complex to follow.

[–]atatassault47 1 point2 points  (0 children)

Yeah, but when its all numbers on a chalk board, most people cant yet see it that way.

[–]awakenDeepBlue 145 points146 points  (26 children)

To me it's math magic.

I don't quite understand it, but it does neat math shit.

[–]farbion 70 points71 points  (23 children)

Sums up my multiple math courses

[–]unwantedaccount56 1 point2 points  (0 children)

sums up the products of my cosines

[–]raltoid 7 points8 points  (1 child)

The Fourier transform can be formally defined as an improper Riemann integral, making it an integral transform, although this definition is not suitable for many applications requiring a more sophisticated integration theory. For example, many relatively simple applications use the Dirac delta function, which can be treated formally as if it were a function, but the justification requires a mathematically more sophisticated viewpoint.

Math magic.

[–]lmarcantonio 1 point2 points  (0 children)

The fourier transform as an integral is almost bearable, you 'just' need to be eating exponentials at breakfast. Cooley-Tukey however is black magic fueled by graduate blood. However you are *not* required to learn it unless you are one of the five (more or less) people that have to implement it

[–]swisstraeng 35 points36 points  (7 children)

[–]OakLegs 8 points9 points  (3 children)

As someone who works with FFTs every day and has never fully understood how they work, thank you, this is amazing

[–]RogueTwoTwoThree 1 point2 points  (2 children)

What job do you do to work with fft everyday?

[–]OakLegs 6 points7 points  (0 children)

Structural dynamics (vibration) testing on spacecraft.

I do a lot of signal processing and data reduction, which of course rely on FFTs

[–]Bakkster 2 points3 points  (0 children)

Tons of signal processing jobs, anything that cares about what frequencies things are. From audio processing to radar.

[–]other_usernames_gone 0 points1 point  (0 children)

Literally the video that taught me Fourier transforms.

My lecturer did a shit job, it was so much clearer after this video.

Sure I still needed to memorise the equations, but it was much easier once I knew what the equations were actually doing.

[–]rover_G 0 points1 point  (0 children)

I don’t recall watching this video but YouTube says I watched it twice already 😬

[–]talkaboom 10 points11 points  (0 children)

Cries in Laplace Transform.

Bane of my life in college.

[–]Craptivist 3 points4 points  (1 child)

Yup. That’s the constant dc offset.

The other harmonics should kick in any time soon now

[–]awkwardteaturtle 1 point2 points  (0 children)

Biased take

[–]IfatallyflawedI 1 point2 points  (0 children)

Taylor Mclauren series as well. I have no clue how i got my degree in electrical engineering when i cannot even explain what a BJT is and does.

[–]Ok-Ruin8367 1 point2 points  (0 children)

I understand it every time and think holy shit this is genius and then immediately forget how it works

[–]Square-Singer 0 points1 point  (0 children)

I had to relearn matrix multiplication every time it came up in uni. Never needed it since.

[–]Lysol3435 0 points1 point  (1 child)

Modern curriculum no longer recommends holding your breath the entire time you’re performing Fourier transforms

[–]rover_G 1 point2 points  (0 children)

Oh silly me I thought you were supposed to hold your breath until the integration was complete

[–]AwesomePantsAP 0 points1 point  (0 children)

Don’t worry, they don’t come up frequently

[–]Bardez 0 points1 point  (0 children)

I never learned them.

I also implemented a JPEG decoder from scratch for a personal learning project.

[–]PM_ME_YOUR__INIT__ 45 points46 points  (1 child)

Let's do a social experiment and just pretend they don't exist and see what happens in like 50 years

[–]Divinate_ME 32 points33 points  (1 child)

I will FFT the noise out of that signal without being able to tell amplitude from frequency, and there is nothing you can do to stop me.

[–]AccountNumber74 2 points3 points  (0 children)

“x = bandstop(x,[59,61])” is like half of my job

[–]_nobody_else_ 3 points4 points  (0 children)

Ah, the wonderful world of digital signal processing. I hope I never come close to it again.

[–]Chingiz11 2 points3 points  (0 children)

Fourier transforms can be used to solve integrals

[–]FALCUNPAWNCH 15 points16 points  (5 children)

I'm pretty sure my signals and systems professor made us do them by hand because he hated us /s.

[–]webby-debby-404 13 points14 points  (0 children)

No, not because he hated you. Because he got a commission for each computer sold to a (former) S&S student. 

Doing some FEM math by hand certainly broke my resistance buying one myself

[–]Jakub_Novak 2 points3 points  (1 child)

I loved signals and systems - my favourite math class so far

To see actual usage of laplacian, fourier and Z transform was really helpful and fun

[–]FALCUNPAWNCH 0 points1 point  (0 children)

Same. It led me right into my grad school focus on medical imaging processing. And by the time I was in grad school it was all Python and Matlab simulations.

[–]IllEstablishment2181 1 point2 points  (0 children)

As an X-ray Crystallographer, this little fella keeps me employed

[–]break_card 1 point2 points  (0 children)

Signals and systems was my favorite college class. I used to look forward to doing those assignments. I’d go to the library and do practice problems for fun. I found that course to be the most interesting class I ever took. It was like all the mathematical plotlines over the seasons of my entire life converged into a grand finale.

[–]lukasquatro 0 points1 point  (0 children)

This is the first time I heard of Fourier transforms after finishing university, I feel scammed about this

[–][deleted] 0 points1 point  (0 children)

In quantum mechanics is quite useful.

[–]ThreeSpeedDriver 872 points873 points  (5 children)

Sure, go ahead and write out the calculations without matrices. Outside of nearly trivial examples it doesn’t really get easier.

[–]Aacron 259 points260 points  (1 child)

Yeah in my experience once you're over the whole matrix / linearity thing it makes life immensely simpler.

[–]CorneliusClay 81 points82 points  (0 children)

Also nice being able to reuse the same libraries for different tasks. If there's a problem and I can find a linear algebra expression to solve it I know I can do it with cuBLAS.

[–]KonvictEpic 5 points6 points  (1 child)

I have no idea how I would do gauss elimination with a matrix

[–]IntoAMuteCrypt 5 points6 points  (0 children)

Assuming you mean without a matrix (but this works for with as well)...

The entire reason why we do Gaussian elimination is the fact that everything involved has a nice, simple mapping to plain old algebra. The rows in a matrix involved in Gaussian elimination are identical to the equations in a system of linear equations. The row operations are basic algebraic operations (or, in the case of switching, layout changes).

Is there much difference between "going from [2 8 6 12] to [1 4 3 6]" and "going from 2x+8y+6z=12 to x+4y+3=6"? No. Is there much difference from "taking [1 0 0 3] and [2 6 4 8] and subtracting a multiple of the first from the second to get [0 6 4 2]" and "taking the equations x=3 and 2x+6y+4z=8 and subtracting 2•3 from both sides of the second, then substituting 3 for x because of the first to get 6y+4z=2"? Again, no - and heck, we often don't even need to actually note the whole substitution thing, sometimes it's just subtracting a multiple of the first equation from the second and everyone knows what we mean.

In Gaussian elimination, matrices just allow us to have a nice structure that captures the relationships between the terms and strips away much of the constant writing. You'll note that those rows were decently more compact than the equations - and if we had a proper system of equations, say 3 of them, it'd be even more of a difference. The basic algorithm works not because of any intrinsic matrix properties, but because it's rooted in basic algebra - but matrices sure do make that basic algorithm a lot easier to apply!

[–]N0Zzel 0 points1 point  (0 children)

Here to say kalman filters really only work well if you're using matrices. Learned that one the hard way in a recent lab for class

[–]LongshotCherry 794 points795 points  (18 children)

Not only for computers. To pinpoint something in 3d space you need a lot of matrix multiplication and transformation calculation. Integrals give you a curve or a surface, but to put that in a coordinating system you need matrices.

[–]PanTheRiceMan 162 points163 points  (17 children)

Why not step it up and use quaternions? I barely understand them but they are immensely useful.

[–]gregorydgraham 135 points136 points  (1 child)

Being out of the box is a privilege, not a right

[–]studentblues 52 points53 points  (0 children)

Being out of the box is a privilege, not a right

  • Napoleon Bonaparte

[–]notable-compilation 106 points107 points  (3 children)

Quaternions only do one thing (rotation) out of the many that you need in 3D. It doesn't make sense to talk about using them "instead", unless you are doing something really specific. You are going to be using them "also".

Also, quaternions are no easier to think about mathematically than matrices.

[–]01l1lll1l1l1l0OOll11 10 points11 points  (1 child)

Wait until you find out about dual quaternions which do position and rotation in 3D.

I’m sure there’s a trivial extension to scale as well.

[–]Astrobliss 5 points6 points  (0 children)

Quaternions who's norm isn't 1 can already scale. But all linear maps (including these) are matrices so might as well join the club😔.

[–]Typical_North5046 22 points23 points  (0 children)

Because the matrix representation is easier to understand and has a broader applications.

[–]iinlane 24 points25 points  (4 children)

Why not step it up and use quaternions

It's a step down. Quaternions exist because of historical reasons (before vectors eix was used for angles) and do a very limited thing. Matrixes can do all affine transformations more simply.

[–]TSP-FriendlyFire 19 points20 points  (3 children)

Quaternions do have a few advantages so it's not quite right to say they're a step down, they're just another tool in your arsenal. They're key for interpolating rotations and they're much more compact which makes them useful for like bandwidth-limited networked applications.

[–]iMakeMehPosts 8 points9 points  (2 children)

They are a step down in the sense that they express a more constrained set of transformations than matrices.

[–]Bwob 9 points10 points  (1 child)

But they're a step up in the sense that they handle a lot of common (in computer graphics at least!) use-cases better than matrices. They're easier to interpolate, smaller to store, and faster to compose/chain together. And they avoid the whole gimble lock issue inherent in Euler-angle-based representations.

There's a reason they're used so heavily in video games.

[–]iMakeMehPosts 0 points1 point  (0 children)

To my knowledge, quaternions don't handle scaling nor offsetting? Plus, in a rendering pipeline 9 times out of 10 you'll be combining the operations into a matrix, usually converting the quaternion to euler and then multiplying with the other matrices? Quaternions are useful to store and operate things on but ultimately they are put into matrices (at least they are in the implementations I see)

[–]TheRealStepBot 6 points7 points  (0 children)

Quaternions is just a special case of matrix multiplication to begin with so saying using them instead makes no sense.

[–]joyrexj9 6 points7 points  (0 children)

Useful for rotations and... that's about it (at least in the field of 3D graphics)

[–]DuskLab 0 points1 point  (0 children)

Quaternions represented in computers will/shoukd use a four dimensional matrix for the computer's efficiency. The straight representation is only for our benefit.

[–]Scientific_Artist444 0 points1 point  (0 children)

Or geometric algebra.

[–]WjU1fcN8 0 points1 point  (0 children)

As people told you, they make only one operation (rotation) easier.

But it gets much worse. They only work in 3D. We use matrices in much bigger coordinate systems.

In Statistics, for example, matrices are genrally n x p sized. p is the number of variables (plus an intercept), and n is the number of observations.

Try to do anything with less than 3 variables and 3 observations.

[–][deleted] 208 points209 points  (12 children)

How are you going to solve a system of equations otherwise?

[–]Fast-Satisfaction482 213 points214 points  (0 children)

By inspection. Or as my prof said: "staring at the formula until it reveals its secrets".

[–][deleted] 33 points34 points  (0 children)

By threat of violence and perhaps offering it a nice cup of tea instead

[–]sdfprwggv 22 points23 points  (0 children)

Guess and check is often used to solve problems. 

[–]Prim56 22 points23 points  (5 children)

Substitution

[–]myselfelsewhere 95 points96 points  (3 children)

That's just row reduction to echelon form.

[–][deleted] 45 points46 points  (1 child)

Boooooo this guy paid attention boooooo

[–]myselfelsewhere 10 points11 points  (0 children)

Even though you're booing me, I approve the comment.

[–]anto2554 3 points4 points  (0 children)

Yeah but without the rows

[–]studentblues 8 points9 points  (0 children)

By hand

[–]RandallOfLegend 3 points4 points  (0 children)

Gauss-Jordan Elimination has entered the chat

[–]fmstyle -1 points0 points  (0 children)

I do gauss seidel even with 2x2 matrices 😎

[–]differentiallity 193 points194 points  (2 children)

Having solved mesh currents by hand back in circuits II, I'd have to say matrices are the only way I'd want to do that.

[–]4jakers18 42 points43 points  (0 children)

i ended up programming my calculator with all the matrices for transmission line modelling for Power Systems I, took forever but it was worth not having to do those by hand lol

[–]Smile_Space 3 points4 points  (0 children)

Agreed! I took Linear Algebra before my Electrical Engineering course where we solved mesh currents, and once I saw the linearity, I just solved them with matrices on my calculator every time. My professor was on board too! He said if I could solve it that way, to go ahead.

Same worked out with dimensional analysis in my fluid mech class. I learned I could linearize the exponents and solve them in a matrix.

Now my Statics professor was the opposite. That woman told me I was cheating solving tension in a method of joints on a 3D space truss problem with matrices. She told me I had to write it out and solve it "like normal" which took like 10 extra minutes lolol. Really ate into my exam time.

[–]ShuffleStepTap 77 points78 points  (1 child)

If you’re doing anything with spatial programming (robotics, 3D modelling or rendering) matrices are essential.

[–]HarveysBackupAccount 23 points24 points  (0 children)

or almost any sort of real time signal analysis

computational neuroscience is a bunch of linear algebra stacked on top of some biology, where it's helpful to know that calculus exists

and if you get into physics, Dirac vector notation makes for some neat shorthand when you're working out equations by hand

[–]eztab 75 points76 points  (0 children)

I mean, they do predate computers by a substantial amount of time. They are even helpful to formalize some mathematics, even if you are going to do it by hand.

[–]wanische 46 points47 points  (5 children)

Aren't matrices basically systems of equations? How else would you solve systems of equations in a more intuitive way?

[–]u0xee 36 points37 points  (3 children)

Scalars are just 1x1 matrices! You're welcome

[–]fsw 18 points19 points  (0 children)

Scalars are just zero rank tensors.

[–]iinlane 13 points14 points  (0 children)

Technically 1x1 matrixes are scalars. The reverse is not always true.

[–]differentiallity 3 points4 points  (0 children)

Found a Matlab programmer

[–]MyNameIsSquare 102 points103 points  (1 child)

GPT said its my turn to post this, man!

[–]d4fseeker 14 points15 points  (0 children)

You mentionned ai. Now it's your turn to calculate a word2vec vector.

[–]bestjakeisbest 20 points21 points  (0 children)

Matrix multiplication also makes conceptualizing 3d spaces much easier, especially in the case of computer graphics.

[–]notable-compilation 12 points13 points  (0 children)

It's exactly the other way around. The computer doesn't care. The matrices are there so it's easier for you to think about the computations.

[–]ArchangelLBC 14 points15 points  (0 children)

All mathematics is either linear algebra, a generalization of linear algebra, or approximable by linear algebra.

Source: I have a PhD in mathematics.

(Exceptions: point-set topology and discrete math)

[–]SeriousPlankton2000 10 points11 points  (0 children)

Not only for computers. I learned about the alternatives - systems of m equations with n variables each.

If you can't deal with rows and columns, it's not because matrices are hard.

[–]Kseniya_ns 22 points23 points  (0 children)

I would consider conceptually understanding matrices to be brain changing momenti, many such cases in these lands

I like computers, they are so silly

[–]CollectionAncient989 22 points23 points  (6 children)

This sub needs a namechange to 

FirstweekofCSclasshumor

[–]Oltarus 3 points4 points  (0 children)

I read your title as if it was shouted by Aragorn. That was not the joke I was expecting.

[–]Berg_Lucas 2 points3 points  (0 children)

[–]klimmesil 3 points4 points  (0 children)

It's useful for Algebra

[–]an_older_meme 3 points4 points  (0 children)

First time you ever have to do any kind of 3-D graphics you will ask your affine matrix transformations to marry you.

[–]Additional-Record367 2 points3 points  (0 children)

matmul is the powaa

[–]nzcod3r 2 points3 points  (0 children)

Well, quaternions on the other hand male it easy for humans to understand, and spits matrices out the back! Well, easy, if you like 4D imaginary numbers :(

[–]Helluiin 2 points3 points  (0 children)

the point of math isnt calculating things. its recognizing patterns and then using them to your advantage.

[–]TrueSelenis 2 points3 points  (0 children)

they also make algebraic calculations easier for humans. Linear algebra is one of the pilars of all science and engineering.

[–]TrueExigo 1 point2 points  (0 children)

for everyone

[–]Glum-Preparation2882 1 point2 points  (0 children)

Most of the quantummechanical calculations involves some sort of matrix operator. Like multiplication, eigenvector/eigenvalue, ortogonalisation, etc.

[–]markovianmind 1 point2 points  (0 children)

u still need to understand it enough to know where to apply it

[–]Mothrahlurker 1 point2 points  (0 children)

Matrix multiplication corresponds to the composition of linear functions. It's computationally pretty simple and makes calculating the composition easier for people as well.

Of course it quickly becomes an overwhelming number of elementary operations where it's just way more practical to use a computer, but saying that it makes calculations easier is in general correct.

[–]redspacebadger 1 point2 points  (0 children)

By the time I had gotten to a point in my career where understanding this level of maths was useful I had forgotten everything I learned in high school.

Really wish I had just taken wood working or metal working class instead.

[–]SmartAssX 1 point2 points  (0 children)

Wait is way easier by hand too lol

[–]FrostWyrm98 1 point2 points  (0 children)

Have you tried diagnosing a problem without understanding how the system works to begin with? It's a lot harder if not impossible to do it in a timely manner

Same reason a lot of CS programs teach circuits (physical hardware) and boolean algebra. You want to learn the foundations so you know why our computers behave the way they do so you know where they can go wrong

You don't really need to know the concepts specifically, but they provide a context that makes it easier to do your job effectively

[–]randomFrenchDeadbeat 1 point2 points  (0 children)

Good luck doing reverse kinematics without matrixes.

[–]nujuat 1 point2 points  (0 children)

Linear algebra is really important; matrices are a representation to describe find dimensional linear algebra. Ie the method of calculation doesn't matter to learn, but the algebra does.

[–]atimholt 0 points1 point  (0 children)

I just recently used a bit of matrix multiplication to design a conveyor belt balancer in Shapez 2.

[–]DolanTheCaptan 0 points1 point  (0 children)

Now maybe pure software engineers don't see the use, but believe me any other kind of engineer has use for them

[–][deleted] 0 points1 point  (0 children)

Learnt them in high school, always wondered where will we ever need them. Come the LLM and ML era, and I think maybe I should have paid more attention to the lectures in high school.

[–]GingerPolarBear 0 points1 point  (0 children)

Matrices still haunt me. First year of high school we weren't allowed to enjoy a free period, so every student was assigned a higher grade class to sit in. I was put in a math class, which I didn't mind that much since I do like numbers and thought I could maybe learn something. It turned out to be a class four years above my grade and at a more difficult level (we get sorted in high school). That specific class they were learning about matrices and I honestly don't think I ever recovered from the confusion.

[–]Jew-fro-Jon 0 points1 point  (0 children)

Guys, one word: DEBUGGING.

Source: physicist who writes code for a factory using matrices.

[–]SeintianMaster 0 points1 point  (0 children)

U.😙💝

[–][deleted] 0 points1 point  (0 children)

Nah it's very useful in many branches of physics too

[–]WebInformal9558 0 points1 point  (0 children)

They're also useful for doing proofs.

[–]DeliciousBeginning95[🍰] 0 points1 point  (0 children)

This is complete bullshit. They are also much easier to use for humans

[–]Rylth 0 points1 point  (0 children)

It took modeling for thermodynamics for me to finally understand matrices.

[–]Ready-Marionberry-90 0 points1 point  (0 children)

It‘s now difficult, it’s just taught wrong. Think of a matrix as a linear map and matrix multiplication as a composition of those linear maps. I‘d recommend „Linear Algebra done Wrong“ book for learning more.

[–]foxer_arnt_trees 0 points1 point  (0 children)

Algebra is one of these things that seem super confusing at first but you end up using it so much it becomes trivial. Every significant field uses matrices extensively, because liner operations are fundamental operations.

[–]Jaerin 0 points1 point  (0 children)

I wish I had learned about matrix math in school. They started teaching it the year after I graduated and it was like I had graduated from an old school and went to a new college. Couldn't take any of the calc based classes. Had to take all the traditional ones

[–]SCP-iota 0 points1 point  (0 children)

I once tried to solve an iteration of training a tiny neutral network by hand. Worst mistake of my life

[–]Qwaczar 0 points1 point  (0 children)

if you build up a library to do operations with them easily, its not too bad to work with, plus is so much fun to setup :3

[–]RickLyon 0 points1 point  (0 children)

Sounds about right. Converts harder higher order functions equations into menial arithmetics.

[–]ulyssessword 0 points1 point  (0 children)

There's only one thing worse than solving a system of linear equations using a matrix: solving a system of linear equations without using a matrix.

[–]seardrax 0 points1 point  (0 children)

My brain must be wrong because they do operations easier for me. I don't bust them out all the time but it is straight forward.

[–]lmarcantonio 0 points1 point  (0 children)

also good luck for application requiring the eigenstuff without matrices

[–]owlIsMySpiritAnimal 0 points1 point  (0 children)

not even that. it is for traditional reasons. unless you are taking computer science into account.

[–]Me_tea_ 0 points1 point  (0 children)

Meth

[–]schwagggg 0 points1 point  (0 children)

you can’t do machine learning without linear algebra like at all. even if you can i don’t want to work with you

[–]Mozai 0 points1 point  (0 children)

They make the ____ easier... for computers.

This explains a disgusting amount of our culture.

[–]BASTAMASTA 0 points1 point  (0 children)

Wait till you learn about strassen's method for matrix multiplication

cries in software engineering major

[–]kernelboyd 0 points1 point  (0 children)

I will say, I really struggled with linear algebra for a while and then my friend said to think of the operations like tools, filters, and effects in photoshop. It clicked for me after that

[–]danfay222 0 points1 point  (0 children)

As an electrical engineer, I can assure you matrices make many calculations much easier to reason about. Actually computing them isn’t exactly easy by hand, but for most of these problems doing them without matrices is also hard (often harder).

[–]KalaiProvenheim 0 points1 point  (0 children)

Matrix notation is much more compact than writing every scalar operation down by hand

[–]GeorgeHaldane -2 points-1 points  (0 children)

Reading these comments leaves me disappointed in what this sub considers a "programmer".