世界上最简单的不可能的问题

(这是第二次从克利夫角1990年冬MathWorks通讯).

有一天,我和几个MathWorks的人共进午餐时,提出了以下问题:

“我在想两个数字。它们的平均值是3。数字是多少?”

现在停下来一分钟,在你继续阅读之前,回答我的问题。

当然,我的问题没有一个“正确”的答案。解决方案不是唯一的。问题是“不确定”或“不适定”。

和我一起吃午饭的大多数人都不给我答案。当我按下时,最后一个人说:“两个数字都可以是3。”另一个人说:“是的,但一个可能是6,另一个可能是0。我希望他们会这么说。从某种意义上说,这些都是“不错”的答案。没有人说“23 - 17”或“2.71828 - 3.28172”。这些也应该是正确的,但不是“好”。

这和MATLAB有什么关系?MATLAB不会在不可能的问题上退缩。它会解决这个问题。就像我的朋友们吃午饭时一样,它没有抱怨。

当然,这个问题是一个矩阵问题。它是一个“系统”

A * x =

两个未知数的一个线性方程。矩阵是

A = [1/2 /2]

右边是

b = 3

MATLAB的反斜杠解决了这样的方程。打字

x = A \ b

告诉我的

X = 0

解决方案是一个2 × 1矩阵表示的一个“好的”答案,我期待。“\”的帮助条目的后半部分给出了该解决方案来自何处的一些指示。

如果是一个m×n矩阵m >或< n和m和B是一个列向量组件,或一个矩阵等一些列,那么X = A \ B是解决方案在最小二乘意义下——或者超定的方程组有效等级* X = B, k,确定的QR分解与旋转。计算的解X每列最多有k个非零分量。如果k < n,这通常不是与PINV(A)*B相同的解。

在我们的例子中,我们有m = 1n = 2.我的矩阵是满秩的,但最多可以是k = 1.我们得到的解最多有一个非零分量。甚至这也不是唯一的。有两个解有一个非零分量,万博 尤文图斯[6 0) '[0 6]”.我们得到了非零分量下标最小的那个。

那我的另一个“好”解决方案呢?这来自于伪逆。

x = pinv b (A) *

生产

X = 3.0000

(事实上,我得到的是3000,而不是后面没有零的整数3,这表明有一些舍入错误,我没有其他“好的”解决方案,但如果你真的想,你可以自己追求。)

所有可能的解决方法万博 尤文图斯A * x =这一个,X = [3 3] ',是“最短的”。它最小化规范(x).事实上x = A \ b

规范(x) = 6.0000

x = pinv b (A) *

规范(x) = 4.2426

最后,我们有了唯一性。所有可能的解决方法万博 尤文图斯A * x =也就是最小化规范(x)是独一无二的。

所以,MATLAB不仅解决了这个问题,它还让我们在两个不同的解之间做出选择,万博 尤文图斯x = A \ bx = pinv b (A) *.我认为第一个解决方案,A\b = [6 0]'是“nice”,因为它很“简单”;也就是说,它可能有最少的非零分量。我认为第二种解决方案,pinv(A)*b = [3 3]'因为它“短”和“独特”。其他可能的解决方案都没有这么好的特点。万博 尤文图斯

这个问题,“给定两个数字的平均值,找出数字”,抓住了许多不适定和未定问题的本质。计算机断层摄影术是一项拯救生命的业务,它可以通过x射线、磁共振和其他扫描仪生成图像,这是这个问题的成熟版本。必须指定其他约束条件,如最小范数或最少非零组件,或“好看的图片”,以使其成为合理的数学和计算任务。

顺便说一下,我第一次从唐·莫里森那里了解到这个“世界上最简单的不可能的问题”,他也是新墨西哥大学计算机科学系的创始人,在库利和杜克之前发明了快速傅里叶变换,几年前,让我搬到了新墨西哥。谢谢你做的一切,唐。

我必须承认,我在MathWorks午餐会上提出一个问题之前就写了这段轶事。实际实验的结果更加有趣。正如我所预料的,每个人都在抱怨我的问题。然后一个人说:“9和3。”她显然已经领会了这个主意。另一个人说:“3和1。”幸运的是,他不负责MATLAB的任何数字部分。但有三个人说是2和4这当然是另一个“不错”的答案,但它所满足的约束更为微妙。它们要求解有不同的整数分量,但要接近平均值。 It's harder to state and compute in MATLAB without just giving the answer.

好了,现在我想三个数字的平均值是$\pi$。这些数字是什么?




发布与MATLAB®R2018b

|

댓글

댓글을남기려면링크를클릭하여MathWorks계정에로그인하거나계정을새로만드십시오。