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

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

前几天,在与其他几位MathWorks员工共进午餐时,我提出了以下问题:

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

现在停止一分钟,然后在阅读任何内容之前,为我的问题提供自己的答案。

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

我午餐的大多数人不会给我一个答案。当我按下它们时,一个人终于说,“两个数字可能是3.”另一个人说,“是的,但是一个人可能是6个,另一个人是我希望他们说的。在某种意义上,这些都是“很好”的答案。没有人说“23和减17,”或“2.71828和3.28172”。那些也是正确的,但不是“很好”。

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

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

A * x =

两个未知数中的一个“同时”线性方程。矩阵是

a = [1/2 1/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 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射线、磁共振和其他扫描仪生成图像,这是这个问题的成熟版本。必须指定其他约束条件,如最小范数或最少非零组件,或“好看的图片”,以使其成为合理的数学和计算任务。

顺便说一下,我首先了解了这个“世界上最简单的不可能的问题”来自唐莫里森,谁也开始大学的新墨西哥州的计算机科学系,发明了Cooley和Tukey之前的快速傅里叶变换,而且几年前让我搬家到新墨西哥州。谢谢你所有的事情,唐。

我必须承认,我在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帐户或创建新的。