|
welo000 发表于 2013-9-20 01:37 ![]()
数值模拟领域种的哪一种?航空领域又哪一种?
赶快百度
需要百度么?
下面这段根本百度不到。
A graduate student in aeronautical engineering used the 7090 to simulate the
wings he was designing for short takeoffs and landings. He knew such a wing
would be difficult to control if its characteristics included an abrupt onset of stall,
but he thought he could avoid that. His simulations were telling him otherwise.
Just to be sure that roundoff was not interfering, he had repeated many of his calculations
in double precision and gotten results much like those in single; his
wings had stalled abruptly in both precisions. Disheartened, the student gave up.
Meanwhile Kahan replaced IBM’s logarithm program (ALOG) with one of his
own, which he hoped would provide better accuracy. While testing it, Kahan reran
programs using the new version of ALOG. The student’s results changed significantly;
Kahan approached him to find out what had happened.
The student was puzzled. Much as the student preferred the results produced
with the new ALOG—they predicted a gradual stall—he knew they must be
wrong because they disagreed with his double precision results. The discrepancy
between single and double precision results disappeared a few days later when a
new release of IBM’s double precision arithmetic software for the 7090 arrived.
(The 7090 had no double precision hardware.) He went on to write a thesis about
it and to build the wings; they performed as predicted. But that is not the end of
the story.
In 1963, the 7090 was replaced by a faster 7094 with double precision floatingpoint
hardware but with otherwise practically the same instruction set as the
7090. Only in double precision and only when using the new hardware did the
wing stall abruptly again. A lot of time was spent to find out why. The 7094 hardware
turned out, like the superseded 7090 software and the subsequent early
S/360s, to lack a guard bit in double precision. Like so many programmers on
those computers and on Cray’s, the student discovered a trick to compensate for
the lack of a guard digit; he wrote the expression
(0.5 – x) + 0.5 in place of 1.0 – x
. |
|