77 comments

[ 2.6 ms ] story [ 147 ms ] thread
At first I thought the headline meant they were factoring or finding the roots of 14th degree polynomials, which would have been quite impressive.

But no, the page just says they were calculating the answer for a particular value of x, using "the method of fan fa, today called Horner's method". A simple process, for example:

To compute 3x^2 + 12x + 12, start with 3, multiply by x, add 12, multiply the result by x, and add 12 again.

Agreed, I think the title should be changed to "computing" from solving. Still impressive, but I would think we're not the only people here that headline would confuse.
"approximating" is the right term. I hate to wordsmith things like this to death, but in speaking about maths, I think it's important to use precise language.

To me, "computing" implies an exact calculation. As does "solving". From the article, they did neither, but instead only got practically "close enough."

You are right, the headline leads one to conclude something that is not true.

"To me, "computing" implies an exact calculation"

You are not thinking like a computer scientist:

https://en.wikipedia.org/wiki/Computable_number

"Computing" typically means finding an approximation up to an arbitrary degree of precision. As for whether or not that counts as "solving," it is a matter of whether or not you will allow lambda expressions in a solution.

Think of this: does the quadratic formula count as a solution to quadratic equations? x^2-2=0 has +/-sqrt(2) as a solution, but only if you allow "sqrt" as part of a "solution." If you wanted a decimal representation of the roots you would have to accept an approximation and you would be using some square root finding algorithm. If you are OK with that situation, why not allow a quintic formula that involves lambda expressions? What makes radicals so special?

Remember, all the Abel-Ruffini theorem says is that there is no quintic formula involving only arithmetic and radicals -- it leaves open the possibility of another kind of formula for the quintic.

Computing is an algorithm which can produce the value to any given precision (I.e. bounds size). Approximating is an algorithm which eventually converges to the true value but you never know when you’ve actually gotten close enough. For this reason the computable numbers are a subset of the approximately numbers.
Same here. Given Abel's Impossibility theorem [1], the headline got me very curious. Not that you couldn't solve for any case (the theorem talks about a general solution), but still interesting.

[1] http://mathworld.wolfram.com/AbelsImpossibilityTheorem.html

Solving particular equations are definitely possible. Abel's theorem says there is no general formula to solve the quintic and higher order polynomials.
Yeah, I realized that this would be potentially be confusing about what I meant, so I edited my comment.
Abel-Ruffini theorem only speaks about general solution in term of elementary operations and nth-root, which is a very restricted form of solution. Numerically solving roots for generic polynomial is perfectly doable (and the nth-root already require approximate computation). Moreover, the radical solution for cubic and quartic equation is already quite difficult and inefficient to use compared to numerical solution.
No the headline was not wrong. One of the answers explained Horner's method and its relation to using abacus (which has a small register file, in modern lingo). However that is not the extent of the book mentioned. You can find the book here: https://zh.wikipedia.org/wiki/%E5%9B%9B%E5%85%83%E7%8E%89%E9... The equations dealt with have been transcribed into modern algebraic expressions. They were definitely solved, not merely computed.

The more complete answer should have been "The higher order polynomial (as high as 14) came from solving multivariate simultaneous equations (with degrees as high as 4) by elimination of variables."

I wasn't referring to the reddit page, but the Wikipedia page it's based on:

> Si-yüan yü-jian (《四元玉鑒》), or Jade Mirror of the Four Unknowns, was written by Zhu Shijie in 1303 AD and marks the peak in the development of Chinese algebra. The four elements, called heaven, earth, man and matter, represented the four unknown quantities in his algebraic equations. It deals with simultaneous equations and with equations of degrees as high as fourteen. The author uses the method of fan fa, today called Horner's method, to solve these equations.[48]

If there's more to the story you might want to correct Wikipedia.

The page I linked to is the actual page for Si-yüan yü-jian (《四元玉鑒》). The Wikipedia article you referred to may be slightly confusing but is not wrong. If you tried to solve a polynomial numerically, Horner's method would be handy. However we know there is no general solution per Abel and Galois.
More precisely, we know there is no general formula using basic arithmetic and radicals. Numerical methods count as a general solution as far as computer scientists are concerned (algebraic numbers are a subset of computable numbers).
Which part are you're referring to when you say "The equations dealt with have been transcribed into modern algebraic expressions. They were definitely solved, not merely computed"?
The page I linked to listed the problems posed and solved. The Chinese version is accompanied by modern notations using x,y,z...

By the way the numerical solution to high order one variable polynomial was already known and given by another mathematician in an earlier (1247 AD) book: https://zh.wikipedia.org/wiki/%E6%95%B0%E4%B9%A6%E4%B9%9D%E7...

I thought you were referring to a specific solution for a 14th degree polynomial.

If you're just referring to the notation, that's a modern translation using modern notation. What was in the original?

I am saying all the equations listed also had their solutions given.
It's not clear to me what's the original and what's a modern addition. For example:

Mixed question Straight paragraph source Eighteen questions.

Eighteenth question:

Today, there is a sum of money and multiplication, and the product is reduced by the sum of the balances. It has a total of 170,162 steps. Only the cloud and the benefits. The fourth is Yifang, the third is from the low, the second is the benefit of the low, the first is the right, the three squares open, such as a quarter of the flat. Question, long, flat geometry? Answer: Ping is twelve steps and is thirty steps long.

Li Tianyuan is the opening number and has:

(equation)

The solution is x=3, multiplied by four, which is the flat number.

It seems to me that the text is the original Chinese (with only a numeric solution for one case) and the general equation is a modern addition.

I don't know what your confusion is. Every problem was given in the format of "Question, Answer, Steps to arrive at the answer" in the Chinese original. Numerically solving high order polynomials was already known so was not explained. The explanations were focused on elimination of variables for simultaneous equations (which can give you high order single variable polynomials).
It might just be lost in translation, since I'm using Google Translate, but I don't see the "Question, Answer, Steps". I'll have to take your word for it.
There's a degree 10 polynomial here, but it has an integer root, which seems to be what they computed. This can be achieved just by factoring the leading and trailing coefficients, and by various other easy methods. It's not really anywhere near as difficult as computing an approximation to the root or solving in radicals (when that's possible). Edit: OK I see on one of the other pages they were finding rational approximations to a root. That is pretty clever for the time.
I'm not seeing that. I see a degree 10 equation, which oddly has no rational roots (though my guess is this is what is meant by "solving"). I've never seen any mention of the Chinese solving degree 14 equations in any books on the history of mathematics. I'm very dubious of the claim, in any form, other than finding rational roots of polynomials (which the Greeks were doing more than a millennium earlier). Edit: no they were finding rational approximations to roots, which is actually pretty clever.
"Edit: no they were finding rational approximations to roots, which is actually pretty clever."

Right they provided a general numerical method that can solve univariate polynomials of any degree. See https://zh.wikipedia.org/wiki/%E7%A7%A6%E4%B9%9D%E9%9F%B6%E7... "南宋数学家秦九韶将贾宪的增乘开方术推广,以求解任意高次方程的实数根的数值解"

Because Asians are good at math, duh.
One of the things I find interesting about ancient Chinese math is how computational it was (in modern terminology we would say they were only interested in computable numbers); AFAIUI the ancient Chinese were vaguely aware of numbers that could not be computed exactly (i.e. irrationals) but mostly cared about being able to compute approximations up to whatever precision was required for a given task. So while Western mathematicians were struggling in vain to find a way to double a cube using a compass and straightedge or to derive a quintic formula, the Chinese mathematicians were satisfied with an algorithm that found useful approximations. There is a profound difference in philosophy, as evidenced by the title of this entire thread: the Chinese were "solving" 14th degree polynomials, but only in the sense of having an algorithm for doing so (as opposed to having a formula like the quadratic formula; in fact there is no such formula for degree 14 polynomials, or for any polynomials beyond the quartic).
Hate to be annoying, but I'm a native English speaker and I just skipped over "AFAIUI" because it was too much work to guess what it meant.

"As far as I understand it" ? RIP if you're not a native speaker.

RIP if you are a native speaker too.
IRC-speak is its own language :)
(comment deleted)
Haha yeah I actually chucked at that one. Amazes me how many acronyms people come up with for that simple kind of statement.
I think it actually points to a hole in English - the lack of a short word that expresses a bit of uncertainty regarding one's own statement.

Anyone want to coin a word (or point one out that we're all apparently unfamiliar with)?

(comment deleted)
AFAIUI seems to solve the problem nicely. Not a native speaker and yet I understood it right away.
I think it is a relatively common abbreviation used in informal writing online, similar to "AFAIK" or "AFAICT" (maybe those are not so common?) but admittedly less common than "QED" or "etc." Yes, it means "as far as I understand it."
"AFAIUI" is nowhere even close to as common as your other examples. I have never encountered it before, and Google Trends doesn't even register it in a comparison between the others.

https://trends.google.com/trends/explore?date=all&geo=US&q=a...

Trends isn't the best for this as it's search results not occurrences so really all this will show is the number of people confused by the term for weird contractions like this. "AFAIUI" could theoretically just be completely understood by the community using it.
Number of search results:

AFAIK: 8,600,000 AFAICT: 346,000 AFAIUI: 14,600

Should have made it more clear that I meant that in the general case not in this particular. I've never seen AFAIUI.
Oh, I understood what you meant, I was just providing an additional data point for this particular conversation in response to what you were saying re: search queries vs. results.
Anecdotally, I'm a native speaker, have been reading text on BBSes and then the internet for well over 30 years, and have never seen that one. AFAIK has been around for decades.

Like some other commenters, I skipped right over it rather than try to parse it.

I've been online for 20 years, and AFAIK was pretty common, although a few years ago I came across AFAICT which was pretty easy to extrapolate as ending with "can tell". From that I was able to recognize the pattern here and pretty quickly got "understand it" for UI. I think it's pretty neat that we're able to adapt language in this way, though obviously not foolproof or universal.
They are all weasel words and best avoided. It's a way to make a claim that you're not sure of, with an out if you're wrong.
Agreed, so sick of these internet acronyms. This isn't text messaging, it's an intelligent discussion forum. Type out what you're saying.
Ain't like we're limited to 140 characters...
In case someone is wondering about your wording. A computable number is one whose decimal approximation can be computed to arbitrary precision with a finite, terminating algorithm. All algebraic numbers and some transcendental numbers are computable. Thus being irrational does not imply not being computable.

One more pedantic note. There are algebraic formulas for solving polynomials of higher degree than 4. For instance, you can find a formula to solve x^n = 0 for n a positive integer. You can’t find a general, algebraic formula to solve polynomial equations of degree n where n > 4.

Is there "not computable" numbers ? Example ?
There are "more" non-computable numbers than computable one. Chaitlin's constant is an example.
I can give you many more examples of specific computable numbers than I can of noncomputable numbers. This is a bit surprising when one learns that the set of noncomputable numbers is much larger than computable ones. Most of the numbers you’ve dealt with are computable. Every noncomoutable is close to a computable number where close means as close as you want. There is also the notion of definable numbers which is different than computable. There are people who study these things and the implications they have in mathematics and computer science. I’m not one of these people so beyond what I’ve said I don’t dare comment.
In math, infinite sets have different sizes. The number of computer programs is "countably infinite". The number of real numbers is "uncountably infinite". Since there are more numbers than computer programs, some numbers must be uncomputable.

for more info see: https://en.wikipedia.org/wiki/Countable_set

Let's consider the plattitude that math appears in printed books, and books contain characters, and the character set or symbol alphabet is finite, and books are finite. Hence the set of all possible books on mathematics is countable.

Then how is there a difference between books and programs?

Now consider the following program or function:

f_epsilon(x) (return x + epsilon;) where epsilon is a number from a set S.

Then if the set S is considered countable for pragmatic reasons like representing epsilon in the form of bits etc then everyone agrees it is countable in practice.

I.e. aren't there uncountably many functions f(x) above if we allow epsilon to be drawn from an uncountable set?

I agree that the set of all math books is countable, and I agree that there are uncountably many f_epsilon functions if epsilon comes from an uncountable set.

However, f(x) = x + epsilon is not a computable function when epsilon is not a computable number. So not all of the f_epsilon family of functions is computable.

There is no important difference between books and functions.

Let me present a challenge to you: Pick a uniformly random number between 1 and 2. Now tell me what it is.

No 'coincidences', like getting exactly 1.34 or the square root of three. It has to be properly random.

The odds are 100% that you picked a 'normal' number that goes on forever with no pattern. A number that cannot be specified in finite space. In other words, a number that can't be computed.

I fully agree with you.

We can also consider a similar function f_epsilon(x) that returns the sum of x and a uniformly random number between 1 and 2 chosen at compile time, but constant at run time.

I agree it can't be specified in finite space.

The dichotomy is the computational model, from a utilitarian perspective we consider every conceptual computer to be a huge but finite finite-state-machine. One could abstractly (and less down-to-earth usefully) define/conceive of a computer that can store arbitrary variables representing uncountable objects (like real numbers etc)

How many f_epsilon functions do you set up at compile time?

If it's countable, then your computer can now reflect the previously-computable numbers across these epsilons, and give you new numbers, but you're still only covering 0% of the reals.

If it's uncountable, covering a range, then you just moved the problem back a step. On top of that, such a computer doesn't even have to do real work. You can spend 20 seconds using grade school arithmetic to map the input range to the entire set of reals, 1:1. But mapping a range of reals into a bigger range of reals is a pretty lousy definition of "computable".

The Halting Number. The i'th digit after the decimal point of the Halting Number is 0 if the i'th Turing Machine halts given an empty tape, and 1 otherwise. (The integral part of the Halting Number is 0.)

This number is not computable; if it were, you could solve the halting problem.

Construct a real number by gluing BB(i) where BB is the busy beaver function.
Yes. First, fix a programming language; for example, C. Now, the halting problem asks for a given C program and a given stdin, will the program terminate. For simplicity, let's just say that we close stdin and give the program an empty input.

It turns out no algorithm can solve the halting problem for all C programs. The explanation is that, if you had such an algorithm, you could write a C program that applies the algorithm to itself (this is a special quine), and then does the opposite of whatever the halting algorithm says the program would do (if it says the program halts, the program will just enter an infinite loop; if it says it does not halt, the program calls exit).

Now, imagine a list of all valid C programs in alphabetical order, beginning with the empty string (which, oddly enough, is a valid C program). Consider a number where the Nth digit after the decimal point is 0 if the Nth C program halts, and 1 if it does not; for example, the first digit, corresponding to the empty string, is 0, while a few digits later, the digit corresponding to "int main() {main(); return 0;}" will be 1.

Putting it all together, we know there are C programs for which we cannot compute the solution to the halting problem, and we have a number whose digits are determined by the solution to the halting problem for every C program. So that number is not computable (because we cannot compute every digit, so we cannot compute it to arbitrary precision).

These are good points. To expand a bit for even further nomenclature:

> All algebraic numbers and some transcendental numbers are computable. Thus being irrational does not imply not being computable.

Yes, there is a distinction to be made about set computability and element computability. The real numbers (rationals and irrationals) are not computable because they are uncountable. Hence floating point numbers only approximate the reals, but they are not real representations themselves. But individual real numbers are frequently computable in a finite number of steps, including irrationals. For example, any given digit of Pi or the sqrt(2) is computable in a finite number of steps. But Chaitan's constant is an uncomputable real number.

Likewise, transcendental functions - such as logarithms - are not generally computable as a set even though individual instances can be computed. This is why an inequality including an expression with logarithmic exponents might be reducible in Mathematica, but when you set those exponents to be the ceiling or floor functions of those logarithms it suddenly becomes insoluble.

> You can’t find a general, algebraic formula to solve polynomial equations of degree n where n > 4.

Yes, and the terminology for something with no general algebraic formula is that there's no closed form solution for it. Mathematica's documentation specifically states it can solve any expression with exponents of 4 of less, but it cannot do so with exponents of greater than 4.

> One of the things I find interesting about ancient Chinese math is how computational it was (in modern terminology we would say they were only interested in computable numbers);

This isn't just the chinese. The ancient greeks rejected ( or ignored ) irrational numbers too. Also, western math was just as computationally driven. Pretty much all math everywhere developed for practical purposes ( ie to divide land, more accurate calendar, etc ).

> There is a profound difference in philosophy, as evidenced by the title of this entire thread: the Chinese were "solving" 14th degree polynomials

No there isn't. The ancient greeks also "solved" equations, such as for volume of geometrical objects, by approximation. That's why they didn't invent calculus ( though sometimes math historians try to twist the definition and meaning and understanding of calculus to claim ancient greeks did ).

The fundamental difference is that ancient greeks developed explicit axiomatic mathematics while the chinese didn't. But practical computational mathematics is the foundation of all mathematics.

I'd say the greeks used techniques (limits, for example) that would later be used in calculus, but the didn't systematize them.
Except that the Chinese did not reject irrational numbers, but simply did not find the distinction to be important enough to explore. They had a notion of numbers that could not be computed exactly (i.e. they could only get a sequence of better approximations) but they were satisfied as long as an algorithm existed (I imagine they might have rejected the concept of non-computable numbers, had such a concept existed at the time). There was a time when the Greeks firmly believed that all numbers are rational and explicitly rejected (not simply ignored) irrational numbers, and later they had a strong interest in the separation between rationals and irrationals.

The difference between the Chinese and the Greeks was not just explicitly stating axioms (Chinese math was also a system built from basic principles, they just did not organize things as neatly as the Greeks), but their view of what computation is. The Greeks tried to map all computation onto Euclidean geometry, whereas the Chinese generally viewed computation as symbolic manipulation and tried to map all math (including geometry) into computation problems. I see that as a very big difference that had a big impact on how the two traditions developed.

> The ancient greeks rejected ( or ignored ) irrational numbers too

They didn't rejected it for computational reason. They rejected it because it didn't fit in their framework of how number works.

That's the whole point of the evolution of math that culminated into the subject of real analysis.

If that wasn't the point of why you brought the greek up then it doesn't make sense why you bought it up other than the main topic of the Chinese, computation, etc...

chabuduo
chabuduo = close enough

"Instead, the prevailing attitude is chabuduo, or ‘close enough’. It’s a phrase you’ll hear with grating regularity, one that speaks to a job 70 per cent done, a plan sketched out but never completed, a gauge unchecked or a socket put in the wrong size. Chabuduo is the corrosive opposite of the impulse towards craftmanship, the desire, as the sociologist Richard Sennett writes in The Craftsman (2008), ‘to reject muddling through, to reject the job just good enough’. Chabuduo implies that to put any more time or effort into a piece of work would be the act of a fool. China is the land of the cut corner, of ‘good enough for government work’."

(https://aeon.co/essays/what-chinese-corner-cutting-reveals-a...)

Zu Chongzhi derived pi should be between 3.1415926 to 3.1415927 back in 5th century. Well, that was pretty good precision at that time
Qin Shi Huang lifted the sword to the sky, and shouted: “Computer Formation!” Four giant bronze cauldrons at the corners of the platform came to life simultaneously with roaring flames. A group of soldiers standing on the sloping side of the pyramid facing the phalanx chanted in unison: “Computer Formation!”

On the ground below, colors in the phalanx began to shift and move. Complicated and detailed circuit patterns appeared and gradually filled the entire formation. Ten minutes later, the army had made a thirty-six kilometer square computer motherboard…

“This is really interesting,” Qin Shi Huang said, pointing to the spectacular sight. “Each individual’s behavior is so simple, yet together, they can produce such a complex, great whole! Europeans criticize me for my tyrannical rule, claiming that I suppress creativity. But in reality, a large number of men yoked by severe discipline can also produce great wisdom when bound together as one.”

—Cixin Liu, The Three Body Problem (2008)

When I read that, all I could think of was what a nightmare it would be to debug.
IIRC a little later in the book, debugging involves execution in both senses of the word.
AskHistorians is surely one of the great jewels of Reddit.

Fantastically moderated, and filled with an array of helpful experts happy to research and write up answers to all sorts of interesting questions and topics.