# Wikipedia:Reference desk/Archives/Mathematics/2007 July 12

Mathematics desk
< July 11 << Jun | July | Aug >> July 13 >
Welcome to the Wikipedia Mathematics Reference Desk Archives
The page you are currently viewing is an archive page. While you can leave answers for any questions shown below, please ask new questions on one of the current reference desk pages.

# July 12

## help with the Pythagorean theorem

im doing a project on the applications of Pythagorean theorem everyday life. i have found out that it was used in the Eiffel tower and in construction of bridges .but are there any bridges that use this theorem in the construction and did the Eiffel tower use the theorem in the construction??

are there any other buildings that use this theorem ? do the pyramids use it ??Angelofwrath 07:05, 12 July 2007 (UTC)

Have you read our article on the Pythagorean theorem?--Cronholm144 07:11, 12 July 2007 (UTC)

yes that was one of the things i did before typing down this questionAngelofwrath 07:16, 12 July 2007 (UTC)

Okay then, It is used in triangulation, astronomy, GPS, Surveying and any field that involves measuring things using geometry really...there are quite a few of those :)--Cronholm144 07:21, 12 July 2007 (UTC)

Personally, I think the Pythagorean theorem is too fundumental to list its applications. It's like listing the applications of addition in everyday life - you'll have an easier time listing all the things you don't use it for. -- Meni Rosenfeld (talk) 12:41, 12 July 2007 (UTC)
You could say that the Pythagorean theorem (or a variation thereof) is used whenever you compute the distance between two points using coordinates. Tesseran 14:56, 12 July 2007 (UTC)
...at least when using rectangular coords: (X, Y). StuRat 00:55, 13 July 2007 (UTC)

the triangulation and the other examples wenr over my head , any idea of its use in the contsruction of buildings ,thanks for the all the assistanceAngelofwrath 03:42, 13 July 2007 (UTC)

Yes it is used when constructing buildings, blueprints might be a place to look. The problem is the theorem is so very basic that it won't be explicitly mentioned in anything but very simple applications. --Cronholm144 03:58, 13 July 2007 (UTC)

I'll focus on just one use of it, and see how clear I can make it. The Pythagorean Theorem is one of the most basic tools of trigonometry. Trigonometry is the study of triangles, and all triangles can be broken down into right triangles, which can be understood using (among other clever ideas) the Pythagorean Theorem. It helps by stating a clear relationship between the lengths of the sides of a right triangle. Of any triangle, if you count the Law of Cosines, since it can be derived from the Pythagorean Theorem pretty directly. So, take the gorgeous pictures in bridge and say, cantilever bridge, and in Eiffel Tower. (You can zoom in on most of them by clicking on them.) You see so many triangles because triangles are very strong. They're stronger than squares, for instance, because squares can too easily bend at the corners and become diamond-shaped. Triangles don't do that. So, since triangles are used throughout bridge construction, so is the math that describes them. It's used to figure out how long some things will be based on how long other things are, so that all the triangles match up and support each other. Black Carrot 05:31, 13 July 2007 (UTC)

## Computer mathematics question

I got an idea to make a Java framework to accurately model topological mathematics. But I fear this is impossible. I made a Java class that accurately models rationals. But irrationals are a whole different issue. Algebraic irrationals could be modelled with a rational mantissa and a rational exponent, but how would I know (1) whether the result is rational or irrational, (2) whether the result is smaller or greater than another number? Transcendental irrationals are even worse, they would perhaps just have to be stored as magic numbers. Is there any hope, or is modelling irrationals on a computer a lost cause? JIP | Talk 08:22, 12 July 2007 (UTC)

Coding an arbitrary real number requires an infinite amount of information, so you're not going to be able to represent them "retail", as it were. You may still be able to deal with them "wholesale", depending upon the application. What do you have in mind, more specifically? --Trovatore 08:35, 12 July 2007 (UTC)
I originally had in mind a program that could take any statement about real numbers, and then tell me if it's true or false. I suppose it would only work when restricted to rationals, but even then statements like "exists" and "for all" are a huge problem. The computer cannot handle even numerably infinite sets, so it can't go through every rational. It should instead somehow deduce if the statement reduces to "always true" or "always false". JIP | Talk 08:52, 12 July 2007 (UTC)
Well, you'll have to define more tightly what a "statement about real numbers" is. The first-order theory of the real numbers, allowing addition and multiplication, is (I think) decidable, so in principle you could write such a program. You need to research a technique called elimination of quantifiers to see how it's done. Keep in mind that it's not necessarily a practical program -- when you eliminate quantifiers, the length of the statement may blow up in such a way that memory or runtime becomes infeasible. And it'll only allow plus and times and things definable from them (you won't be able to use trig functions or exponentiation, for example). --Trovatore 09:01, 12 July 2007 (UTC)
See cylindrical algebraic decomposition (which still has no Wikipedia article! ((it does now--the ghost of wiki future))) for a use of real decidability.
There is both practical and mathematical interest in exact computations; computer algebra is one application, computational geometry is another. We can certainly compute with algebraic numbers; a standard approach gives the number as an integer polynomial and indicates which root is intended. And we can sometimes compute with known properties of certain transcendentals. But life is already difficult with rationals; repeated calculations can cause the size of result numerator and denominator to grow alarmingly. --KSmrqT 10:33, 12 July 2007 (UTC)
Even if you stick to rationals, or integers for that matter, there is no effective procedure to tell whether any statement is true or false: Peano arithmetic is undecidable. If you remove the induction axiom schema, you get Robinson arithmetic, also known as Q (no relation to the character known as Q), which – surprisingly – still is undecidable. If you leave induction in but take multiplication out you get Presburger arithmetic, for which a decision procedure exists. If you have real arithmetic with no way of expressing that a real number has an integral or rational value, you're actually better off where decidability is concerned. Tarski has considered the decidability of various variants, but I don't remember any details.  --LambiamTalk 11:10, 12 July 2007 (UTC)
Wow thats some task you have set yourself. You may find there are other packages out there which will do what you need. You may like to have a look at Automated theorem proving. One thing you could do is define Real as an abstract class implementing comparable, concret sub-classes such as the rationals will have a relativly simple compareTo method other numbers like pi will have a more complicated method based on some series expansion of pi. Question if you really need the reals
many package use Algebraic number or similar constructs, for example singular[1] allows computation over a wide range of different types of ring. --Salix alba (talk) 11:22, 12 July 2007 (UTC)

Thanks for the answers. By "any statement" I meant a statement consisting of existential and universal quantifiers, conjunctions, disjunctions and negations, and equalities and comparisons. If the existential and universal quantifiers are left out, and we're only dealing with rationals with the four basic operations (addition/subtraction and multiplication/division) then I am fairly sure the program would be able to take one statement and tell me if it's true or false. But the quantifiers still pose a problem for me. It's easy enough to make a program that takes a concrete value for x, and says that "x=1 and x=2" is false. But how is it going to be able to say that "there exists an x so that x=1 and x=2" is false? I've looked at the quantifier elimination article but it doesn't say how it is actually done. Is it a simple enough procedure to understand with basic-to-average university-grade math (none of the advanced professor-level stuff - for example, anything by Andrew Wiles goes straight over my head)? If so, where can I find more material about it? JIP | Talk 13:51, 12 July 2007 (UTC)

There is no decision procedure for your theory; the problem you are trying to solve is undecidable. However, if all quantifications are over real variables, and you leave out inequations (comparisons), the theory is decidable. The article does, indeed, not say how it is done. It is not a simple procedure.  --LambiamTalk 16:25, 12 July 2007 (UTC)
All quantifications are over real variables (rational ones, at that), but I would need to have inequalities as well as equalities. However, "not a simple procedure" sounds scary. Is it something that can be learned from a textbook, or far more advanced? It sounds like I would not even understand it myself, much less make a computer do it. Leaving the quantifications out entirely will make the program very easy to implement, but then it won't be able to solve nearly all of the possible statements. JIP | Talk 17:24, 12 July 2007 (UTC)

I have thought some more about this, and found out that if I can reduce the "so that" part of a quantified statement to a finite list of conjunctions, each of which consists of a finite list of disjunctions, each of which consists of a finite list of equalities or inequalities, I can evaluate a single "exists" or "for all" statement. Each conjunction represents a condition that must hold. Each disjunction inside it represents an alternative version of the condition. I now have finitely many (product of all numbers of disjunctions) different condition scenarios. For each of them, I start with the whole rational axis. Each equality or inequality takes either a point, a bounded interval, or a semi-bounded interval away from it. If the axis ever becomes empty, any "exists" statement is false. If it doesn't, the statement is true. Then I can evaluate the statement and carry onwards with normal basic logic. For "for all" statements, I simply have to use the de Morgan rules. But this still does not help me with quantified statements inside other quantified statements. I am afraid they are either undecidable, or will require far more advanced math than I'll ever learn. JIP | Talk 20:48, 12 July 2007 (UTC)

So you seem to think that the restriction to the rationals makes the question easier. That's not true -- I believe it actually makes it impossible, by Matiyasevich's theorem (I'd have to think about this), whereas if you work with the reals it's possible.
Here's a simple example where you can eliminate a quantifier: Suppose you're faced with the formula
${\displaystyle (\exists x)a*x*x+b*x+c=0}$
and you want to turn it into a quantifier-free formula. Well, you know how to do that, right? It's equivalent to
${\displaystyle b*b-(1+1+1+1)*a*c\geq 0}$
over the real numbers, in the language allowing 0, 1 as constants, +, * as functions, and > as a predicate. (I think, contrary to what Lambiam is suggesting, that we do want inequalities in the language).
Now, if you can eliminate one existential quantifier in the general case, then you can eliminate as many as you want (because universal quantifiers can be expressed with existential quantifiers plus negation). So we need to figure out how to turn a formula with one existential quantifier into a formula with none. The above example is the sort of thing we need to be able to do in general. Of course we might have lots more variables, and lots higher degree, but basically we're just comparing polynomials and asking whether there's a solution.
How to do that in general? I don't really know. If you find a good reference please point me to it; it's something I probably ought to know. The Hilbert Nullstellensatz may be relevant. --Trovatore 22:38, 12 July 2007 (UTC)
It is not so much that I think "we" do not want inequalities, but that I suspected that adding them makes the theory undecidable. However, they are included in the theory of real closed fields, which is the theory for which Tarski gave his decision procedure.  --LambiamTalk 23:42, 12 July 2007 (UTC)
Well, it can't be that adding inequalities makes the theory undecidable, because inequalities are definable if you leave them out:
${\displaystyle x\leq y\iff (\exists z)(y=x+z*z)}$
${\displaystyle x
So we have to have them; the only question is whether they should be in the language. And I think we have to put them in the language, to get elimination of quantifiers. I'm pretty sure that the formula
${\displaystyle (\exists x)a*x*x+b*x+c=0}$
is not equivalent to any quantifier-free formula in the language (+,*,1,0). --Trovatore 00:11, 13 July 2007 (UTC)
Reply to Trovatore'd last but one comment, Gröbner basis are a nice technique for solving sets of polynomials. Cox, Little and O'Shea is a great book to read on the subject. --Salix alba (talk) 16:32, 13 July 2007 (UTC)
So where do the cylindrical algebraic decompositions come in? There are vague suggestions that this may be useful for quantifier elimination, but nothing beyond suggestions.  --LambiamTalk 21:16, 13 July 2007 (UTC)
It been a long time since I looked at this stuff [2] has a good image which captures CAD well. For each polynomial f(x,y) find critical points x_i with f=df/dx = 0, slice your space with the lines x=x_i (forming cylinders), repeat for other variables. From reading the other nodes in the chapter it seems that the actual solving of polynomial is now part of the CAD technique, a sturm sequence may do the trick, as may Gröbner basis. --Salix alba (talk) 23:42, 13 July 2007 (UTC)

## Strain Energy Error

Dear Sir

What is strain energy error in fea

My best guess is that this refers to the difference between the "true" value of the strain energy and the computed value using an approximation based on the method of Finite element analysis. Does that fit in the context? If not, could you give the context in which you found this terminology?  --LambiamTalk 13:29, 12 July 2007 (UTC)