[ot?] matrix inversion

T

Tom St Denis

Sidney Cadot said:
You were suggesting that a cursory knowledge of high-school level
algebra would suffice to write a floating-point matrix inversion routine
of acceptable quality.

Nonsense like that needs to be answered. If you interpret that as a
personal flame, it sure is somebody's problem - but not mine.

Um? Ok sure. You keep believing that.

Cuz matrix inversion is just sooooo hard. If you're input is bad then you
can't do anything about that. So it boils down to the question.

Can you write a matrix inversion routine for use on 100000x100000 matrices
with an error less than 10^-7 using high school math. Probably not.

Can you write a matrix inversion routine for use on 10x10 matrices with an
error of less than 10^-4 with high school math. Probably. [assuming well
conditioned inputs in both cases].

The OP never specified which case they want to handle.

Tom
 
R

Randy Howard

I'd say you should know your math or know how to access math before you
write software.

What if you are writing perl scripts to scan news articles for keyword
matches? Do you really need to understand how to classify non-degenerate
conics in affine geometry to make that happen? I don't think so. Why
must you have such a narrow view of one of the broadest professional
endeavors there is? You must know some math to do almost anything,
such as index a loop properly, but that's a far cry from every software
developer needing to understand vector calculus or even something much
simpler, such as how to perform inverse quadratic interpolation.

To go one step further, you need not even be able to derive the
quadratic formula from ax^2 + bx + c = 0, which most people do by
the 8th grade.

You really don't see how over the top your answer was do you?
Being capable of engineering something isn't as much a matter of
memorization as a matter of knowing enough and knowing how to find
stuff too.

Exactly. So why does someone asking where to find information
set you off so badly?
Heck I have TAOCP and other texts at arms length too. You don't see me
posting every 20 minutes on how todo this that or the otherthing.

No, it's usually something orthogonal to the question asked, with a
nice reference to how many people are using your software along with
4 or 5 exceptionally rude insults thrown in. Good luck staying employed
if you exhibit this type of behavior real life. You can count on
someone walking down the hall and asking you or someone near you the
answer to a "stupid homework problem". If you accuse them of trying
to do homework on the clock, you'll be lucky to finish the day still
employed.
Given that I'm a fairly hefty 2m tall person myself I wouldn't feel that
much intimidated. That being said, I have something called conviction. I
actually believe, get this... you'll love it, that academia is a worthwhile
pursuit and that people who trivialize it (e.g. average college student) are
making a mockery of what it is to learn.

Hint: Not everyone is a college student. You treating everyone as if they
are a freshman getting initiated into a fraternity isn't appreciated.
If the dude was really not a student then he's still lame since google is a
click away [and probably faster].

Or, maybe he thought that someone here could give him a more direct pointer
than the 262,000 hits google returns for matrix inversion. Perhaps, he
didn't expect to get drawn and quartered for asking a question.
If the guy was a student then shame on him. It's people like him that get
A+ while I get C+ [since I actually do the work and actually do other stuff
on the side] then go on thinking they're professional...

Is there anyone that you don't despise? How dare anyone ask a question?
How dare they get better grades than you? How dare they not specialize
in crypto and/or bignum math? blah, blah, blah...
 
D

Dik T. Winter

> And what "error", well the error that comes from the finite size of the
> floating point variables. The error that comes from ill-conditioned
> matrices, etc, etc.

But how do you *measure* the error when you do a matrix inversion?
 
J

Joona I Palaste

It is a non sequitur, because I was talking about your "threatening" post
not about your reasons for killfiling him. There is no other way of
plausibly explaining your post.

OK, my earlier post was wrong, but it's still not a non sequitur. I
might have other reasons for saying I'll killfile him than him caring
about being killfiled by me. For example letting others know I'm
killfiling him. This has at least the benefit of letting newbies know
Tom is an idiot and his advice is not to be taken seriously.
 
T

Tom St Denis

Dik T. Winter said:
Tom St Denis said:
...

But how do you *measure* the error when you do a matrix inversion?

Take the one of the matrix norms of A * A^-1. The difference between the
norm of I will be the error, similarly you can do B * A * A^-1 and the
difference between the product and B will be another error, etc...

Those are admitedly laymen ways of getting a "sense" of error but indicative
nonetheless. E.g. higher norm => higher error.

Tom
 
D

Dan Pop

In said:
OK, my earlier post was wrong, but it's still not a non sequitur. I
might have other reasons for saying I'll killfile him than him caring
about being killfiled by me. For example letting others know I'm
killfiling him.

Why should anyone else care that you're going to killfile him at his
next "offense"? Your ego problem continues to show up...
This has at least the benefit of letting newbies know
Tom is an idiot and his advice is not to be taken seriously.

Why would/should the newbies trust you more than him? See, the ego
problem again ;-)

Face it: NO ONE (except you) cares about whom you're killfiling. Your
original post was nothing more than a display of childishness.

Dan
 
S

Sidney Cadot

Tom said:
Take the one of the matrix norms of A * A^-1. The difference between the
norm of I will be the error,

Ok, that's getting close to a definition (apart from sloppy language).

Now, how on earth would partial pivoting minimize (not just decrease)
this particular error measure, as you claimed earlier?

I am by no means an expert on this, so you might even have a point - but
from this I cannot judge that.
similarly you can do B * A * A^-1 and the difference between the product
> and B will be another error, etc...

Not so, as the difference will not be a scalar. And I cannot compensate
for your lack of clearness here, since I don't see what you are trying
to say.
Those are admitedly laymen ways of getting a "sense" of error but indicative
nonetheless. E.g. higher norm => higher error.


Regards,

Sidney
 
T

Tom St Denis

Sidney Cadot said:
Tom said:
Ok, that's getting close to a definition (apart from sloppy language).

Sloppy language? you find the difference between the norms e.g. | ||A *
A^-1||_2 - ||I||_2 | = error is one measure [standard euclidean IIRC].
Now, how on earth would partial pivoting minimize (not just decrease)
this particular error measure, as you claimed earlier?

I am by no means an expert on this, so you might even have a point - but
from this I cannot judge that.

To be honest I don't recall the exact reasoning [I'm in the middle of an
opsys class right now]. But from what I recall off the top of my head the
idea is that very small values x for 1/x [you have to normalize the given
row] will create a huge value. So when you multiply the row by 1/x you lose
precision. I think the same would happen for huge x too ... um...
Not so, as the difference will not be a scalar. And I cannot compensate
for your lack of clearness here, since I don't see what you are trying
to say.

I meant the difference between the norms. More so || I - B * A * A^-1 ||_2.

You could, you know, for the sake of saving time just infer things. This
isn't sci.math afterall.

Tom
 
C

CBFalconer

Dan said:
.... snip ...

Why should anyone else care that you're going to killfile him at
his next "offense"? Your ego problem continues to show up...


Why would/should the newbies trust you more than him? See, the
ego problem again ;-)

Face it: NO ONE (except you) cares about whom you're killfiling.
Your original post was nothing more than a display of childishness.

The newbie doesn't have to place greater trust in Joona than in
Tom. He just looks around and finds N TomPLONKS, vs 0
JoonaPLONKS, and draws his own conclusions :)

Anyhow, my ego is bigger than your ego, nyah nyah :) PLONK
advertisers unite!
 
S

Sidney Cadot

Tom said:
the norm of I will be the error,


Sloppy language?

Yes, sloppy language. I quote:

"Take the one of the matrix norms of A * A^-1. The difference between
the norm of I will be the error"

My natural language parser needs to be set to minimum strictness to make
any sense of this.
you find the difference between the norms e.g. | ||A *
A^-1||_2 - ||I||_2 | = error is one measure [standard euclidean IIRC].

This is still very unclear. I am not just saying this to bug you; if you
want to communicate about mathematics, you need to be much more precise
and unambiguous.
Now, how on earth would partial pivoting minimize (not just decrease)
this particular error measure, as you claimed earlier?

I am by no means an expert on this, so you might even have a point - but
from this I cannot judge that.


To be honest I don't recall the exact reasoning [I'm in the middle of an
opsys class right now]. But from what I recall off the top of my head the
idea is that very small values x for 1/x [you have to normalize the given
row] will create a huge value. So when you multiply the row by 1/x you lose
precision. I think the same would happen for huge x too ... um...

You seem to have a vague idea about the general rationale for pivoting.
Good. But I hope you realize that this is a far cry from the sweeping
statement you made earlier (paraphrased: 'the partial pivoting algorithm
minimizes the error')
I meant the difference between the norms. More so || I - B * A * A^-1 ||_2.

Do you actually make an effort to write things down in an
incomprehensible and/or erroneous way, or does it come naturally?
You could, you know, for the sake of saving time just infer things.

Ok, forget my annoyed tone for a second and take the following as if it
was meant as good advice (which it is).

"Inferring" things is what you do when you appreciate art or something.
That's a different activity altogether than discussing technical issues.
In the latter case, you need to be concise, precise, and unambiguous.

Furthermore, if you talk big about issues that you're not an expert on,
expect to be bitten by people who are either real experts, or slightly
less non-experts than yourself (as is the case here).
This isn't sci.math afterall.

It isn't, indeed. Therefore, I propose we end this nonsense.

Regards,

Sidney
 
S

stage1

I don't know what bug crawled up your ass, but I don't need to see this
sort of thing from you.


*plonk*



Brian Rodenborn

Brain, you slimy little shitbrain. Mind your manners, you stupid asslicking
slutboy!
 
D

Dik T. Winter

>
> Take the one of the matrix norms of A * A^-1. The difference between the
> norm of I will be the error, similarly you can do B * A * A^-1 and the
> difference between the product and B will be another error, etc...

This is close to gibberish. The norm of I is 1 (whatever norm you may chose
to use). And how do we measure the difference?
> Those are admitedly laymen ways of getting a "sense" of error but indicative
> nonetheless. E.g. higher norm => higher error.

Wrong. Also you have to indicate how to calculate the norm. A large
norm does not necessarily indicate a large error. What you are thinking
about is "condition number"; but that one is not particularly easy to
calculate, and independant of the method by which you obtain the inverse.
 
D

Dik T. Winter

>
> Ok, that's getting close to a definition (apart from sloppy language).
>
> Now, how on earth would partial pivoting minimize (not just decrease)
> this particular error measure, as you claimed earlier?

It may and it may not. Full pivoting might give better results, but need
not. What Tom is doing is forward error analysis with methods used for
backward error analysis. In forward analysis you try to get error
bounds on the results you find, assuming exact input. As Von Neumann
stated: "it is impossible to get reasonable results when the order
of the matrix is 40 or more". Wilkinson introduced backward analysis
to solve this. With his methods you could prove that the calculated
result was the exact answer to a question close to the original question.
That is, given a matrix A, construct the inverse B. This B is the exact
inverse of a matrix A' such that ||A - A'|| is small. Using this you
can get way beyond Von Neuman's order of 40. And at the University of
Karlsruhe methods were introduced where even for forward analysis you would
get ULP precise errors. Gaussian elimination with full or partial pivoting
gives good results in the sense of backwards error analysis.

Not all entirely highschool stuff methinks.
 
D

Dan Pop

In said:
The newbie doesn't have to place greater trust in Joona than in
Tom. He just looks around and finds N TomPLONKS, vs 0
JoonaPLONKS, and draws his own conclusions :)

One such conclusion is that Joona is already plonked by most regulars with
plonking habits :)

Dan
 
J

Joona I Palaste

One such conclusion is that Joona is already plonked by most regulars with
plonking habits :)

Well, I'm not killfiled by you, Richard Heathfield, Chris Torek,
Mark McIntyre, Richard Bos, Irrwahn Grausewitz, Morris Dovey, or
many other C experts. I think that'll be enough for me. =)
 
I

Irrwahn Grausewitz

Joona I Palaste said:
Well, I'm not killfiled by you, Richard Heathfield, Chris Torek,
Mark McIntyre, Richard Bos, Irrwahn Grausewitz, Morris Dovey, or
many other C experts. I think that'll be enough for me. =)

*cough* :-o

Thanks a lot Joona, but I'm certainly not a C expert, but
probably somewhere in the range of 5 to 7 on the legendary
one-to-ten C-skill-scale... :)

Regards
 
D

Dan Pop

In said:
Well, I'm not killfiled by you, Richard Heathfield, Chris Torek,
Mark McIntyre, Richard Bos, Irrwahn Grausewitz, Morris Dovey, or
many other C experts.
^^^^^
Yes, but that's not immediately obvious to the newbie ;-)

Dan

P.S. Your wording suggests that you consider Mark McIntyre as a C expert.
 
M

Morris Dovey

Joona said:
Well, I'm not killfiled by you, Richard Heathfield, Chris Torek,
Mark McIntyre, Richard Bos, Irrwahn Grausewitz, Morris Dovey, or
many other C experts. I think that'll be enough for me. =)

That, of itself, doesn't make any of us C experts. What it really
means is that we all think we need to keep a watchful eye on you (-:
 
A

Allin Cottrell

Dan said:
One such conclusion is that Joona is already plonked by most regulars with
plonking habits :)

Oh gratuitous! Admittedly, you're just saying that this is a possible
conclusion from a somewhat specious argument, but all the same, who
would want to plonk Joona?
 
E

E. Robert Tisdale

Allin said:
Oh gratuitous!
Admittedly, you're just saying that this is a possible conclusion
from a somewhat specious argument
but, all the same, who would want to plonk Joona?


plonk

<networking, abuse> (Possibly influenced by
British slang "plonk" for cheap booze or

"plonker" for someone behaving stupidly;

usually written "*plonk*")
The sound a newbie makes as he falls to the bottom of a kill file.
While this term originated in the Usenet newsgroup talk.bizarre,
by 1994 it was widespread on Usenet and mailing lists
as a form of public ridicule.

Another theory is that
it is an acronym for "Person with Little Or No Knowledge".

http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?query=plonk
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,483
Members
44,902
Latest member
Elena68X5

Latest Threads

Top